<metal:globaldefine define-macro="defines">
<tal:comment tal:condition="nothing" tal:content="string:XXX separating out lockable - this keeps something in portal_css from breaking when doing a save" />
<tal:lock tal:define="global lockable python:hasattr(here.aq_inner.aq_explicit, 'wl_isLocked');
                      global isLocked lazy:python:lockable and here.wl_isLocked();"
         tal:on-error="nothing" />
<tal:def
      tal:define="
        global utool nocall:here/portal_url;
        global portal utool/getPortalObject;
        global portal_object nocall:portal;
        global portal_url utool;
        global mtool nocall:portal/portal_membership;
        global gtool nocall:portal/portal_groups | nothing;
        global gdtool nocall:portal/portal_groupdata | nothing;
        global atool nocall:portal/portal_actions;
        global aitool nocall:portal/portal_actionicons | nothing;
        global putils nocall:portal/plone_utils;
        global wtool nocall:portal/portal_workflow;
        global ifacetool nocall:portal/portal_interface | nothing;
        global syntool nocall:portal/portal_syndication;
        global portal_title portal_object/Title;
        global object_title lazy:here/pretty_title_or_id;
        global member lazy:mtool/getAuthenticatedMember;
        global checkPermission nocall:mtool/checkPermission;
        global membersfolder mtool/getMembersFolder;
        global isAnon mtool/isAnonymousUser;
        global filtered_actions lazy:python:portal.portal_actions.listFilteredActionsFor(here);
        global keyed_actions lazy:python:portal.keyFilteredActions(filtered_actions);
        global user_actions lazy:filtered_actions/user;
        global workflow_actions lazy:filtered_actions/workflow;
        global folder_actions lazy:filtered_actions/folder;
        global global_actions lazy:filtered_actions/global;
        global portal_tabs lazy:python:putils.createTopLevelTabs(filtered_actions);
        global wf_state lazy:python:wtool.getInfoFor(here,'review_state',None);
        global portal_properties portal/portal_properties;
        global site_properties portal_properties/site_properties;
        global ztu modules/ZTUtils;
        global actions lazy:options/actions | filtered_actions;
        global wf_actions lazy:workflow_actions;
        global isFolderish lazy:here/isPrincipiaFolderish;
        global template_id options/template_id | template/getId | nothing;
        global slots_mapping lazy:options/slots_mapping|here/prepare_slots|nothing;
        global Iterator python:modules['Products.CMFPlone'].IndexIterator;
        global tabindex python:Iterator(pos=30000);
        global uniqueItemIndex python:Iterator(pos=0);
        global here_url here/absolute_url;
        global sl slots_mapping/left;
        global sr slots_mapping/right;
        global hidecolumns lazy:python:here.hide_columns(sl,sr);
        global default_language site_properties/default_language|nothing;
        language request/language | nothing;
        global language python:language or here.Language() or default_language;
        global is_editable python:checkPermission('Modify portal content', context);
        global isEditable is_editable;
        global isRTL lazy:python:here.isRightToLeft(domain='plone');
        global visible_ids here/visibleIdsEnabled|nothing;
        global current_page_url here/getCurrentUrl|nothing;
        view_template_id here/getViewTemplateId|nothing;
        global isViewTemplate python:template_id==view_template_id;
        global normalizeString nocall:putils/normalizeString;
        " />
</metal:globaldefine>
