diff --git a/bt5/erp5_budget/ActionTemplateItem/portal_types/Budget%20Module/budget_group_consumption_export.xml b/bt5/erp5_budget/ActionTemplateItem/portal_types/Budget%20Module/budget_group_consumption_export.xml
new file mode 100644
index 0000000000000000000000000000000000000000..a3da4b48e2bc00327e2e4756b4a600f4e7e5a705
--- /dev/null
+++ b/bt5/erp5_budget/ActionTemplateItem/portal_types/Budget%20Module/budget_group_consumption_export.xml
@@ -0,0 +1,99 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <tuple>
+        <global name="ActionInformation" module="Products.CMFCore.ActionInformation"/>
+        <tuple/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>action</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+            </value>
+        </item>
+        <item>
+            <key> <string>category</string> </key>
+            <value> <string>object_exchange</string> </value>
+        </item>
+        <item>
+            <key> <string>condition</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
+            </value>
+        </item>
+        <item>
+            <key> <string>description</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>icon</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>budget_group_consumption_export</string> </value>
+        </item>
+        <item>
+            <key> <string>permissions</string> </key>
+            <value>
+              <tuple>
+                <string>View</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>priority</string> </key>
+            <value> <float>2.0</float> </value>
+        </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <string>Budget Consumption</string> </value>
+        </item>
+        <item>
+            <key> <string>visible</string> </key>
+            <value> <int>1</int> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <tuple>
+        <global name="Expression" module="Products.CMFCore.Expression"/>
+        <tuple/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>text</string> </key>
+            <value> <string encoding="cdata"><![CDATA[
+
+string:${object_url}/BudgetModule_viewBudgetConsumptionReportDialog?your_portal_skin=ODS&your_format=
+
+]]></string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="3" aka="AAAAAAAAAAM=">
+    <pickle>
+      <tuple>
+        <global name="Expression" module="Products.CMFCore.Expression"/>
+        <tuple/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>text</string> </key>
+            <value> <string>python: getattr(portal.portal_skins, \'erp5_ods_style\', None) is not None</string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_budget/ActionTemplateItem/portal_types/Budget%20Module/budget_group_consumption_report.xml b/bt5/erp5_budget/ActionTemplateItem/portal_types/Budget%20Module/budget_group_consumption_report.xml
new file mode 100644
index 0000000000000000000000000000000000000000..375c5519533763f3de8746ef5a5f1e89f579c432
--- /dev/null
+++ b/bt5/erp5_budget/ActionTemplateItem/portal_types/Budget%20Module/budget_group_consumption_report.xml
@@ -0,0 +1,77 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <tuple>
+        <global name="ActionInformation" module="Products.CMFCore.ActionInformation"/>
+        <tuple/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>action</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+            </value>
+        </item>
+        <item>
+            <key> <string>category</string> </key>
+            <value> <string>object_report</string> </value>
+        </item>
+        <item>
+            <key> <string>condition</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>description</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>icon</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>budget_group_consumption_report</string> </value>
+        </item>
+        <item>
+            <key> <string>permissions</string> </key>
+            <value>
+              <tuple>
+                <string>View</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>priority</string> </key>
+            <value> <float>2.0</float> </value>
+        </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <string>Budget Consumption</string> </value>
+        </item>
+        <item>
+            <key> <string>visible</string> </key>
+            <value> <int>1</int> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <tuple>
+        <global name="Expression" module="Products.CMFCore.Expression"/>
+        <tuple/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>text</string> </key>
+            <value> <string>string:${object_url}/BudgetModule_viewBudgetConsumptionReportDialog?your_portal_skin=ODS</string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_budget/ActionTemplateItem/portal_types/Budget/budget_group_consumption_export.xml b/bt5/erp5_budget/ActionTemplateItem/portal_types/Budget/budget_group_consumption_export.xml
new file mode 100644
index 0000000000000000000000000000000000000000..b0a6416deac78330cf5f1d419a58cd27c34b1160
--- /dev/null
+++ b/bt5/erp5_budget/ActionTemplateItem/portal_types/Budget/budget_group_consumption_export.xml
@@ -0,0 +1,99 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <tuple>
+        <global name="ActionInformation" module="Products.CMFCore.ActionInformation"/>
+        <tuple/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>action</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+            </value>
+        </item>
+        <item>
+            <key> <string>category</string> </key>
+            <value> <string>object_exchange</string> </value>
+        </item>
+        <item>
+            <key> <string>condition</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
+            </value>
+        </item>
+        <item>
+            <key> <string>description</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>icon</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>budget_group_consumption_export</string> </value>
+        </item>
+        <item>
+            <key> <string>permissions</string> </key>
+            <value>
+              <tuple>
+                <string>View</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>priority</string> </key>
+            <value> <float>31.0</float> </value>
+        </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <string>Budget Consumption</string> </value>
+        </item>
+        <item>
+            <key> <string>visible</string> </key>
+            <value> <int>1</int> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <tuple>
+        <global name="Expression" module="Products.CMFCore.Expression"/>
+        <tuple/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>text</string> </key>
+            <value> <string encoding="cdata"><![CDATA[
+
+string:${object_url}/Budget_viewBudgetConsumptionReportDialog?your_portal_skin=ODS&your_format=
+
+]]></string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="3" aka="AAAAAAAAAAM=">
+    <pickle>
+      <tuple>
+        <global name="Expression" module="Products.CMFCore.Expression"/>
+        <tuple/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>text</string> </key>
+            <value> <string>python: getattr(portal.portal_skins, \'erp5_ods_style\', None) is not None</string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_budget/ActionTemplateItem/portal_types/Budget/budget_group_consumption_report.xml b/bt5/erp5_budget/ActionTemplateItem/portal_types/Budget/budget_group_consumption_report.xml
new file mode 100644
index 0000000000000000000000000000000000000000..a59959b4cd588c1a65990f18541a7577493496f5
--- /dev/null
+++ b/bt5/erp5_budget/ActionTemplateItem/portal_types/Budget/budget_group_consumption_report.xml
@@ -0,0 +1,81 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <tuple>
+        <global name="ActionInformation" module="Products.CMFCore.ActionInformation"/>
+        <tuple/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>action</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+            </value>
+        </item>
+        <item>
+            <key> <string>category</string> </key>
+            <value> <string>object_report</string> </value>
+        </item>
+        <item>
+            <key> <string>condition</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>description</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>icon</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>budget_group_consumption_report</string> </value>
+        </item>
+        <item>
+            <key> <string>permissions</string> </key>
+            <value>
+              <tuple>
+                <string>View</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>priority</string> </key>
+            <value> <float>31.0</float> </value>
+        </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <string>Budget Consumption</string> </value>
+        </item>
+        <item>
+            <key> <string>visible</string> </key>
+            <value> <int>1</int> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <tuple>
+        <global name="Expression" module="Products.CMFCore.Expression"/>
+        <tuple/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>text</string> </key>
+            <value> <string encoding="cdata"><![CDATA[
+
+string:${object_url}/Budget_viewBudgetConsumptionReportDialog?your_portal_skin=ODS&your_format=calc.pdf
+
+]]></string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_budget/SkinTemplateItem/portal_skins/erp5_budget/BudgetModule_viewBudgetConsumptionReportDialog.xml b/bt5/erp5_budget/SkinTemplateItem/portal_skins/erp5_budget/BudgetModule_viewBudgetConsumptionReportDialog.xml
new file mode 100644
index 0000000000000000000000000000000000000000..89e1c44bf95969fe3e7f0af8156c9ca3665480e0
--- /dev/null
+++ b/bt5/erp5_budget/SkinTemplateItem/portal_skins/erp5_budget/BudgetModule_viewBudgetConsumptionReportDialog.xml
@@ -0,0 +1,156 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <tuple>
+        <global name="ERP5Form" module="Products.ERP5Form.Form"/>
+        <tuple/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_bind_names</string> </key>
+            <value>
+              <object>
+                <klass>
+                  <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
+                </klass>
+                <tuple/>
+                <state>
+                  <dictionary>
+                    <item>
+                        <key> <string>_asgns</string> </key>
+                        <value>
+                          <dictionary/>
+                        </value>
+                    </item>
+                  </dictionary>
+                </state>
+              </object>
+            </value>
+        </item>
+        <item>
+            <key> <string>_objects</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>action</string> </key>
+            <value> <string>Budget_viewBudgetConsumptionReport</string> </value>
+        </item>
+        <item>
+            <key> <string>description</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>edit_order</string> </key>
+            <value>
+              <list/>
+            </value>
+        </item>
+        <item>
+            <key> <string>encoding</string> </key>
+            <value> <string>UTF-8</string> </value>
+        </item>
+        <item>
+            <key> <string>enctype</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>group_list</string> </key>
+            <value>
+              <list>
+                <string>left</string>
+                <string>right</string>
+                <string>center</string>
+                <string>bottom</string>
+                <string>hidden</string>
+              </list>
+            </value>
+        </item>
+        <item>
+            <key> <string>groups</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>bottom</string> </key>
+                    <value>
+                      <list/>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>center</string> </key>
+                    <value>
+                      <list/>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>hidden</string> </key>
+                    <value>
+                      <list/>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>left</string> </key>
+                    <value>
+                      <list>
+                        <string>your_section_category</string>
+                        <string>your_from_date</string>
+                        <string>your_at_date</string>
+                        <string>your_format</string>
+                      </list>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>right</string> </key>
+                    <value>
+                      <list>
+                        <string>your_validation_state</string>
+                      </list>
+                    </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>BudgetModule_viewBudgetConsumptionReportDialog</string> </value>
+        </item>
+        <item>
+            <key> <string>method</string> </key>
+            <value> <string>POST</string> </value>
+        </item>
+        <item>
+            <key> <string>name</string> </key>
+            <value> <string>BudgetModule_viewBudgetConsumptionReportDialog</string> </value>
+        </item>
+        <item>
+            <key> <string>pt</string> </key>
+            <value> <string>form_dialog</string> </value>
+        </item>
+        <item>
+            <key> <string>row_length</string> </key>
+            <value> <int>4</int> </value>
+        </item>
+        <item>
+            <key> <string>stored_encoding</string> </key>
+            <value> <string>UTF-8</string> </value>
+        </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <string>Budget Consumption</string> </value>
+        </item>
+        <item>
+            <key> <string>unicode_mode</string> </key>
+            <value> <int>0</int> </value>
+        </item>
+        <item>
+            <key> <string>update_action</string> </key>
+            <value> <string></string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_budget/SkinTemplateItem/portal_skins/erp5_budget/BudgetModule_viewBudgetConsumptionReportDialog/your_at_date.xml b/bt5/erp5_budget/SkinTemplateItem/portal_skins/erp5_budget/BudgetModule_viewBudgetConsumptionReportDialog/your_at_date.xml
new file mode 100644
index 0000000000000000000000000000000000000000..6d2d91f6178cd942af75eb72801fdb3fcd728f6c
--- /dev/null
+++ b/bt5/erp5_budget/SkinTemplateItem/portal_skins/erp5_budget/BudgetModule_viewBudgetConsumptionReportDialog/your_at_date.xml
@@ -0,0 +1,87 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <tuple>
+        <global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
+        <tuple/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>your_at_date</string> </value>
+        </item>
+        <item>
+            <key> <string>message_values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>external_validator_failed</string> </key>
+                    <value> <string>The input failed the external validator.</string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>overrides</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>tales</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string>your_at_date</string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string>Base_viewDialogFieldLibrary</string> </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string>Click to edit the target</string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_budget/SkinTemplateItem/portal_skins/erp5_budget/BudgetModule_viewBudgetConsumptionReportDialog/your_format.xml b/bt5/erp5_budget/SkinTemplateItem/portal_skins/erp5_budget/BudgetModule_viewBudgetConsumptionReportDialog/your_format.xml
new file mode 100644
index 0000000000000000000000000000000000000000..be5e86c88649aa13283f3a9c3f57b3f2aa3130e8
--- /dev/null
+++ b/bt5/erp5_budget/SkinTemplateItem/portal_skins/erp5_budget/BudgetModule_viewBudgetConsumptionReportDialog/your_format.xml
@@ -0,0 +1,132 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <tuple>
+        <global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
+        <tuple/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>delegated_list</string> </key>
+            <value>
+              <list>
+                <string>default</string>
+                <string>items</string>
+              </list>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>your_format</string> </value>
+        </item>
+        <item>
+            <key> <string>message_values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>external_validator_failed</string> </key>
+                    <value> <string>The input failed the external validator.</string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>overrides</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>tales</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>default</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>items</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>default</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string>your_format</string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string>Base_viewDialogFieldLibrary</string> </value>
+                </item>
+                <item>
+                    <key> <string>items</string> </key>
+                    <value>
+                      <list/>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string>Click to edit the target</string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <tuple>
+        <global name="TALESMethod" module="Products.Formulator.TALESField"/>
+        <tuple/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_text</string> </key>
+            <value> <string>python: context.Base_getConversionFormatItemList(base_content_type=\'application/vnd.oasis.opendocument.spreadsheet\')</string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_budget/SkinTemplateItem/portal_skins/erp5_budget/BudgetModule_viewBudgetConsumptionReportDialog/your_from_date.xml b/bt5/erp5_budget/SkinTemplateItem/portal_skins/erp5_budget/BudgetModule_viewBudgetConsumptionReportDialog/your_from_date.xml
new file mode 100644
index 0000000000000000000000000000000000000000..9076e2f5a41b76705e39dbbbc2f8cb2b60e6e14a
--- /dev/null
+++ b/bt5/erp5_budget/SkinTemplateItem/portal_skins/erp5_budget/BudgetModule_viewBudgetConsumptionReportDialog/your_from_date.xml
@@ -0,0 +1,87 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <tuple>
+        <global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
+        <tuple/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>your_from_date</string> </value>
+        </item>
+        <item>
+            <key> <string>message_values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>external_validator_failed</string> </key>
+                    <value> <string>The input failed the external validator.</string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>overrides</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>tales</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string>your_from_date</string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string>Base_viewDialogFieldLibrary</string> </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string>Click to edit the target</string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_budget/SkinTemplateItem/portal_skins/erp5_budget/BudgetModule_viewBudgetConsumptionReportDialog/your_section_category.xml b/bt5/erp5_budget/SkinTemplateItem/portal_skins/erp5_budget/BudgetModule_viewBudgetConsumptionReportDialog/your_section_category.xml
new file mode 100644
index 0000000000000000000000000000000000000000..42ae5f89725a5e5752c214d210d4ab4796278426
--- /dev/null
+++ b/bt5/erp5_budget/SkinTemplateItem/portal_skins/erp5_budget/BudgetModule_viewBudgetConsumptionReportDialog/your_section_category.xml
@@ -0,0 +1,137 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <tuple>
+        <global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
+        <tuple/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>delegated_list</string> </key>
+            <value>
+              <list/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>your_section_category</string> </value>
+        </item>
+        <item>
+            <key> <string>message_values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>external_validator_failed</string> </key>
+                    <value> <string>The input failed the external validator.</string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>overrides</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>tales</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>default</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>items</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string>your_section_category</string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string>Base_viewDialogFieldLibrary</string> </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string>Click to edit the target</string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <tuple>
+        <global name="TALESMethod" module="Products.Formulator.TALESField"/>
+        <tuple/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_text</string> </key>
+            <value> <string>preferences/getPreferredAccountingTransactionSectionCategory</string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="3" aka="AAAAAAAAAAM=">
+    <pickle>
+      <tuple>
+        <global name="TALESMethod" module="Products.Formulator.TALESField"/>
+        <tuple/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_text</string> </key>
+            <value> <string>python:here.portal_categories.group.getCategoryChildIndentedTitleItemList(base=1)</string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_budget/SkinTemplateItem/portal_skins/erp5_budget/BudgetModule_viewBudgetConsumptionReportDialog/your_validation_state.xml b/bt5/erp5_budget/SkinTemplateItem/portal_skins/erp5_budget/BudgetModule_viewBudgetConsumptionReportDialog/your_validation_state.xml
new file mode 100644
index 0000000000000000000000000000000000000000..15a6e05a3268a18aab89ca232e84d758f9f8a655
--- /dev/null
+++ b/bt5/erp5_budget/SkinTemplateItem/portal_skins/erp5_budget/BudgetModule_viewBudgetConsumptionReportDialog/your_validation_state.xml
@@ -0,0 +1,313 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <tuple>
+        <global name="MultiListField" module="Products.Formulator.StandardFields"/>
+        <tuple/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>your_validation_state</string> </value>
+        </item>
+        <item>
+            <key> <string>message_values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>external_validator_failed</string> </key>
+                    <value> <string>The input failed the external validator.</string> </value>
+                </item>
+                <item>
+                    <key> <string>required_not_found</string> </key>
+                    <value> <string>Input is required but no input given.</string> </value>
+                </item>
+                <item>
+                    <key> <string>unknown_selection</string> </key>
+                    <value> <string>You selected an item that was not in the list.</string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>overrides</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>alternate_name</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>css_class</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>default</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>description</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>editable</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>enabled</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>external_validator</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>extra</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>extra_item</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>hidden</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>items</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>required</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>size</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>title</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>unicode</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>view_separator</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>tales</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>alternate_name</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>css_class</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>default</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>description</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>editable</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>enabled</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>external_validator</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>extra</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>extra_item</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>hidden</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>items</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>required</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>size</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>title</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>unicode</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>view_separator</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>alternate_name</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>css_class</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>default</string> </key>
+                    <value>
+                      <list/>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>description</string> </key>
+                    <value> <string>Only consider budgets in those states.</string> </value>
+                </item>
+                <item>
+                    <key> <string>editable</string> </key>
+                    <value> <int>1</int> </value>
+                </item>
+                <item>
+                    <key> <string>enabled</string> </key>
+                    <value> <int>1</int> </value>
+                </item>
+                <item>
+                    <key> <string>external_validator</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>extra</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>extra_item</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>hidden</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+                <item>
+                    <key> <string>items</string> </key>
+                    <value>
+                      <list/>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>required</string> </key>
+                    <value> <int>1</int> </value>
+                </item>
+                <item>
+                    <key> <string>size</string> </key>
+                    <value> <int>5</int> </value>
+                </item>
+                <item>
+                    <key> <string>title</string> </key>
+                    <value> <string>Validation State</string> </value>
+                </item>
+                <item>
+                    <key> <string>unicode</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+                <item>
+                    <key> <string>view_separator</string> </key>
+                    <value> <string encoding="cdata"><![CDATA[
+
+<br />
+
+]]></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <tuple>
+        <global name="TALESMethod" module="Products.Formulator.TALESField"/>
+        <tuple/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_text</string> </key>
+            <value> <string>python:(\'validated\', )</string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="3" aka="AAAAAAAAAAM=">
+    <pickle>
+      <tuple>
+        <global name="TALESMethod" module="Products.Formulator.TALESField"/>
+        <tuple/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_text</string> </key>
+            <value> <string>python:here.Base_getTranslatedWorkflowStateItemList(wf_id=\'budget_workflow\')</string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="4" aka="AAAAAAAAAAQ=">
+    <pickle>
+      <tuple>
+        <global name="TALESMethod" module="Products.Formulator.TALESField"/>
+        <tuple/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_text</string> </key>
+            <value> <string>python: len(field.get_value(\'items\'))</string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_budget/SkinTemplateItem/portal_skins/erp5_budget/Budget_getBudgetConsumptionReportData.xml b/bt5/erp5_budget/SkinTemplateItem/portal_skins/erp5_budget/Budget_getBudgetConsumptionReportData.xml
new file mode 100644
index 0000000000000000000000000000000000000000..61863c363a507fd048fcf9290124afa8628fe54c
--- /dev/null
+++ b/bt5/erp5_budget/SkinTemplateItem/portal_skins/erp5_budget/Budget_getBudgetConsumptionReportData.xml
@@ -0,0 +1,354 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <tuple>
+        <global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
+        <tuple/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>Script_magic</string> </key>
+            <value> <int>3</int> </value>
+        </item>
+        <item>
+            <key> <string>_bind_names</string> </key>
+            <value>
+              <object>
+                <klass>
+                  <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
+                </klass>
+                <tuple/>
+                <state>
+                  <dictionary>
+                    <item>
+                        <key> <string>_asgns</string> </key>
+                        <value>
+                          <dictionary>
+                            <item>
+                                <key> <string>name_container</string> </key>
+                                <value> <string>container</string> </value>
+                            </item>
+                            <item>
+                                <key> <string>name_context</string> </key>
+                                <value> <string>context</string> </value>
+                            </item>
+                            <item>
+                                <key> <string>name_m_self</string> </key>
+                                <value> <string>script</string> </value>
+                            </item>
+                            <item>
+                                <key> <string>name_subpath</string> </key>
+                                <value> <string>traverse_subpath</string> </value>
+                            </item>
+                          </dictionary>
+                        </value>
+                    </item>
+                  </dictionary>
+                </state>
+              </object>
+            </value>
+        </item>
+        <item>
+            <key> <string>_body</string> </key>
+            <value> <string encoding="cdata"><![CDATA[
+
+from pprint import pformat\n
+portal = context.getPortalObject()\n
+request= portal.REQUEST\n
+\n
+# this report can be called on a budget ...\n
+if context.getPortalType() == \'Budget\':\n
+  defined_group = \'group\'\n
+  if \'group\' in context.getVariationBaseCategoryList():\n
+    for category in context.getVariationCategoryList():\n
+      if category.startswith(\'group/\'):\n
+        defined_group = category\n
+  budget_list = (context,)\n
+else:\n
+  # ... or on the budget module, and in this case, all budgets are used\n
+  defined_group = request[\'section_category\']\n
+  from_date = request.get(\'from_date\')\n
+  at_date = request.get(\'at_date\')\n
+  validation_state = request.get(\'validation_state\', [])\n
+  \n
+  budget_list = portal.portal_catalog.searchResults(\n
+                                portal_type=\'Budget\',\n
+                                validation_state=validation_state)\n
+  if from_date or at_date:\n
+    new_budget_list = []\n
+    for budget in budget_list:\n
+      if from_date and budget.getStartDateRangeMax() < from_date:\n
+        continue\n
+      if at_date and budget.getStartDateRangeMin() > at_date:\n
+        continue\n
+      new_budget_list.append(budget)\n
+    budget_list = new_budget_list\n
+\n
+line_list = []\n
+\n
+def isVisibleCell(cell):\n
+  # can this cell be viewed by this user ?\n
+  for category in cell.getMembershipCriterionCategoryList():\n
+    if category.startswith(\'group/\'):\n
+      if not category.startswith(defined_group):\n
+        return False\n
+  return True\n
+\n
+\n
+for budget in budget_list:\n
+  for budget_line in budget.contentValues():\n
+    total_level_1_initial_budget = 0\n
+    total_level_1_current_budget = 0\n
+    total_level_1_engaged_budget = 0\n
+    total_level_1_consumed_budget = 0\n
+    total_level_1_available_budget = 0\n
+    \n
+    level_1_line_list = [dict(is_level_1=1,\n
+                              title=budget_line.getTitle().decode(\'utf8\'))]\n
+\n
+    variation_axis_list = []\n
+    for possible_axis in budget_line.getVariationBaseCategoryList():\n
+      for cell_range in budget_line.getCellRange():\n
+        if cell_range and cell_range[0].startswith(possible_axis):\n
+          variation_axis_list.append(possible_axis)\n
+          break\n
+    \n
+    if len(variation_axis_list) == 1:\n
+      # if there\'s only one dimension, we add a virtual level 2, to keep the\n
+      # same structure\n
+      level_2_variation_category_list = [budget_line.getResource(base=1)]\n
+      level_3_variation_category_list = [x for x in\n
+          budget_line.getVariationCategoryList() if\n
+          x.startswith(variation_axis_list[0])]\n
+    else:\n
+      level_2_variation_category_list = [x for x in\n
+          budget_line.getVariationCategoryList() if\n
+          x.startswith(variation_axis_list[0])]\n
+      level_3_variation_category_list = [x for x in\n
+          budget_line.getVariationCategoryList() if\n
+          x.startswith(variation_axis_list[1])]\n
+\n
+    # we use BudgetLine_asCellRange to get cell names, and have a default value\n
+    # for "virtual level 2"\n
+    cell_name_dict = {budget_line.getResource(base=1):\n
+                          budget_line.getTitle().encode(\'utf8\')}\n
+    for cell_range_list in budget_line.BudgetLine_asCellRange(matrixbox=1):\n
+      for category, title in cell_range_list:\n
+        cell_name_dict[category] = title.decode(\'utf8\')\n
+\n
+    for level_2_category in level_2_variation_category_list:\n
+\n
+      total_level_2_initial_budget = 0\n
+      total_level_2_current_budget = 0\n
+      total_level_2_engaged_budget = 0\n
+      total_level_2_consumed_budget = 0\n
+      total_level_2_available_budget = 0\n
+      level_2_line_list = [dict(is_level_2=1,\n
+                                title=cell_name_dict[level_2_category])]\n
+      \n
+      for level_3_category in level_3_variation_category_list:\n
+        for cell in budget_line.getCellValueList():\n
+          if not isVisibleCell(cell):\n
+            continue\n
+          if level_2_category in cell.getMembershipCriterionCategoryList() and\\\n
+              level_3_category in cell.getMembershipCriterionCategoryList():\n
+\n
+            initial_budget = cell.getQuantity()\n
+            current_budget = cell.getCurrentBalance()\n
+            engaged_budget = cell.getEngagedBudget()\n
+            consumed_budget = cell.getConsumedBudget()\n
+            available_budget = cell.getAvailableBudget()\n
+            \n
+            total_level_2_initial_budget += initial_budget\n
+            total_level_2_current_budget += current_budget\n
+            total_level_2_engaged_budget += engaged_budget\n
+            total_level_2_consumed_budget += consumed_budget\n
+            total_level_2_available_budget += available_budget\n
+\n
+            consumed_ratio = 0\n
+            if current_budget:\n
+              consumed_ratio = consumed_budget / current_budget\n
+            level_2_line_list.append(dict(is_level_3=1,\n
+                                          title=cell_name_dict[level_3_category],\n
+                                          initial_budget=initial_budget,\n
+                                          current_budget=current_budget,\n
+                                          engaged_budget=engaged_budget,\n
+                                          consumed_budget=consumed_budget,\n
+                                          available_budget=available_budget,\n
+                                          consumed_ratio=consumed_ratio))\n
+\n
+      if len(level_2_line_list) > 1:\n
+        consumed_ratio = 0\n
+        if total_level_2_current_budget:\n
+          consumed_ratio = total_level_2_consumed_budget / total_level_2_current_budget\n
+        level_1_line_list.extend(level_2_line_list)\n
+        level_1_line_list.append(dict(is_total_level_2=1,\n
+                                      title=cell_name_dict[level_2_category],\n
+                                      initial_budget=total_level_2_initial_budget,\n
+                                      current_budget=total_level_2_current_budget,\n
+                                      engaged_budget=total_level_2_engaged_budget,\n
+                                      consumed_budget=total_level_2_consumed_budget,\n
+                                      available_budget=total_level_2_available_budget,\n
+                                      consumed_ratio=consumed_ratio))\n
+\n
+      total_level_1_initial_budget += total_level_2_initial_budget\n
+      total_level_1_current_budget += total_level_2_current_budget\n
+      total_level_1_engaged_budget += total_level_2_engaged_budget\n
+      total_level_1_consumed_budget += total_level_2_consumed_budget\n
+      total_level_1_available_budget += total_level_2_available_budget\n
+\n
+    if len(level_1_line_list) > 1:\n
+      consumed_ratio = 0\n
+      if total_level_1_current_budget:\n
+        consumed_ratio = total_level_1_consumed_budget / total_level_1_current_budget\n
+      line_list.extend(level_1_line_list)\n
+      line_list.append(dict(is_total_level_1=1,\n
+                            title=budget_line.getTitle().decode(\'utf8\'),\n
+                            initial_budget=total_level_1_initial_budget,\n
+                            current_budget=total_level_1_current_budget,\n
+                            engaged_budget=total_level_1_engaged_budget,\n
+                            consumed_budget=total_level_1_consumed_budget,\n
+                            available_budget=total_level_1_available_budget,\n
+                            consumed_ratio=consumed_ratio))\n
+\n
+      \n
+  \n
+if line_list:\n
+  line_list[-1][\'is_last_line\'] = 1\n
+\n
+return line_list\n
+\n
+from pprint import pformat\n
+return pformat(line_list)\n
+
+
+]]></string> </value>
+        </item>
+        <item>
+            <key> <string>_code</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>_params</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>_proxy_roles</string> </key>
+            <value>
+              <tuple>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>errors</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>func_code</string> </key>
+            <value>
+              <object>
+                <klass>
+                  <global name="FuncCode" module="Shared.DC.Scripts.Signature"/>
+                </klass>
+                <tuple/>
+                <state>
+                  <dictionary>
+                    <item>
+                        <key> <string>co_argcount</string> </key>
+                        <value> <int>0</int> </value>
+                    </item>
+                    <item>
+                        <key> <string>co_varnames</string> </key>
+                        <value>
+                          <tuple>
+                            <string>pprint</string>
+                            <string>pformat</string>
+                            <string>_getattr_</string>
+                            <string>context</string>
+                            <string>portal</string>
+                            <string>request</string>
+                            <string>defined_group</string>
+                            <string>_getiter_</string>
+                            <string>category</string>
+                            <string>budget_list</string>
+                            <string>_getitem_</string>
+                            <string>from_date</string>
+                            <string>at_date</string>
+                            <string>validation_state</string>
+                            <string>new_budget_list</string>
+                            <string>budget</string>
+                            <string>line_list</string>
+                            <string>isVisibleCell</string>
+                            <string>budget_line</string>
+                            <string>total_level_1_initial_budget</string>
+                            <string>total_level_1_current_budget</string>
+                            <string>total_level_1_engaged_budget</string>
+                            <string>total_level_1_consumed_budget</string>
+                            <string>total_level_1_available_budget</string>
+                            <string>dict</string>
+                            <string>level_1_line_list</string>
+                            <string>variation_axis_list</string>
+                            <string>possible_axis</string>
+                            <string>cell_range</string>
+                            <string>len</string>
+                            <string>level_2_variation_category_list</string>
+                            <string>append</string>
+                            <string>$append0</string>
+                            <string>x</string>
+                            <string>level_3_variation_category_list</string>
+                            <string>cell_name_dict</string>
+                            <string>cell_range_list</string>
+                            <string>title</string>
+                            <string>_write_</string>
+                            <string>level_2_category</string>
+                            <string>total_level_2_initial_budget</string>
+                            <string>total_level_2_current_budget</string>
+                            <string>total_level_2_engaged_budget</string>
+                            <string>total_level_2_consumed_budget</string>
+                            <string>total_level_2_available_budget</string>
+                            <string>level_2_line_list</string>
+                            <string>level_3_category</string>
+                            <string>cell</string>
+                            <string>initial_budget</string>
+                            <string>current_budget</string>
+                            <string>engaged_budget</string>
+                            <string>consumed_budget</string>
+                            <string>available_budget</string>
+                            <string>_inplacevar_</string>
+                            <string>consumed_ratio</string>
+                          </tuple>
+                        </value>
+                    </item>
+                  </dictionary>
+                </state>
+              </object>
+            </value>
+        </item>
+        <item>
+            <key> <string>func_defaults</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>Budget_getBudgetConsumptionReportData</string> </value>
+        </item>
+        <item>
+            <key> <string>warnings</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_budget/SkinTemplateItem/portal_skins/erp5_budget/Budget_viewBudgetConsumptionReport.xml b/bt5/erp5_budget/SkinTemplateItem/portal_skins/erp5_budget/Budget_viewBudgetConsumptionReport.xml
new file mode 100644
index 0000000000000000000000000000000000000000..ab9bc2fc46a30866ade9fb94902affaaa3d8a625
--- /dev/null
+++ b/bt5/erp5_budget/SkinTemplateItem/portal_skins/erp5_budget/Budget_viewBudgetConsumptionReport.xml
@@ -0,0 +1,483 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <tuple>
+        <global name="OOoTemplate" module="Products.ERP5OOo.OOoTemplate"/>
+        <tuple/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>OLE_documents_zipstring</string> </key>
+            <value> <string encoding="base64">UEsDBBQAAAAIALt0ajpE1YD/SgEAAGgHAAAVAAAATUVUQS1JTkYvbWFuaWZlc3QueG1stZVNbsIw
+EIX3nCLyPnHLqooIlVqpJ6AHGJxJsOQ/ecYIbt8EFUhbFgXFO9saf++N7RmvXg/WFHuMpL1rxHP1
+JAp0yrfa9Y343HyUL+J1vVhZcLpD4vo8KIZ9ji7TRqToag+kqXZgkWpWtQ/oWq+SRcf1z/h6VFov
+iiu40wbLITAei6sYthpKPgZsBIRgtAIefMq9a6uTVjWVqChEhJZ2iCyukElyy8lyl4wpA/CuEVLI
+u6wwHlgO+dymKe94dDMGzMklPhqk2bEWGR6A3oZtdsluHWhDks/DKrh+bvgsvHfvOt2neHpTtJSg
+FBocpj5KlWJ87BLv18oiEKLvIxJtIZNAZzww5nLvQwpDTac8+JGc7WDYe5MNri30SPJNs4WQqQ6+
+NbKwiYHTI4/yd/un5MbirJKu1FTjfzbmbczIPHyXl9a8kn9+y/UXUEsBAhQAFAAAAAgAu3RqOkTV
+gP9KAQAAaAcAABUAAAAAAAAAAAAAAAAAAAAAAE1FVEEtSU5GL21hbmlmZXN0LnhtbFBLBQYAAAAA
+AQABAEMAAAB9AQAAAAA=</string> </value>
+        </item>
+        <item>
+            <key> <string>_bind_names</string> </key>
+            <value>
+              <object>
+                <klass>
+                  <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
+                </klass>
+                <tuple/>
+                <state>
+                  <dictionary>
+                    <item>
+                        <key> <string>_asgns</string> </key>
+                        <value>
+                          <dictionary>
+                            <item>
+                                <key> <string>name_subpath</string> </key>
+                                <value> <string>traverse_subpath</string> </value>
+                            </item>
+                          </dictionary>
+                        </value>
+                    </item>
+                  </dictionary>
+                </state>
+              </object>
+            </value>
+        </item>
+        <item>
+            <key> <string>_text</string> </key>
+            <value> <string encoding="cdata"><![CDATA[
+
+<?xml version=\'1.0\' encoding=\'utf-8\'?>\n
+<office:document-content xmlns:rpt="http://openoffice.org/2005/report"\n
+                         xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"\n
+                         xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"\n
+                         xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"\n
+                         xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"\n
+                         xmlns:tal="http://xml.zope.org/namespaces/tal"\n
+                         xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"\n
+                         xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"\n
+                         xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"\n
+                         xmlns:xlink="http://www.w3.org/1999/xlink"\n
+                         xmlns:field="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:field:1.0"\n
+                         xmlns:rdfa="http://docs.oasis-open.org/opendocument/meta/rdfa#"\n
+                         xmlns:formx="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0"\n
+                         xmlns:presentation="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0"\n
+                         xmlns:math="http://www.w3.org/1998/Math/MathML"\n
+                         xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"\n
+                         xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"\n
+                         xmlns:ooo="http://openoffice.org/2004/office"\n
+                         xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"\n
+                         xmlns:dc="http://purl.org/dc/elements/1.1/"\n
+                         xmlns:i18n="http://xml.zope.org/namespaces/i18n"\n
+                         xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"\n
+                         xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"\n
+                         xmlns:xforms="http://www.w3.org/2002/xforms"\n
+                         xmlns:dom="http://www.w3.org/2001/xml-events" \n
+                         xmlns:ooow="http://openoffice.org/2004/writer"\n
+                         xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"\n
+                         xmlns:metal="http://xml.zope.org/namespaces/metal"\n
+                         xmlns:xsd="http://www.w3.org/2001/XMLSchema"\n
+                         xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2"\n
+                         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"\n
+                         xmlns:oooc="http://openoffice.org/2004/calc"\n
+                         i18n:domain=\'ui\'\n
+                         office:version="1.2"\n
+                         tal:attributes="dummy python:request.RESPONSE.setHeader(\'Content-Type\', \'text/html;; charset=utf-8\')"\n
+                         tal:define="line_list here/Budget_getBudgetConsumptionReportData;\n
+                                     date_renderer nocall:here/Base_viewFieldLibrary/my_date/render_pdf;\n
+                                     start_date python:date_renderer(request.get(\'from_date\', here.getProperty(\'start_date_range_min\')));\n
+                                     stop_date python:date_renderer(request.get(\'at_date\', here.getProperty(\'start_date_range_max\')));\n
+                                     ">\n
+  <office:scripts/>\n
+ <office:font-face-decls>\n
+  <style:font-face style:name="DejaVu Sans" svg:font-family="\'DejaVu Sans\'" style:font-family-generic="swiss" style:font-pitch="variable"/>\n
+  <style:font-face style:name="Liberation Sans" svg:font-family="\'Liberation Sans\'" style:font-family-generic="swiss" style:font-pitch="variable"/>\n
+  <style:font-face style:name="DejaVu Sans1" svg:font-family="\'DejaVu Sans\'" style:font-family-generic="system" style:font-pitch="variable"/>\n
+  <style:font-face style:name="Tahoma" svg:font-family="Tahoma" style:font-family-generic="system" style:font-pitch="variable"/>\n
+ </office:font-face-decls>\n
+ <office:automatic-styles>\n
+  <style:style style:name="co1" style:family="table-column">\n
+   <style:table-column-properties fo:break-before="auto" style:column-width="0.676cm"/>\n
+  </style:style>\n
+  <style:style style:name="co2" style:family="table-column">\n
+   <style:table-column-properties fo:break-before="auto" style:column-width="10cm"/>\n
+  </style:style>\n
+  <style:style style:name="co3" style:family="table-column">\n
+   <style:table-column-properties fo:break-before="auto" style:column-width="2.7cm"/>\n
+  </style:style>\n
+  <style:style style:name="co4" style:family="table-column">\n
+   <style:table-column-properties fo:break-before="auto" style:column-width="2.267cm"/>\n
+  </style:style>\n
+  <style:style style:name="ro1" style:family="table-row">\n
+   <style:table-row-properties style:row-height="0.621cm" fo:break-before="auto" style:use-optimal-row-height="true"/>\n
+  </style:style>\n
+  <style:style style:name="ro2" style:family="table-row">\n
+   <style:table-row-properties style:row-height="0.452cm" fo:break-before="auto" style:use-optimal-row-height="true"/>\n
+  </style:style>\n
+  <style:style style:name="ro3" style:family="table-row">\n
+   <style:table-row-properties style:row-height="0.921cm" fo:break-before="auto" style:use-optimal-row-height="true"/>\n
+  </style:style>\n
+  <style:style style:name="ro4" style:family="table-row">\n
+   <style:table-row-properties style:row-height="0.526cm" fo:break-before="auto" style:use-optimal-row-height="true"/>\n
+  </style:style>\n
+  <style:style style:name="ro5" style:family="table-row">\n
+   <style:table-row-properties style:row-height="0.499cm" fo:break-before="auto" style:use-optimal-row-height="true"/>\n
+  </style:style>\n
+  <style:style style:name="ta1" style:family="table" style:master-page-name="Default">\n
+   <style:table-properties table:display="true" style:writing-mode="lr-tb"/>\n
+  </style:style>\n
+  <number:number-style style:name="N3">\n
+   <number:number number:decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>\n
+  </number:number-style>\n
+  <number:percentage-style style:name="N11">\n
+   <number:number number:decimal-places="2" number:min-integer-digits="1"/>\n
+   <number:text>%</number:text>\n
+  </number:percentage-style>\n
+  <style:style style:name="ce1" style:family="table-cell" style:parent-style-name="Default">\n
+   <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false" style:vertical-align="middle"/>\n
+   <style:paragraph-properties fo:text-align="center"/>\n
+   <style:text-properties fo:font-size="14pt" fo:font-weight="bold" style:font-size-asian="14pt" style:font-weight-asian="bold" style:font-size-complex="14pt" style:font-weight-complex="bold"/>\n
+  </style:style>\n
+  <style:style style:name="ce2" style:family="table-cell" style:parent-style-name="Default">\n
+   <style:text-properties fo:font-size="9pt"/>\n
+  </style:style>\n
+  <style:style style:name="ce3" style:family="table-cell" style:parent-style-name="Default">\n
+   <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="wrap" fo:border="0.002cm solid #000000" style:vertical-align="middle"/>\n
+   <style:paragraph-properties fo:text-align="center" fo:margin-left="0cm"/>\n
+   <style:text-properties fo:font-weight="bold"/>\n
+  </style:style>\n
+  <style:style style:name="ce4" style:family="table-cell" style:parent-style-name="Default">\n
+   <style:table-cell-properties fo:border-bottom="0.002cm solid #000000" fo:border-left="0.002cm solid #000000" fo:border-right="none" fo:border-top="none"/>\n
+   <style:text-properties fo:font-size="11pt" fo:font-style="italic" fo:font-weight="bold" style:font-size-asian="11pt" style:font-size-complex="11pt"/>\n
+  </style:style>\n
+  <style:style style:name="ce5" style:family="table-cell" style:parent-style-name="Default">\n
+   <style:table-cell-properties fo:border-bottom="0.002cm solid #000000" fo:border-left="0.002cm solid #000000" fo:border-right="none" fo:border-top="0.002cm solid #000000"/>\n
+  </style:style>\n
+  <style:style style:name="ce6" style:family="table-cell" style:parent-style-name="Default">\n
+   <style:table-cell-properties fo:border-bottom="0.002cm solid #000000" fo:border-left="0.002cm solid #000000" fo:border-right="none" fo:border-top="0.002cm solid #000000"/>\n
+   <style:text-properties fo:font-weight="normal" style:font-weight-asian="normal" style:font-weight-complex="normal"/>\n
+  </style:style>\n
+  <style:style style:name="ce7" style:family="table-cell" style:parent-style-name="Default">\n
+   <style:table-cell-properties fo:border-bottom="0.002cm solid #000000" fo:border-left="0.002cm solid #000000" fo:border-right="none" fo:border-top="0.002cm solid #000000"/>\n
+   <style:text-properties fo:font-style="italic" fo:font-weight="bold"/>\n
+  </style:style>\n
+  <style:style style:name="ce8" style:family="table-cell" style:parent-style-name="Default">\n
+   <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="wrap" fo:border="0.002cm solid #000000"/>\n
+   <style:paragraph-properties fo:text-align="center" fo:margin-left="0cm"/>\n
+   <style:text-properties fo:font-weight="bold"/>\n
+  </style:style>\n
+  <style:style style:name="ce9" style:family="table-cell" style:parent-style-name="Default">\n
+   <style:table-cell-properties fo:border-bottom="0.002cm solid #000000" fo:border-left="none" fo:border-right="0.002cm solid #000000" fo:border-top="0.002cm solid #000000"/>\n
+   <style:text-properties fo:font-style="italic" fo:font-weight="bold"/>\n
+  </style:style>\n
+  <style:style style:name="ce10" style:family="table-cell" style:parent-style-name="Default">\n
+   <style:table-cell-properties fo:border-bottom="0.002cm solid #000000" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" fo:border-left="none" fo:border-right="0.002cm solid #000000" fo:border-top="0.002cm solid #000000"/>\n
+  </style:style>\n
+  <style:style style:name="ce11" style:family="table-cell" style:parent-style-name="Default">\n
+   <style:table-cell-properties fo:border-bottom="0.002cm solid #000000" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" fo:border-left="none" fo:border-right="0.002cm solid #000000" fo:border-top="0.002cm solid #000000"/>\n
+   <style:text-properties fo:font-size="8pt" style:font-size-asian="8pt" style:font-size-complex="8pt"/>\n
+  </style:style>\n
+  <style:style style:name="ce12" style:family="table-cell" style:parent-style-name="Default">\n
+   <style:table-cell-properties fo:border-bottom="0.002cm solid #000000" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" fo:border-left="none" fo:border-right="0.002cm solid #000000" fo:border-top="0.002cm solid #000000"/>\n
+   <style:text-properties fo:font-style="italic" fo:font-weight="normal" style:font-style-asian="italic" style:font-weight-asian="normal" style:font-style-complex="italic" style:font-weight-complex="normal"/>\n
+  </style:style>\n
+  <style:style style:name="ce13" style:family="table-cell" style:parent-style-name="Default">\n
+   <style:table-cell-properties fo:border-bottom="0.002cm solid #000000" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" fo:border-left="none" fo:border-right="0.002cm solid #000000" fo:border-top="0.002cm solid #000000"/>\n
+   <style:text-properties fo:font-style="italic" fo:font-weight="bold"/>\n
+  </style:style>\n
+  <style:style style:name="ce14" style:family="table-cell" style:parent-style-name="Default">\n
+   <style:text-properties fo:font-weight="bold"/>\n
+  </style:style>\n
+  <style:style style:name="ce15" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N3">\n
+   <style:table-cell-properties fo:border="0.002cm solid #000000"/>\n
+   <style:text-properties fo:font-style="italic" fo:font-weight="bold"/>\n
+  </style:style>\n
+  <style:style style:name="ce16" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N3">\n
+   <style:table-cell-properties fo:border="0.002cm solid #000000"/>\n
+  </style:style>\n
+  <style:style style:name="ce17" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N3">\n
+   <style:table-cell-properties fo:border="0.002cm solid #000000"/>\n
+   <style:text-properties fo:font-size="8pt" style:font-size-asian="8pt" style:font-size-complex="8pt"/>\n
+  </style:style>\n
+  <style:style style:name="ce18" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N3">\n
+   <style:table-cell-properties fo:border="0.002cm solid #000000"/>\n
+   <style:text-properties fo:font-style="italic" fo:font-weight="normal" style:font-style-asian="italic" style:font-weight-asian="normal" style:font-style-complex="italic" style:font-weight-complex="normal"/>\n
+  </style:style>\n
+  <style:style style:name="ce19" style:family="table-cell" style:parent-style-name="Default">\n
+   <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="wrap" fo:border="0.002cm solid #000000" style:vertical-align="top"/>\n
+   <style:paragraph-properties fo:text-align="center" fo:margin-left="0cm"/>\n
+   <style:text-properties fo:font-weight="bold"/>\n
+  </style:style>\n
+  <style:style style:name="ce20" style:family="table-cell" style:parent-style-name="Default">\n
+   <style:table-cell-properties fo:border="0.002cm solid #000000"/>\n
+   <style:text-properties fo:font-style="italic" fo:font-weight="bold"/>\n
+  </style:style>\n
+  <style:style style:name="ce21" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N11">\n
+   <style:table-cell-properties fo:border="0.002cm solid #000000"/>\n
+  </style:style>\n
+  <style:style style:name="ce22" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N11">\n
+   <style:table-cell-properties fo:border="0.002cm solid #000000"/>\n
+   <style:text-properties fo:font-size="8pt" style:font-size-asian="8pt" style:font-size-complex="8pt"/>\n
+  </style:style>\n
+  <style:style style:name="ce23" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N11">\n
+   <style:table-cell-properties fo:border="0.002cm solid #000000"/>\n
+   <style:text-properties fo:font-style="italic" fo:font-weight="normal" style:font-style-asian="italic" style:font-weight-asian="normal" style:font-style-complex="italic" style:font-weight-complex="normal"/>\n
+  </style:style>\n
+  <style:style style:name="ce24" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N11">\n
+   <style:table-cell-properties fo:border="0.002cm solid #000000"/>\n
+   <style:text-properties fo:font-weight="bold"/>\n
+  </style:style>\n
+  <style:style style:name="ce25" style:family="table-cell" style:parent-style-name="Default">\n
+   <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="wrap"/>\n
+   <style:paragraph-properties fo:text-align="center" fo:margin-left="0cm"/>\n
+   <style:text-properties fo:font-weight="bold"/>\n
+  </style:style>\n
+  <style:style style:name="ce26" style:family="table-cell" style:parent-style-name="Default">\n
+   <style:text-properties fo:font-style="italic" fo:font-weight="bold"/>\n
+  </style:style>\n
+  <style:style style:name="ce27" style:family="table-cell" style:parent-style-name="Default">\n
+   <style:text-properties fo:font-weight="normal" style:font-weight-asian="normal" style:font-weight-complex="normal"/>\n
+  </style:style>\n
+ </office:automatic-styles>\n
+ <office:body>\n
+  <office:spreadsheet>\n
+    <table:table table:name="Feuille1" table:style-name="ta1" table:print-ranges="Feuille1.A1:Feuille1.H11"\n
+                 tal:attributes="table:print-ranges python:\'Feuille1.A1:Feuille1.H%d\' % (7 + len(line_list))">\n
+\n
+    <office:forms form:automatic-focus="false" form:apply-design-mode="false"/>\n
+    <table:table-column table:style-name="co1" table:default-cell-style-name="ce2"/>\n
+    <table:table-column table:style-name="co2" table:default-cell-style-name="Default"/>\n
+    <table:table-column table:style-name="co3" table:number-columns-repeated="6" table:default-cell-style-name="Default"/>\n
+    <table:table-column table:style-name="co4" table:number-columns-repeated="1016" table:default-cell-style-name="Default"/>\n
+    <table:table-row table:style-name="ro1">\n
+     <table:table-cell table:style-name="ce1" office:value-type="string" table:number-columns-spanned="8" table:number-rows-spanned="1">\n
+      <text:p i18n:translate="">Budget Situation</text:p>\n
+     </table:table-cell>\n
+     <table:covered-table-cell/>\n
+     <table:covered-table-cell table:style-name="ce14"/>\n
+     <table:covered-table-cell table:number-columns-repeated="5"/>\n
+     <table:table-cell table:number-columns-repeated="1016"/>\n
+    </table:table-row>\n
+    <table:table-row table:style-name="ro2">\n
+     <table:table-cell table:style-name="Default"/>\n
+     <table:table-cell table:number-columns-repeated="1023"/>\n
+    </table:table-row>\n
+    <table:table-row table:style-name="ro2">\n
+\n
+     <table:table-cell office:value-type="string"\n
+       tal:condition="python:  start_date and stop_date">\n
+       <text:p i18n:translate="">From <tal:block tal:replace="start_date" i18n:name="start_date"/> to <tal:block tal:replace="stop_date" i18n:name="stop_date"/></text:p>\n
+     </table:table-cell>\n
+     <table:table-cell office:value-type="string"\n
+       tal:condition="not: python:  start_date and stop_date">\n
+       <text:p/>\n
+     </table:table-cell>\n
+\n
+     <table:table-cell table:number-columns-repeated="1023"/>\n
+    </table:table-row>\n
+    <table:table-row table:style-name="ro2">\n
+     <table:table-cell table:number-columns-repeated="1024"/>\n
+    </table:table-row>\n
+    <table:table-row table:style-name="ro3">\n
+     <table:table-cell table:style-name="ce3" office:value-type="string" table:number-columns-spanned="2" table:number-rows-spanned="1">\n
+      <text:p i18n:translate="">Budget Name</text:p>\n
+     </table:table-cell>\n
+     <table:covered-table-cell table:style-name="ce8"/>\n
+     <table:table-cell table:style-name="ce8" office:value-type="string">\n
+      <text:p i18n:translate="">Initial Budget</text:p>\n
+     </table:table-cell>\n
+     <table:table-cell table:style-name="ce8" office:value-type="string">\n
+      <text:p i18n:translate="">Current Budget</text:p>\n
+     </table:table-cell>\n
+     <table:table-cell table:style-name="ce8" office:value-type="string">\n
+      <text:p i18n:translate="">Engaged Budget</text:p>\n
+     </table:table-cell>\n
+     <table:table-cell table:style-name="ce8" office:value-type="string">\n
+      <text:p i18n:translate="">Consumed Budget</text:p>\n
+     </table:table-cell>\n
+     <table:table-cell table:style-name="ce8" office:value-type="string">\n
+       <text:p i18n:translate="">Available Budget</text:p>\n
+     </table:table-cell>\n
+     <table:table-cell table:style-name="ce8" office:value-type="string">\n
+      <text:p i18n:translate="">Percentage realized</text:p>\n
+     </table:table-cell>\n
+     <table:table-cell table:style-name="ce25" table:number-columns-repeated="248"/>\n
+     <table:table-cell table:number-columns-repeated="768"/>\n
+    </table:table-row>\n
+\n
+    <tal:block tal:repeat="line line_list">\n
+\n
+    <table:table-row table:style-name="ro4" tal:condition="line/is_level_1 | nothing">\n
+     <table:table-cell table:style-name="ce4" office:value-type="string">\n
+       <text:p tal:content="line/title">$level1</text:p>\n
+     </table:table-cell>\n
+     <table:table-cell table:style-name="ce9"/>\n
+     <table:table-cell table:style-name="ce15" table:number-columns-repeated="5"/>\n
+     <table:table-cell table:style-name="ce20"/>\n
+     <table:table-cell table:style-name="ce26" table:number-columns-repeated="248"/>\n
+     <table:table-cell table:number-columns-repeated="768"/>\n
+    </table:table-row>\n
+\n
+    <table:table-row table:style-name="ro5" tal:condition="line/is_level_2 | nothing">\n
+     <table:table-cell table:style-name="ce5"/>\n
+     <table:table-cell table:style-name="ce10" office:value-type="string">\n
+      <text:p tal:content="line/title">$level 2</text:p>\n
+     </table:table-cell>\n
+     <table:table-cell table:style-name="ce15" table:number-columns-repeated="5"/>\n
+     <table:table-cell table:style-name="ce20"/>\n
+     <table:table-cell table:number-columns-repeated="1016"/>\n
+    </table:table-row>\n
+\n
+    <table:table-row table:style-name="ro5" tal:condition="line/is_level_3 | nothing">\n
+     <table:table-cell table:style-name="ce5"/>\n
+     <table:table-cell table:style-name="ce11" office:value-type="string">\n
+       <text:p><text:s text:c="3"/><tal:block tal:replace="line/title"/></text:p>\n
+     </table:table-cell>\n
+     <table:table-cell table:style-name="ce17" office:value-type="float" office:value="1"  tal:attributes="office:value line/initial_budget">\n
+      <text:p>1</text:p>\n
+     </table:table-cell>\n
+     <table:table-cell table:style-name="ce17" office:value-type="float" office:value="2" tal:attributes="office:value line/current_budget">\n
+      <text:p>2</text:p>\n
+     </table:table-cell>\n
+     <table:table-cell table:style-name="ce17" office:value-type="float" office:value="3" tal:attributes="office:value line/engaged_budget">\n
+      <text:p>3</text:p>\n
+     </table:table-cell>\n
+     <table:table-cell table:style-name="ce17" office:value-type="float" office:value="4" tal:attributes="office:value line/consumed_budget">\n
+      <text:p>4</text:p>\n
+     </table:table-cell>\n
+     <table:table-cell table:style-name="ce17" office:value-type="float" office:value="5" tal:attributes="office:value line/available_budget">\n
+      <text:p>5</text:p>\n
+     </table:table-cell>\n
+     <table:table-cell table:style-name="ce22" office:value-type="percentage" office:value="0.06"  tal:attributes="office:value line/consumed_ratio">\n
+      <text:p>6,00%</text:p>\n
+     </table:table-cell>\n
+     <table:table-cell table:number-columns-repeated="1016"/>\n
+    </table:table-row>\n
+\n
+    <table:table-row table:style-name="ro5" tal:condition="line/is_total_level_2 | nothing">\n
+     <table:table-cell table:style-name="ce6"/>\n
+     <table:table-cell table:style-name="ce12" office:value-type="string">\n
+       <text:p>TOTAL <tal:block tal:replace="line/title"/></text:p>\n
+     </table:table-cell>\n
+     <table:table-cell table:style-name="ce18" office:value-type="float" office:value="1"  tal:attributes="office:value line/initial_budget">\n
+      <text:p>1</text:p>\n
+     </table:table-cell>\n
+     <table:table-cell table:style-name="ce18" office:value-type="float" office:value="2" tal:attributes="office:value line/current_budget">\n
+      <text:p>2</text:p>\n
+     </table:table-cell>\n
+     <table:table-cell table:style-name="ce18" office:value-type="float" office:value="3" tal:attributes="office:value line/engaged_budget">\n
+      <text:p>3</text:p>\n
+     </table:table-cell>\n
+     <table:table-cell table:style-name="ce18" office:value-type="float" office:value="4" tal:attributes="office:value line/consumed_budget">\n
+      <text:p>4</text:p>\n
+     </table:table-cell>\n
+     <table:table-cell table:style-name="ce18" office:value-type="float" office:value="5" tal:attributes="office:value line/available_budget">\n
+      <text:p>5</text:p>\n
+     </table:table-cell>\n
+     <table:table-cell table:style-name="ce23" office:value-type="percentage" office:value="0.06"  tal:attributes="office:value line/consumed_ratio">\n
+      <text:p>6,00%</text:p>\n
+     </table:table-cell>\n
+     <table:table-cell table:style-name="ce27" table:number-columns-repeated="1016"/>\n
+    </table:table-row>\n
+\n
+\n
+    <table:table-row table:style-name="ro5" tal:condition="python: line.get(\'is_total_level_1\') and not line.get(\'is_last_line\')">\n
+     <table:table-cell table:style-name="ce7"/>\n
+     <table:table-cell table:style-name="ce13" office:value-type="string">\n
+       <text:p>TOTAL <tal:block tal:replace="line/title"/></text:p>\n
+     </table:table-cell>\n
+     <table:table-cell table:style-name="ce15" office:value-type="float" office:value="1"  tal:attributes="office:value line/initial_budget">\n
+      <text:p>1</text:p>\n
+     </table:table-cell>\n
+     <table:table-cell table:style-name="ce15" office:value-type="float" office:value="2" tal:attributes="office:value line/current_budget">\n
+      <text:p>2</text:p>\n
+     </table:table-cell>\n
+     <table:table-cell table:style-name="ce15" office:value-type="float" office:value="3" tal:attributes="office:value line/engaged_budget">\n
+      <text:p>3</text:p>\n
+     </table:table-cell>\n
+     <table:table-cell table:style-name="ce15" office:value-type="float" office:value="4" tal:attributes="office:value line/consumed_budget">\n
+      <text:p>4</text:p>\n
+     </table:table-cell>\n
+     <table:table-cell table:style-name="ce15" office:value-type="float" office:value="5" tal:attributes="office:value line/available_budget">\n
+      <text:p>5</text:p>\n
+     </table:table-cell>\n
+     <table:table-cell table:style-name="ce24" office:value-type="percentage" office:value="0.06" tal:attributes="office:value line/consumed_ratio">\n
+      <text:p>6,00%</text:p>\n
+     </table:table-cell>\n
+     <table:table-cell table:style-name="ce26" table:number-columns-repeated="248"/>\n
+     <table:table-cell table:number-columns-repeated="768"/>\n
+    </table:table-row>\n
+\n
+\n
+    <table:table-row table:style-name="ro4" tal:condition="line/is_last_line | nothing">\n
+     <table:table-cell table:style-name="ce7"/>\n
+     <table:table-cell table:style-name="ce13" office:value-type="string">\n
+       <text:p>TOTAL <tal:block tal:replace="line/title"/></text:p>\n
+     </table:table-cell>\n
+     <table:table-cell table:style-name="ce15" office:value-type="float" office:value="1"  tal:attributes="office:value line/initial_budget">\n
+      <text:p>1</text:p>\n
+     </table:table-cell>\n
+     <table:table-cell table:style-name="ce15" office:value-type="float" office:value="2" tal:attributes="office:value line/current_budget">\n
+      <text:p>2</text:p>\n
+     </table:table-cell>\n
+     <table:table-cell table:style-name="ce15" office:value-type="float" office:value="3" tal:attributes="office:value line/engaged_budget">\n
+      <text:p>3</text:p>\n
+     </table:table-cell>\n
+     <table:table-cell table:style-name="ce15" office:value-type="float" office:value="4" tal:attributes="office:value line/consumed_budget">\n
+      <text:p>4</text:p>\n
+     </table:table-cell>\n
+     <table:table-cell table:style-name="ce15" office:value-type="float" office:value="5" tal:attributes="office:value line/available_budget">\n
+      <text:p>5</text:p>\n
+     </table:table-cell>\n
+     <table:table-cell table:style-name="ce24" office:value-type="percentage" office:value="0.06"  tal:attributes="office:value line/consumed_ratio">\n
+      <text:p>6,00%</text:p>\n
+     </table:table-cell>\n
+     <table:table-cell table:style-name="ce26" table:number-columns-repeated="248"/>\n
+     <table:table-cell table:number-columns-repeated="768"/>\n
+    </table:table-row>\n
+\n
+  </tal:block>\n
+   </table:table>\n
+  </office:spreadsheet>\n
+ </office:body>\n
+</office:document-content>\n
+
+
+]]></string> </value>
+        </item>
+        <item>
+            <key> <string>content_type</string> </key>
+            <value> <string>application/vnd.oasis.opendocument.spreadsheet</string> </value>
+        </item>
+        <item>
+            <key> <string>expand</string> </key>
+            <value> <int>0</int> </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>Budget_viewBudgetConsumptionReport</string> </value>
+        </item>
+        <item>
+            <key> <string>ooo_script_name</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>ooo_stylesheet</string> </key>
+            <value> <string>Budget_viewBudgetConsumptionReportTemplate</string> </value>
+        </item>
+        <item>
+            <key> <string>ooo_xml_file_id</string> </key>
+            <value> <string>content.xml</string> </value>
+        </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <string></string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_budget/SkinTemplateItem/portal_skins/erp5_budget/Budget_viewBudgetConsumptionReportDialog.xml b/bt5/erp5_budget/SkinTemplateItem/portal_skins/erp5_budget/Budget_viewBudgetConsumptionReportDialog.xml
new file mode 100644
index 0000000000000000000000000000000000000000..9b6fac2317a1ea1e75e612ceef326846bfc7603d
--- /dev/null
+++ b/bt5/erp5_budget/SkinTemplateItem/portal_skins/erp5_budget/Budget_viewBudgetConsumptionReportDialog.xml
@@ -0,0 +1,151 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <tuple>
+        <global name="ERP5Form" module="Products.ERP5Form.Form"/>
+        <tuple/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_bind_names</string> </key>
+            <value>
+              <object>
+                <klass>
+                  <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
+                </klass>
+                <tuple/>
+                <state>
+                  <dictionary>
+                    <item>
+                        <key> <string>_asgns</string> </key>
+                        <value>
+                          <dictionary/>
+                        </value>
+                    </item>
+                  </dictionary>
+                </state>
+              </object>
+            </value>
+        </item>
+        <item>
+            <key> <string>_objects</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>action</string> </key>
+            <value> <string>Budget_viewBudgetConsumptionReport</string> </value>
+        </item>
+        <item>
+            <key> <string>description</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>edit_order</string> </key>
+            <value>
+              <list/>
+            </value>
+        </item>
+        <item>
+            <key> <string>encoding</string> </key>
+            <value> <string>UTF-8</string> </value>
+        </item>
+        <item>
+            <key> <string>enctype</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>group_list</string> </key>
+            <value>
+              <list>
+                <string>left</string>
+                <string>right</string>
+                <string>center</string>
+                <string>bottom</string>
+                <string>hidden</string>
+              </list>
+            </value>
+        </item>
+        <item>
+            <key> <string>groups</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>bottom</string> </key>
+                    <value>
+                      <list/>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>center</string> </key>
+                    <value>
+                      <list/>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>hidden</string> </key>
+                    <value>
+                      <list/>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>left</string> </key>
+                    <value>
+                      <list>
+                        <string>your_format</string>
+                      </list>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>right</string> </key>
+                    <value>
+                      <list/>
+                    </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>Budget_viewBudgetConsumptionReportDialog</string> </value>
+        </item>
+        <item>
+            <key> <string>method</string> </key>
+            <value> <string>POST</string> </value>
+        </item>
+        <item>
+            <key> <string>name</string> </key>
+            <value> <string>Budget_viewBudgetConsumptionReportDialog</string> </value>
+        </item>
+        <item>
+            <key> <string>pt</string> </key>
+            <value> <string>form_dialog</string> </value>
+        </item>
+        <item>
+            <key> <string>row_length</string> </key>
+            <value> <int>4</int> </value>
+        </item>
+        <item>
+            <key> <string>stored_encoding</string> </key>
+            <value> <string>UTF-8</string> </value>
+        </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <string>Budget Consumption</string> </value>
+        </item>
+        <item>
+            <key> <string>unicode_mode</string> </key>
+            <value> <int>0</int> </value>
+        </item>
+        <item>
+            <key> <string>update_action</string> </key>
+            <value> <string></string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_budget/SkinTemplateItem/portal_skins/erp5_budget/Budget_viewBudgetConsumptionReportDialog/your_format.xml b/bt5/erp5_budget/SkinTemplateItem/portal_skins/erp5_budget/Budget_viewBudgetConsumptionReportDialog/your_format.xml
new file mode 100644
index 0000000000000000000000000000000000000000..be5e86c88649aa13283f3a9c3f57b3f2aa3130e8
--- /dev/null
+++ b/bt5/erp5_budget/SkinTemplateItem/portal_skins/erp5_budget/Budget_viewBudgetConsumptionReportDialog/your_format.xml
@@ -0,0 +1,132 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <tuple>
+        <global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
+        <tuple/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>delegated_list</string> </key>
+            <value>
+              <list>
+                <string>default</string>
+                <string>items</string>
+              </list>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>your_format</string> </value>
+        </item>
+        <item>
+            <key> <string>message_values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>external_validator_failed</string> </key>
+                    <value> <string>The input failed the external validator.</string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>overrides</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>tales</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>default</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>items</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>default</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string>your_format</string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string>Base_viewDialogFieldLibrary</string> </value>
+                </item>
+                <item>
+                    <key> <string>items</string> </key>
+                    <value>
+                      <list/>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string>Click to edit the target</string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <tuple>
+        <global name="TALESMethod" module="Products.Formulator.TALESField"/>
+        <tuple/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_text</string> </key>
+            <value> <string>python: context.Base_getConversionFormatItemList(base_content_type=\'application/vnd.oasis.opendocument.spreadsheet\')</string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_budget/SkinTemplateItem/portal_skins/erp5_budget/Budget_viewBudgetConsumptionReportTemplate.xml b/bt5/erp5_budget/SkinTemplateItem/portal_skins/erp5_budget/Budget_viewBudgetConsumptionReportTemplate.xml
new file mode 100644
index 0000000000000000000000000000000000000000..421025ed7f507552d49036a8d32329aba5c846c4
--- /dev/null
+++ b/bt5/erp5_budget/SkinTemplateItem/portal_skins/erp5_budget/Budget_viewBudgetConsumptionReportTemplate.xml
@@ -0,0 +1,298 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <tuple>
+        <global name="File" module="OFS.Image"/>
+        <tuple/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_EtagSupport__etag</string> </key>
+            <value> <string>ts36700066.65</string> </value>
+        </item>
+        <item>
+            <key> <string>__name__</string> </key>
+            <value> <string>Budget_viewBudgetConsumptionReportTemplate</string> </value>
+        </item>
+        <item>
+            <key> <string>content_type</string> </key>
+            <value> <string>application/vnd.oasis.opendocument.spreadsheet</string> </value>
+        </item>
+        <item>
+            <key> <string>data</string> </key>
+            <value> <string encoding="base64">UEsDBBQAAAAAAIR9ajqFbDmKLgAAAC4AAAAIAAAAbWltZXR5cGVhcHBsaWNhdGlvbi92bmQub2Fz
+aXMub3BlbmRvY3VtZW50LnNwcmVhZHNoZWV0UEsDBBQACAAIAIR9ajoAAAAAAAAAAAAAAAALAAAA
+Y29udGVudC54bWztXN1y27gVvs9TcLS7vSpFkfqxpVre2U67084kbWeSdnrXgUiIQpckOABo2X2j
+PEderAD4Y5ICJUIkJTlJLmyTOAf4cM7Bh3MgKA8/P4eB8QQJRThaj+zxZGTAyMUeivz16J+ffjXv
+Rz8/vnv3gLdb5MKVh90khBEzXRwx/tvg6hFdpa3rUUKiFQYU0VUEQkhXzF3hGEa51qosvZKDpW8o
+ewlaq0vhsjaDz6ytspCt6IJN+5GlcFnbI2DfVlnIcquW1be4rfIzDcwt5lYPY8BQDcVzgKLf1qMd
+Y/HKsvb7/Xg/HWPiW/ZyubRkawHYLeTihARSynMtGEAxGLXssW3lsiFkoC0+IVuGFCXhBpLWpgEM
+HHg1JpByET5dEZntOirrVOLryW8dXU9+g5ndHSCt40wKV0Nl6rUPlalX1g0B2zX49976wBvljw/v
+X+OKhG3HErIVU7kExa2nmUqX9THGBVShkC52CdeZTGZW+lyS3h8V3xPEICmJu0fFXRC4hcVxqDIa
+l7MtLmHCJxHyxSIShqANCo6VNhfC1Gvs+t8f3n90dzAEr8LotLCJIspA9GoZIpzQONO5RWCMCSsM
+s21PvtxbTjGKtwXFMFySjmUPplCUY5V7sMQqt4TKD0WkIRjkYV2AzMaHzzEkSCiCgHtOmBx7Wz5R
+7lAcr0odVDmRhM+deiwCOtMt7W7O6PGdke9laexSq/Rqy3c1cwtcaHrQDShvMR5SYipajPRZAFqP
+/gT/C/6VGB9BxEODM0cuFqLgZT36HYgx/UNJJn0xMipdClnThxGfGY9tukeUViRixFy++p8AQWL7
+GVknUb1HnHslBx5HVpO7ELqSPey+jPZCGQw74voEdlgs2gNERUNnAA9WY5zlEQgSxgdjyDVlX+UQ
+lD8rkF1sF2NmYGWKwjewIAkjEeyFdrnBjPlygYQhSI0tXm0IBL+ZG8hXDu9UIMh7zcT3yBMb0GS8
+uFu4YWZLq4TqBErnkiiX48Vseg7K6SVROuPlORhnl8XoLO70UZKmqCR4r4DI35bxpU3i5Q4if8dk
+2Dk2h3EcekIh37UYCkFglrUZSaD+DBoi9uwZzObOhWfQEM1nz2DZwQdbENAzptAQ7GdPYe4sLj2F
+ed9xtFxedgoMqBdz/jLkhRskZgx8aOb7+xYkAVPMrzS3tJL2EI0D8JKFeNajyPh5nWyG2OO9BcRk
+mybQaZWZFZvmIfi/TTMUFUEje+Jbr7QRh+BCnvnzjDFrCVEkk0qf9+ohHzHeahetPsFJLM9HyitT
+gaWMkU/cFXkrN5MCp23rAHVOALUqfYkTj8efCoDysYy4juz4DgSbMg4YBHlLDIg4IpIPJ4NCKB5G
+vUBpggD5kUlxQsTZ0hY95wPw2geC4gwqj+ys8Ul0xOvAVH09CpHn5QlgPjRHCHwC4l1tZ3wdVkxV
+lBVVPdleVZGpHEX/4wjtWcxGxbt9tuw2OPAqmaEQNnmVBaJcpdSYauXNal1xPBHA52btQkDq6yYZ
+sCldO8PFR+215Oi1wTVlaTcQf3x2ex5UknxFvSkeUq7GxBOnYZPxZMLzAIPiAHnGDxP5b6C4Fa9D
+QHzOEAHcis0jz+ROOacSuNr+acpQ+/JPYU5zgxkTRzwNVn0VzOZ/Soyk045wBMuvGY6zlzpUYJep
+QGqsR4hxF7m6DGHX1niNAuxzFlFDWvLGnaRW1jbO4lszTltCiDDhaciR7apZoIjXTETbKXffnVLj
+mRacom3l+69uc31r2+fyVuO8Hr8kL0lPaN9knNuTWzFz2omHgI8jnvttApOR3Ni1NsabyaEjhnWP
+llWHrg2/Gqu2SyLvVZlfttUq24pd9v6cpNDuse77xt13nLMUaVJq0My3uZ5OnpV2UARAcxedMzF7
+6Ar8e5h02tp6LMAHyXDsbsVn7lnAQKW9OOttFVo36LduZecFzKI1m2712i04+SpbcLcC7BbM9lVv
+fUNXZyXbXvfwmW9tb650di5W1N3e7uF0K70aiaP4YPKy24fTrRS5xHRucv9wuuXmN2G3r3kDcbol
+57fgn448NfQnT33voG9uE+zx06uLbmA9fsBz5Y+xilu+iru8+TXfDfZepG5+Fz0mEHh0ByFLp5Je
+kJI/s8tS6YR/hQkKAnELJ31bNoa8q5W+jgniqAmIfHFhKFca/2Kvir//kpNG6fY7CYW5SFiCvsVu
+QktrRDTGcfBiepCK9ZVe0yrdLauCz26gKtDKy8vZPbDUi+lirshAR7dT52SnecxodjzNO86ueKWi
+1EzZBHrr0WKooWcnh7YndrfRCd4rhhZXeVPhGlbetQqpiMv8WxcgSKDJXmL+njIejn7DJGgMokjM
+4b4mwCGVWgsgHIn4Dl/8+BGxJP32wh8Tz//ymQFE4IOVtWaorTrs6nRczCsf6Jmv7dYpAfW8Z6O2
+io0+nNe7aK8q3Z+71ar5VcPbjo63a+F0Dmqerw6LujkY69H0jy+fCeJcZniJ8SNlgLD/8DwLGkA+
+4lg+aUbXTZniNIJZHwimeoQx7UAYjiZh/Dl6ggGOY0g7s4RyLvcnl0JdXiM+BcdBZvw1QgyBoGsg
+dgfi8rwaROz6QGDkA87+1wfC6wmKw/AWoIiL9TgSX2DuF4s4ANWgVFl6yavlBvnymZcLVO7X/WIS
+JeUJbnNmp5dmo/Ld4r4PXpzp8eJMx9A/BpAzm92vXZeabGaf9sPpDKfm2omuwuJNxMJcLxZ0zWZP
+9IPHcHpmioUSwzbAgFVbVDt1z6GsA8Y5AHNFy0wPwEyvB2Z2AGZ2PTDzAzDznrcVdSn7+m2pOqLJ
+eLI4ALX4/WTy04BVQz9l39B8dPRUoG6y9Dc15C9XrAEr56i+g//uljhKA8zwHKUBZniO0gAzPEdp
+gBmeo5zvHNVgmoUuR6lN2cBRn/7+6Zf3xkCZk7rguxIraYAZnpU0wAzPShpghmclDTDDs5L6TO8a
+rFQDdtfuc5TLs9WdLlsdPTY9ylZ9E8T8lthKA8zwbKUBZni20gAzPFtpgBmerdQnbTfAVm/jLEvz
+XPMyTAcoMwIU9X36XZxwimsQSQDWI7xdrdXV7fUYUAFRndxejxcVENV+vh5bKiCqmeJ6HKqAeGvM
+qoAo+fM75Sopt/I2fVN6oboI5rS5CJbfz1LQeptbR71eKGq+odCzZabfqmWK+4fVS4XF6/TuYfFY
+/y/dH/8PUEsHCFN+0qhVCQAAFF4AAFBLAwQUAAgACACEfWo6AAAAAAAAAAAAAAAACgAAAHN0eWxl
+cy54bWztXeuOozgW/t9PEdHa0Yy0FJALVclUqrTSqDQrTa9avbPz3wVOwg5gZExd+uc+zz7VPsna
+BhwIlyLBJKa6e6TpDj62z+U7x+dgwLf3L4E/eYI49lC41qwrU5vA0EGuF27X2r9+f9BvtPu7Dx9u
+0WbjOXDlIicJYEj0mLz6MJ7Q3mG8ShvXWoLDFQKxF69CEMB4RZwVimCYd1oVqVd8rvQKH6xrd05c
+7E3gC+namdGW+oLH7jNz4mJvF4Pnrp0ZLVVqsfsGde38Evv6BukOCiJAvAMuXnwv/HOt7QiJVobx
+/Px89Ty7QnhrWMvl0uCtgmFH0EUJ9jmV6xjQh2yy2LCuLCOnDSABXfljtEWWwiR4hLizagABFatG
+GMaUhIrLgNltoGKfEr6etp3R9bRtULOzA7gzzjhxGSoztztUZm6xbwDIrsG+N8Yn2sj/9+m3Pa5w
+0HUuRltSlYO9qLOYKXWxP0JIsMo6pM7O2Z2a5txIfxeon1vJn7FHIC6QO63kDvAdoXEU1CmN0lkG
+pdDhE4N8To2Z0I0jLwwMI4SJYGTTPdhR7UzFLO4GiGkoZXzFR9BZRz5XcQSDeZXBunzUJlnQLETq
+qXb3YZLH5Q2iMXkDHKi70PFj2jK5TV1KtEzS34zZtfYL/Df4I5n8E4RUAxTzOVng+a9r7QcQofjn
+Ak16QZuUhmS0+haGEHvUKvGzF8clisgjDsXtE8AeC5ya8SZXv3k0anDvbefsgO5M3BX0YclS2mtM
+YNCTr9/BDgWghiPR0JuBW6MRZzkC04SgwKwLNyDxs0whnyDjjK+kugN9n4FYdNlf1iNMXQETj+YY
++XCOFwDa4NPZ47U2TTWTd40ABlsMol21Jx2VMoEi3fViAkKWqFDvWThBeQSWGlQ7c4FrfGaDVj4I
+twnY0pYN5hcclIQEU/EevmiH3XXq5yCsgIgT5QPlNF9fXvKmbMi8JUQhrA7N1isfvhwaXAwr2msG
+Fm186BRsRo0BeUO6rGere8mwqYb+YWbmLBFOsl+BF+peSOCW9nW9rUeoFa18ypqhi1M6CcY0L32t
+m9Qybz6buVxPyKeBgeV0BCewjZ0qoNoZzVu3GCURT4/5DEZpCgaiu704/GexfS/Ha/CI/HzMMpRy
+2gKc7v73n/+KUQ8GKSmwrKgjVKi1+QIHt49oRvdxszHpnzqx9Wax37Hmc5UFIBKuFbpemrY+AT+B
+P/70w5b8vBYQBVHkZ1bQSxA2pFjS/u4MvVX43Rku6gz2Ec5APLoC1lpxWQY8VWdCqPmyn9k9Bx+F
+2zrlrZqVF0MmVPNA+56CtU4MW6bQOTVp6AACdRTqiOb8G5/VSRvgxwdevEMJjo9jX309WOc3XJM3
+HuYn9aI0J0SWNS0LEzseLe08mjLr7XHAao0Ds1IrfIlo9kbTwWPTqjbG5zLWEVNeNCuGnty0/QTU
+JIbtgQWVE1i5TfsjY/HekbG44Po/DiAtpADpWrFUVTqQrmWGmIEFlYSMaynIUK2il46Md1JvDwik
+akV8gp6nU8XWqsmkWpb1FNDqIqAyi9IACph2VsBEP21+7p/1s1dn0SncCdu/6VaSd3OWVl/hKDc6
+D+e/PZzVfbh2N+bmOaihhDK7mljKLS25iZVkENsj8+IhNHCUG5/GQLMf20r4sS3Xj22Jfmz39+OZ
+qVhWJ3stogKewY3VVsAxXjxMIKtNliWv+zNThXjBHUpevODwlRQvOBL6xgsptyDlVjuS/WU+soAx
+hAZUjRiSU4xZzf3mC4SMudyQMZcYMuYdQ0br5u1MtWJhgF3YhyF3v2c1qbASNce5FSnnPtbsmM3s
+dsOodlN0dMi+UXRVHSmypT2zNFt+j9k9Ffg+dixH6ghLWY4wV+0OydgcYW6+j321cTrC3JTmCFL2
+7boaJO+HIe/JXr5Za7qussH6K3gEjjJCu0hypOkRjpT+VW/l2THuMnvDLL134+eqPTn2UIFHP/EU
+rZyrYkqCqZTHwOaq3bGRjIpLvk0wBhBVb5CcomXVbo5IBpGqty4GQ4WUx7/mUm4sqIuKS5b9YwBR
+tTA/QcsLqxuI3ko4zxapZe/qUwWM6+mkARRwwWcMF5YKG4fcC+RtHHJMSdo45Obp+azBomNpooyT
+P0iG+GJkPi5f/qNc/JTpmz28pnC8gIcv5Hr4QqKHLyR4eMe3jfp5uMIP51EFjOthowEUoOqzRpIz
+hpr3zi4QT67lxpNrifHkun88sc9SFsissuR6k32WqkBp+VWNJlKTE1uJ8sOWW37YEssPW0L5Yc+O
+CCZ/YODJhfLsCFceYPaaWR5A8jIQkmZykTT7LGFnzD6m/PybQ7yNXBMcU/0NMX3NNH8PQe1EckAg
+t9axF1JAYF9ow0tynm2fpdJS+H6hfZZKS20FqJobya20bCUqLVtupWVLrLTsrpWWyz53VqPiBfsc
+X/eHc4oqd8FrTsOHbP5oWAsCA2rM3aTQmgC/2ZNaBnqFAJcVsRe5oyKuVVbE6WLdnCjW2U3T9Mm6
+BfvY4GkyDP4Bv5b1FQR6FPT5VN+i+M1CxeTu8eFC+QpsBr9lDe7TRkefPn0Y5j/9tckh0d+6b8Hk
+DR9vzmqosZqr9NOMeMYET2Z+xzRxosQKpbzDPHSSoaRvMbho+wDntwa2+bESpwPwRHOMj1oOiE0Z
+XwClwzQ/sjsENqXuKUrG5qnFiTLbIgOCTcaTvYu2z4R+a2A7ugC8RCAcBzZlfKeUDtP8gLHii7Tk
+L5oyVYw9JRzsY6YZTvrDbdr8fvC3Brfp0XceRp4UDojOafW93ZNM0vzSruILtXx0TseeFg4Jt+rb
+rSfp+Lx3Y5SG29G3Y0aeGA6Jzg63b9LuVVP8kh6ZJ47oqx53aLT2/wLj9u5ZSwSwOIRZL0/9hnn5
+qYHZPVGPAN9z8jE5cRK6EPteCHOaGPme20Dy7LnsYFqQENRAkYGJT8r/rQkenqG33ZG19oh8N1d3
+QS0d1DQ9SU9lFbOjhw92LM2bN4z0KwTseGx5Vmo59ZLrk1ppG+oxSjA7u3LjiUMcMYwgEPvN+QFR
+pZ3b2nMxqQ32A681h3aGuNyvETreV8qDZUdEa4KTDAtnOrZOUnJuoK5Kxig9MlqnoZMJsjTr2RWn
+oPILxcNPmQsEdAxHF017A2yh7oNXlJCShJ+iwNLKlhKEB4rnLZmzTZdX106gicu7TMlT68o0LUcc
+5UpDls7OdgaER9ZsCkyDro6wtz9Ymy4XbuyACPIhA4C3NDQTFNFe2TTZtUdECDtR+eCyDzeEn6d6
+Xb6OU7YKHMU74LJTzNIzTCnlI3D+ZKE+dPM4QTAI49SgopcDqN0IokOZ5l9EmMmsyXDLF4odFeor
+BR0QuGAnR9MmPUAu2/7BOnlM1Z3ruzA9XaW2MIO/0WaNor12FGXFReGwYYMQ5e7AlGzhy01mXllm
+rTbNWlWa9fYw9+fYGg2MidODOUOXYpiDqsrtIVc1BujmTdMu3tSMDUOyba8XEmybHlPMnQVhOjG7
+ZN7cOMGEr8uTjyb/k4UD1+W+QEmsm7xbxcc+Oib7L/OFdmc4hFRF7HPhro8yU9yNSpPdfEIsRzWr
+T74wBSAWIxVXpew6G7AtgS16UcOylQqUp1NeTJP919JRlZNblkusorv073gHYTrY3f39/a1xeDG7
+EtVAq8ZDGQ7q5zaqECyz85nJnv1gYqZJ/p2VM1C4VstTYcwy0N/gKe9fMEEHw3yBEcLtdpnW2KXk
+bxhuWZbD+Msxe5RpJj+mdMQjfpEk/f1TSUtCzMqkZWa4z9Zywx7PaMzSae4viHRe29EUyDSXujnT
+LeqSlmmYM4NdybhihHd/neQCUGksezWfr8wbIcQh+A5F2LOqCCwnRpGQ1/h3y2WRML12BviKWHQQ
+cMR1FzlJIBL1+O7/UEsHCKXscfdiCwAAeYgAAFBLAwQUAAAAAACEfWo6NB/gTn8EAAB/BAAACAAA
+AG1ldGEueG1sPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KCjxvZmZpY2U6
+ZG9jdW1lbnQtbWV0YSB4bWxuczpvZmZpY2U9InVybjpvYXNpczpuYW1lczp0YzpvcGVuZG9jdW1l
+bnQ6eG1sbnM6b2ZmaWNlOjEuMCIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkv
+eGxpbmsiIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6
+bWV0YT0idXJuOm9hc2lzOm5hbWVzOnRjOm9wZW5kb2N1bWVudDp4bWxuczptZXRhOjEuMCIgeG1s
+bnM6b29vPSJodHRwOi8vb3Blbm9mZmljZS5vcmcvMjAwNC9vZmZpY2UiIG9mZmljZTp2ZXJzaW9u
+PSIxLjIiPgogPG9mZmljZTptZXRhPgogIAogIAogIAogIDxtZXRhOmdlbmVyYXRvcj5PcGVuT2Zm
+aWNlLm9yZy8zLjAkVW5peCBPcGVuT2ZmaWNlLm9yZ19wcm9qZWN0LzMwMG05JEJ1aWxkLTkzNTg8
+L21ldGE6Z2VuZXJhdG9yPgogIAogIAogIAogIDxtZXRhOmNyZWF0aW9uLWRhdGU+MjAwOS0wMS0y
+M1QxMjowNDozMjwvbWV0YTpjcmVhdGlvbi1kYXRlPgogIAogIAogIAogIDxkYzpkYXRlPjIwMDkt
+MDMtMTBUMTY6NDQ6MDg8L2RjOmRhdGU+CiAgCiAgCiAgCiAgPGRjOmxhbmd1YWdlPmZyLUZSPC9k
+YzpsYW5ndWFnZT4KICAKICAKICAKICA8bWV0YTplZGl0aW5nLWN5Y2xlcz4xMTwvbWV0YTplZGl0
+aW5nLWN5Y2xlcz4KICAKICAKICAKICA8bWV0YTplZGl0aW5nLWR1cmF0aW9uPlBUMTBIMzNNMTBT
+PC9tZXRhOmVkaXRpbmctZHVyYXRpb24+CiAgCiAgCiAgCiAgPGRjOmNyZWF0b3I+SsOpcm9tZSBQ
+ZXJyaW48L2RjOmNyZWF0b3I+CiAgCiAgCiAgCiAgCiAgCiAgCiAgCiAgCiAgCiAgCiAgCiAgCiAg
+CiAgCiAgCiAgPG1ldGE6ZG9jdW1lbnQtc3RhdGlzdGljIG1ldGE6dGFibGUtY291bnQ9IjMiIG1l
+dGE6Y2VsbC1jb3VudD0iNDUiIG1ldGE6b2JqZWN0LWNvdW50PSIwIi8+CiAgPG1ldGE6dXNlci1k
+ZWZpbmVkIG1ldGE6bmFtZT0iSW5mbyAxIi8+CiAgPG1ldGE6dXNlci1kZWZpbmVkIG1ldGE6bmFt
+ZT0iSW5mbyAyIi8+CiAgPG1ldGE6dXNlci1kZWZpbmVkIG1ldGE6bmFtZT0iSW5mbyAzIi8+CiAg
+PG1ldGE6dXNlci1kZWZpbmVkIG1ldGE6bmFtZT0iSW5mbyA0Ii8+PC9vZmZpY2U6bWV0YT4KPC9v
+ZmZpY2U6ZG9jdW1lbnQtbWV0YT5QSwMEFAAIAAgAhH1qOgAAAAAAAAAAAAAAABgAAABUaHVtYm5h
+aWxzL3RodW1ibmFpbC5wbmftlmc4G+67x6PVUlW05l+NqqpRxK9WUaM1onYlSm1tbbFq746IWbX3
+biViFjFrVIqqGrVCQ9QmZoIgRP7Odd6dc96dV+e6zvPm+7x5rntc9/P53rEmRqBrTLxMAADg2hNd
+LdNznQIA6ACMl89vv5WbbwIA7BZPtB5BgvK2Zv8x4HPG9xGd76iMLizwSdr53GpX6/+k2/DA6/pH
+X5hPsq63Nt9HML1+ZuoUx5dbHd23RC6ZLN3xTv6+Zkr/aelO6oKkbrWMrhEdRyy9NP67mHSd7qou
+/t6Lf4loJ6RxDKt0MgyH8HDBg45x04OHws+jZ7MdAqYFhzd/RdKG1XbaL9q/nCvF0xUVXJfpYqO7
+yPy/F5PlKOrSaVcLXeB8/tXfmnjBouq0i5MUv4qdtTXvjbmqtpmXSor375v6wLrtrkaQ3vXzv+P2
+wgClpbclstpsyBEDW0431Zt+GR3SUvrqbk6ofQChoQ+bfbt4WRWir7uTU5/P7b1IGpBfsh7WVz07
+qu8rJdOgh/lAPwL3chxNvPU4cvikfL281tbOqxC3e9OTUuoauP/jaRORqtNsM/DLLjvQs3MsIK+x
+FIembtatc2tQNg6sNtTwouaUsqW7+Pxdas0hiClocV4HOzPOR3be6s1x93I/rDJGR4d/6Axoj1yX
+2tkr7mOFOS6o80T8/RUVj61qFtx7vUdp8VyEJ9YmHrEOrTQubsk1ybWVqctBg/nm/3GajKXtNqME
+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
+787lM7ODX1Vop8QTNJ7ZmPl+F87F+lewTT7QoiCgcdXD5dxw3rmETtntuJ6FjPjF/gC/RClrlRNN
+8NHLYpxcSbkziLjxYs0EXXVjyaLjD+K6P6paQskvCHELSSrZeGUeNN/36JrU3LgMqNTohEj2tgqJ
+FJn+cCHbmhl75vIq4SI3Z6cEimrdo8dmL+pv1l9MO+gwEHpG53W6V8oOLNjlDfYz1Vw25Z3V+5yy
+QXmdqdMlJZw1iRV847ee3jFZjGCRR++4CWdW0ZeTlbSoqAo9lvBPdxpc9Ms5APkG041enCilUZvo
+9rkZc1iTKZrR5Mlgfhki5SL608oFnWYTfTc0hAl55UQs9cLmOF7otokmI499TBRd9P/L/205E3S2
+LmFkCzQnAc7PE20jrerH9m//DVBLBwjpq6tHmREAAJETAABQSwMEFAAIAAgAhH1qOgAAAAAAAAAA
+AAAAACcAAABDb25maWd1cmF0aW9uczIvYWNjZWxlcmF0b3IvY3VycmVudC54bWwDAFBLBwgAAAAA
+AgAAAAAAAABQSwMEFAAAAAAAhH1qOgAAAAAAAAAAAAAAABwAAABDb25maWd1cmF0aW9uczIvcHJv
+Z3Jlc3NiYXIvUEsDBBQAAAAAAIR9ajoAAAAAAAAAAAAAAAAYAAAAQ29uZmlndXJhdGlvbnMyL2Zs
+b2F0ZXIvUEsDBBQAAAAAAIR9ajoAAAAAAAAAAAAAAAAaAAAAQ29uZmlndXJhdGlvbnMyL3BvcHVw
+bWVudS9QSwMEFAAAAAAAhH1qOgAAAAAAAAAAAAAAABgAAABDb25maWd1cmF0aW9uczIvbWVudWJh
+ci9QSwMEFAAAAAAAhH1qOgAAAAAAAAAAAAAAABgAAABDb25maWd1cmF0aW9uczIvdG9vbGJhci9Q
+SwMEFAAAAAAAhH1qOgAAAAAAAAAAAAAAAB8AAABDb25maWd1cmF0aW9uczIvaW1hZ2VzL0JpdG1h
+cHMvUEsDBBQAAAAAAIR9ajoAAAAAAAAAAAAAAAAaAAAAQ29uZmlndXJhdGlvbnMyL3N0YXR1c2Jh
+ci9QSwMEFAAIAAgAhH1qOgAAAAAAAAAAAAAAAAwAAABzZXR0aW5ncy54bWzNWt93ojoQft+/wsPr
+PV0Rt71XT3UPat3+sq2gVnkLkGrWkHCSINq//gbR3i4VixU81xePJJlvZjKTbyZ4+XPp4dICMo4o
+aSiV76pSgsShLiLThjIcdM/+UX42v327pC8vyIF1lzqBB4k441AIOYeX5HrC6/FwQwkYqVPAEa8T
+4EFeF06d+pBsl9Xfz66v0eInS4zIvKHMhPDr5XIYht/D6nfKpuVKrVYrr0e3Ux1KXtA0K1Q8+z0U
+pfQNKFoQK7MG01T1Rzn+rZQ2Sr7zjaY0v5W2ntg6QD4qXW5Q4q8zJKAXOai0eRzp11Akbn2BYPjm
+ukjazrV/rhshjmwMdQbBgPrKdlCsfDmIiFCa6mX5o5CDhd/DF1Gc9Gfkitku8drfF5UfuUBcQzSd
+7TThvKZph0CcecA/Q8SFS+gm4WC42bjUhTL42CqekkV/GN64CaW5YDJAlGY0WElVPF2DSHRC8QGQ
+Xtpq/onuf67swgBhDCtvaz83qh0wTtkT5UjI1Bnv2pL0Lf8CwmRnYJ0fB3FNGXqlRABs+hiJHnVh
+cptmlO1NkGwRAJlATtEoCWu2njss4Q+3p0Ac3RFoAdcoBiDTFLel530mkK3+hx+OB4k30k6unOQf
+TBwHSW9RIahXAIBFqTeQ0grJiEj4COAgKX2teEU91jdgCqPjey/KxZEg5oyGvxhK0odNKYaAKE3B
+ArgPYdfYRwpLm7Rmmaw8F2frmoVSyG7LM4fxXeop5zCKsQ3YnsJjn/cLjM0iI/MEcZkpKiOYlqzJ
+5k8MRkVvWoS+AMz3hWgmMAsyuraFfzERMqE8UFEswBGZ/Kn8SHabYsoSAJhGqVfRLqqadn6R264X
+5qdrwKUZgUcMGl5D4MrmrEAocwahkGdWYRg3/DEQsrmF5sqzKeYmTFYBOUKZBPgDagAuYDIM8svH
+WPwN3/RlBeMYkMtoSG0y5Fl51EmWBNnZZ+QDYga2ixaIp5qSK8RuQ44LrxhEXyJurogzY5SgV/jF
+Ay1DYZI6ZdO3r+9lds3hUBx0ZxM/CBiIIuDQy5sc6KlgciqWmoomplPQ0qcY94jMh74LBExv36tf
+F58X5xXPeCfju5Ow3Wm47gRMdwKeK5zlCue40zLc5/1yIGgbYCfA8lgpBuJJ9t3Sngf5I6Ulf1y/
+6riFolapHrH3GyCZ7EHyGsoGHF78aCEC2EppWtPrv8pqzbM8/Nsa+tjtzJe9V/1/++lXRv3hq/9k
+eZY/0UZ31rh/3hv0wh1Tn3W9p7P/fnf1rjWU33O7r+umV0PGr646MfVlm7RW4PlctcY3tYFmeeD5
+AZveSH0cXL32dH/heBjbxJi5v/DC/l3p29Vb1fG6vqv7v+1qy7fGvVqv74vJ+JZIOfPJs19xqoaw
+pMyngc577TC87+h3E63G5dq5NW6poKOuHnQ/dLQldr0Rl/PejUe2DWsSuz+8Mjq2Fuk2u5qMjVl7
+jgPneqQOteXC7fhDqcd5r9/qT55dPNTwhTXwe9bYiGyRpjYaR6SD7+PVkEPWAQLklQ7pr3m6lNnI
+dSFpzwADjogoN8eXPveATAPw8cp6k3Yv7JhKvE2DSJe0WzbjGNkjwBAgSc7eyC5nldKCU0Rk0ZRi
+f2Y5V8T9VEpOnUQGt28jpU09n0EeUdBX7gcz8NAdZETnciOeAuKIAOx4wZJX8WGCBRzFb8AfSRtT
+XlSVE9fPXUa9AfT8faR3JJCOsewIIka6pXYbEAfigroCClxDluuU4GQy5mXLDe9s/u1gyuhLL0X2
+wuxpki/LH/7s8Pbowz9Bmv8CUEsHCBxeDTM+BQAATCIAAFBLAwQUAAgACACEfWo6AAAAAAAAAAAA
+AAAAFQAAAE1FVEEtSU5GL21hbmlmZXN0LnhtbLWVTW7CMBCF95wi8j5xy6qKCJVaqSegBxicSbDk
+P3nGCG7fBBVIWxYFxTvbGn/vje0Zr14P1hR7jKS9a8Rz9SQKdMq32vWN+Nx8lC/idb1YWXC6Q+L6
+PCiGfY4u00ak6GoPpKl2YJFqVrUP6FqvkkXH9c/4elRaL4oruNMGyyEwHourGLYaSj4GbASEYLQC
+HnzKvWurk1Y1lagoRISWdogsrpBJcsvJcpeMKQPwrhFSyLusMB5YDvncpinveHQzBszJJT4apNmx
+FhkegN6GbXbJbh1oQ5LPwyq4fm74LLx37zrdp3h6U7SUoBQaHKY+SpVifOwS79fKIhCi7yMSbSGT
+QGc8MOZy70MKQ02nPPiRnO1g2HuTDa4t9EjyTbOFkKkOvjWysImB0yOP8nf7p+TG4qySrtRU4382
+5m3MyDx8l5fWvJJ/fsv1F1BLBwhE1YD/SgEAAGgHAABQSwECFAAUAAAAAACEfWo6hWw5ii4AAAAu
+AAAACAAAAAAAAAAAAAAAAAAAAAAAbWltZXR5cGVQSwECFAAUAAgACACEfWo6U37SqFUJAAAUXgAA
+CwAAAAAAAAAAAAAAAABUAAAAY29udGVudC54bWxQSwECFAAUAAgACACEfWo6pexx92ILAAB5iAAA
+CgAAAAAAAAAAAAAAAADiCQAAc3R5bGVzLnhtbFBLAQIUABQAAAAAAIR9ajo0H+BOfwQAAH8EAAAI
+AAAAAAAAAAAAAAAAAHwVAABtZXRhLnhtbFBLAQIUABQACAAIAIR9ajrpq6tHmREAAJETAAAYAAAA
+AAAAAAAAAAAAACEaAABUaHVtYm5haWxzL3RodW1ibmFpbC5wbmdQSwECFAAUAAgACACEfWo6AAAA
+AAIAAAAAAAAAJwAAAAAAAAAAAAAAAAAALAAAQ29uZmlndXJhdGlvbnMyL2FjY2VsZXJhdG9yL2N1
+cnJlbnQueG1sUEsBAhQAFAAAAAAAhH1qOgAAAAAAAAAAAAAAABwAAAAAAAAAAAAAAAAAVywAAENv
+bmZpZ3VyYXRpb25zMi9wcm9ncmVzc2Jhci9QSwECFAAUAAAAAACEfWo6AAAAAAAAAAAAAAAAGAAA
+AAAAAAAAAAAAAACRLAAAQ29uZmlndXJhdGlvbnMyL2Zsb2F0ZXIvUEsBAhQAFAAAAAAAhH1qOgAA
+AAAAAAAAAAAAABoAAAAAAAAAAAAAAAAAxywAAENvbmZpZ3VyYXRpb25zMi9wb3B1cG1lbnUvUEsB
+AhQAFAAAAAAAhH1qOgAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAA/ywAAENvbmZpZ3VyYXRpb25z
+Mi9tZW51YmFyL1BLAQIUABQAAAAAAIR9ajoAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAADUtAABD
+b25maWd1cmF0aW9uczIvdG9vbGJhci9QSwECFAAUAAAAAACEfWo6AAAAAAAAAAAAAAAAHwAAAAAA
+AAAAAAAAAABrLQAAQ29uZmlndXJhdGlvbnMyL2ltYWdlcy9CaXRtYXBzL1BLAQIUABQAAAAAAIR9
+ajoAAAAAAAAAAAAAAAAaAAAAAAAAAAAAAAAAAKgtAABDb25maWd1cmF0aW9uczIvc3RhdHVzYmFy
+L1BLAQIUABQACAAIAIR9ajocXg0zPgUAAEwiAAAMAAAAAAAAAAAAAAAAAOAtAABzZXR0aW5ncy54
+bWxQSwECFAAUAAgACACEfWo6RNWA/0oBAABoBwAAFQAAAAAAAAAAAAAAAABYMwAATUVUQS1JTkYv
+bWFuaWZlc3QueG1sUEsFBgAAAAAPAA8A7gMAAOU0AAAAAA==</string> </value>
+        </item>
+        <item>
+            <key> <string>precondition</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>size</string> </key>
+            <value> <int>14569</int> </value>
+        </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <string></string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_budget/bt/revision b/bt5/erp5_budget/bt/revision
index fba8ce006f0094e3ae686eaad14c468913979de9..0e4c1b3f9084417d02e8328b44ec4bae13645964 100644
--- a/bt5/erp5_budget/bt/revision
+++ b/bt5/erp5_budget/bt/revision
@@ -1 +1 @@
-224
\ No newline at end of file
+226
\ No newline at end of file
diff --git a/bt5/erp5_budget/bt/template_action_path_list b/bt5/erp5_budget/bt/template_action_path_list
index 222718f33f7677636bb22366cb6075c4785e8231..924fc11a2207b4d8077bf62ff07d1c3eb8d4ab9f 100644
--- a/bt5/erp5_budget/bt/template_action_path_list
+++ b/bt5/erp5_budget/bt/template_action_path_list
@@ -6,11 +6,15 @@ Budget Line | engaged_view
 Budget Line | initial_view
 Budget Model Module | view
 Budget Model | view
+Budget Module | budget_group_consumption_export
+Budget Module | budget_group_consumption_report
 Budget Module | view
 Budget Transaction Module | view
 Budget Transaction | view
 Budget Transfer Line | view
 Budget Transfer | view
+Budget | budget_group_consumption_export
+Budget | budget_group_consumption_report
 Budget | generate_structure
 Budget | original_budget
 Budget | transfer_line_list_view
diff --git a/bt5/erp5_budget/bt/template_local_role_list b/bt5/erp5_budget/bt/template_local_role_list
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/bt5/erp5_budget/bt/template_portal_type_role_list b/bt5/erp5_budget/bt/template_portal_type_role_list
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391