From a16d7cd4678e8eb506411bdc7d611147d4d04c84 Mon Sep 17 00:00:00 2001 From: dkhunt27 <huntd@valassis.com> Date: Wed, 24 Jul 2013 18:11:11 -0400 Subject: [PATCH 1/3] updated to support subscribe/unsubscribe to multiple destinations --- .gitignore | 1 + lib/stomp.js | 44 ++++++++++++++++++++++++++------------------ package.json | 2 +- 3 files changed, 28 insertions(+), 19 deletions(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..9f11b75 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.idea/ diff --git a/lib/stomp.js b/lib/stomp.js index bb51546..47f58db 100644 --- a/lib/stomp.js +++ b/lib/stomp.js @@ -353,22 +353,19 @@ Stomp.prototype.disconnect = function() { Stomp.prototype.subscribe = function(headers, callback) { var destination = headers['destination']; headers['session'] = this.session; - send_command(this, 'SUBSCRIBE', headers); - - /** - / Maybe we could subscribe to mulitple queues? - / if (destination instanceof Array) { - / for (var = i; i < 0; i++) { - / this._subscribed_to[destination[i]] = { enabled: true, callback: callback }; - / } - / } - / else { - / this._subscribed_to[destination] = { enabled: true, callback: callback }; - / } - / - */ - - this._subscribed_to[destination] = { enabled: true, callback: callback }; + + if (destination instanceof Array) { + for (var i=0; i < destination.length; i++) { + headers.destination = destination[i]; + send_command(this, 'SUBSCRIBE', headers); + this._subscribed_to[destination[i]] = { enabled: true, callback: callback }; + } + } + else { + send_command(this, 'SUBSCRIBE', headers); + this._subscribed_to[destination] = { enabled: true, callback: callback }; + } + this.log.debug('subscribed to: ' + destination + ' with headers ' + sys.inspect(headers)); }; @@ -382,8 +379,19 @@ Stomp.prototype.subscribe = function(headers, callback) { Stomp.prototype.unsubscribe = function(headers) { var destination = headers['destination']; headers['session'] = this.session; - send_command(this, 'UNSUBSCRIBE', headers); - this._subscribed_to[destination].enabled = false; + + if (destination instanceof Array) { + for (var i=0; i < destination.length; i++) { + headers.destination = destination[i]; + send_command(this, 'UNSUBSCRIBE', headers); + this._subscribed_to[destination[i]].enabled = false; + } + } + else { + send_command(this, 'UNSUBSCRIBE', headers); + this._subscribed_to[destination].enabled = false; + } + this.log.debug('no longer subscribed to: ' + destination); }; diff --git a/package.json b/package.json index 5a5e777..1cb2caa 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name" : "stomp", "description": "Implementation of the STOMP protocol in node.js", "keywords": [ "STOMP", "messaging", "queue", "protocol" ], - "version": "v0.1.1", + "version": "v0.1.2", "homepage": "https://github.com/benjaminws/stomp-js", "author": "Benjamin W. Smith <benjaminws@just-another.net>", "contributors" : [ "rofflwaffls@gmail.com" ], From 1e1e790347fe9cec0f5d054dd6b5d2e99864ca16 Mon Sep 17 00:00:00 2001 From: dkhunt27 <huntd@valassis.com> Date: Tue, 30 Jul 2013 13:45:48 -0400 Subject: [PATCH 2/3] refactored using revealing module pattern and other OCD refactoring; jshint fixes; added tests; updat ed examples; updated readme for example app; switch documenation to jsduck; added make file for common commands --- .gitignore | 1 + .jshintignore | 2 + .jshintrc | 96 ++ Makefile | 40 + README.md | 29 +- docs/app-20ea5717ade2476617d0305b69058533.js | 1 + docs/bg.png | Bin 8401 -> 0 bytes docs/data-7123939d7aa281aafe53073d4dfed19f.js | 1 + docs/eg-iframe.html | 26 + docs/extjs/ext-all.js | 38 + .../default/boundlist/trigger-arrow.png | Bin 0 -> 2869 bytes .../images/default/box/corners-blue.gif | Bin 0 -> 1010 bytes .../themes/images/default/box/corners.gif | Bin 0 -> 1005 bytes .../themes/images/default/box/l-blue.gif | Bin 0 -> 810 bytes .../resources/themes/images/default/box/l.gif | Bin 0 -> 810 bytes .../themes/images/default/box/r-blue.gif | Bin 0 -> 810 bytes .../resources/themes/images/default/box/r.gif | Bin 0 -> 810 bytes .../themes/images/default/box/tb-blue.gif | Bin 0 -> 851 bytes .../themes/images/default/box/tb.gif | Bin 0 -> 839 bytes .../btn-group-default-framed-corners.gif | Bin 0 -> 1598 bytes ...n-group-default-framed-notitle-corners.gif | Bin 0 -> 1598 bytes ...btn-group-default-framed-notitle-sides.gif | Bin 0 -> 1623 bytes .../btn-group-default-framed-sides.gif | Bin 0 -> 1630 bytes .../default/btn/btn-default-large-bg.gif | Bin 0 -> 1825 bytes .../default/btn/btn-default-large-corners.gif | Bin 0 -> 1616 bytes .../btn/btn-default-large-disabled-bg.gif | Bin 0 -> 1825 bytes .../btn-default-large-disabled-corners.gif | Bin 0 -> 1614 bytes .../btn/btn-default-large-disabled-sides.gif | Bin 0 -> 1923 bytes .../btn/btn-default-large-focus-bg.gif | Bin 0 -> 1840 bytes .../btn/btn-default-large-focus-corners.gif | Bin 0 -> 1621 bytes .../btn/btn-default-large-focus-sides.gif | Bin 0 -> 1923 bytes .../default/btn/btn-default-large-over-bg.gif | Bin 0 -> 1840 bytes .../btn/btn-default-large-over-corners.gif | Bin 0 -> 1621 bytes .../btn/btn-default-large-over-sides.gif | Bin 0 -> 1923 bytes .../btn/btn-default-large-pressed-bg.gif | Bin 0 -> 1869 bytes .../btn/btn-default-large-pressed-corners.gif | Bin 0 -> 1619 bytes .../btn/btn-default-large-pressed-sides.gif | Bin 0 -> 1953 bytes .../default/btn/btn-default-large-sides.gif | Bin 0 -> 1923 bytes .../default/btn/btn-default-medium-bg.gif | Bin 0 -> 1809 bytes .../btn/btn-default-medium-corners.gif | Bin 0 -> 1616 bytes .../btn/btn-default-medium-disabled-bg.gif | Bin 0 -> 1809 bytes .../btn-default-medium-disabled-corners.gif | Bin 0 -> 1614 bytes .../btn/btn-default-medium-disabled-sides.gif | Bin 0 -> 1907 bytes .../btn/btn-default-medium-focus-bg.gif | Bin 0 -> 1817 bytes .../btn/btn-default-medium-focus-corners.gif | Bin 0 -> 1622 bytes .../btn/btn-default-medium-focus-sides.gif | Bin 0 -> 1897 bytes .../btn/btn-default-medium-over-bg.gif | Bin 0 -> 1817 bytes .../btn/btn-default-medium-over-corners.gif | Bin 0 -> 1622 bytes .../btn/btn-default-medium-over-sides.gif | Bin 0 -> 1897 bytes .../btn/btn-default-medium-pressed-bg.gif | Bin 0 -> 1849 bytes .../btn-default-medium-pressed-corners.gif | Bin 0 -> 1619 bytes .../btn/btn-default-medium-pressed-sides.gif | Bin 0 -> 1929 bytes .../default/btn/btn-default-medium-sides.gif | Bin 0 -> 1907 bytes .../default/btn/btn-default-small-bg.gif | Bin 0 -> 1791 bytes .../default/btn/btn-default-small-corners.gif | Bin 0 -> 1614 bytes .../btn/btn-default-small-disabled-bg.gif | Bin 0 -> 1791 bytes .../btn-default-small-disabled-corners.gif | Bin 0 -> 1614 bytes .../btn/btn-default-small-disabled-sides.gif | Bin 0 -> 1878 bytes .../btn/btn-default-small-focus-bg.gif | Bin 0 -> 1800 bytes .../btn/btn-default-small-focus-corners.gif | Bin 0 -> 1622 bytes .../btn/btn-default-small-focus-sides.gif | Bin 0 -> 1879 bytes .../default/btn/btn-default-small-over-bg.gif | Bin 0 -> 1800 bytes .../btn/btn-default-small-over-corners.gif | Bin 0 -> 1621 bytes .../btn/btn-default-small-over-sides.gif | Bin 0 -> 1879 bytes .../btn/btn-default-small-pressed-bg.gif | Bin 0 -> 1811 bytes .../btn/btn-default-small-pressed-corners.gif | Bin 0 -> 1621 bytes .../btn/btn-default-small-pressed-sides.gif | Bin 0 -> 1892 bytes .../default/btn/btn-default-small-sides.gif | Bin 0 -> 1873 bytes .../btn/btn-default-toolbar-large-corners.gif | Bin 0 -> 1585 bytes ...default-toolbar-large-disabled-corners.gif | Bin 0 -> 1585 bytes ...n-default-toolbar-large-disabled-sides.gif | Bin 0 -> 1596 bytes .../btn-default-toolbar-large-focus-bg.gif | Bin 0 -> 1851 bytes ...tn-default-toolbar-large-focus-corners.gif | Bin 0 -> 1621 bytes .../btn-default-toolbar-large-focus-sides.gif | Bin 0 -> 1939 bytes .../btn/btn-default-toolbar-large-over-bg.gif | Bin 0 -> 1851 bytes ...btn-default-toolbar-large-over-corners.gif | Bin 0 -> 1621 bytes .../btn-default-toolbar-large-over-sides.gif | Bin 0 -> 1939 bytes .../btn-default-toolbar-large-pressed-bg.gif | Bin 0 -> 1846 bytes ...-default-toolbar-large-pressed-corners.gif | Bin 0 -> 1623 bytes ...tn-default-toolbar-large-pressed-sides.gif | Bin 0 -> 1933 bytes .../btn/btn-default-toolbar-large-sides.gif | Bin 0 -> 1596 bytes .../btn-default-toolbar-medium-corners.gif | Bin 0 -> 1585 bytes ...efault-toolbar-medium-disabled-corners.gif | Bin 0 -> 1585 bytes ...-default-toolbar-medium-disabled-sides.gif | Bin 0 -> 1594 bytes .../btn-default-toolbar-medium-focus-bg.gif | Bin 0 -> 1826 bytes ...n-default-toolbar-medium-focus-corners.gif | Bin 0 -> 1622 bytes ...btn-default-toolbar-medium-focus-sides.gif | Bin 0 -> 1917 bytes .../btn-default-toolbar-medium-over-bg.gif | Bin 0 -> 1826 bytes ...tn-default-toolbar-medium-over-corners.gif | Bin 0 -> 1622 bytes .../btn-default-toolbar-medium-over-sides.gif | Bin 0 -> 1917 bytes .../btn-default-toolbar-medium-pressed-bg.gif | Bin 0 -> 1846 bytes ...default-toolbar-medium-pressed-corners.gif | Bin 0 -> 1621 bytes ...n-default-toolbar-medium-pressed-sides.gif | Bin 0 -> 1919 bytes .../btn/btn-default-toolbar-medium-sides.gif | Bin 0 -> 1594 bytes .../btn/btn-default-toolbar-small-corners.gif | Bin 0 -> 1585 bytes ...default-toolbar-small-disabled-corners.gif | Bin 0 -> 1585 bytes ...n-default-toolbar-small-disabled-sides.gif | Bin 0 -> 1589 bytes .../btn-default-toolbar-small-focus-bg.gif | Bin 0 -> 1799 bytes ...tn-default-toolbar-small-focus-corners.gif | Bin 0 -> 1622 bytes .../btn-default-toolbar-small-focus-sides.gif | Bin 0 -> 1879 bytes .../btn/btn-default-toolbar-small-over-bg.gif | Bin 0 -> 1799 bytes ...btn-default-toolbar-small-over-corners.gif | Bin 0 -> 1622 bytes .../btn-default-toolbar-small-over-sides.gif | Bin 0 -> 1879 bytes .../btn-default-toolbar-small-pressed-bg.gif | Bin 0 -> 1813 bytes ...-default-toolbar-small-pressed-corners.gif | Bin 0 -> 1624 bytes ...tn-default-toolbar-small-pressed-sides.gif | Bin 0 -> 1892 bytes .../btn/btn-default-toolbar-small-sides.gif | Bin 0 -> 1589 bytes .../themes/images/default/button/arrow.gif | Bin 0 -> 828 bytes .../themes/images/default/button/btn.gif | Bin 0 -> 4298 bytes .../themes/images/default/button/group-cs.gif | Bin 0 -> 2459 bytes .../themes/images/default/button/group-lr.gif | Bin 0 -> 861 bytes .../themes/images/default/button/group-tb.gif | Bin 0 -> 846 bytes .../default/button/s-arrow-b-noline.gif | Bin 0 -> 898 bytes .../images/default/button/s-arrow-b.gif | Bin 0 -> 937 bytes .../images/default/button/s-arrow-bo.gif | Bin 0 -> 139 bytes .../images/default/button/s-arrow-light.gif | Bin 0 -> 116 bytes .../images/default/button/s-arrow-noline.gif | Bin 0 -> 863 bytes .../images/default/button/s-arrow-o.gif | Bin 0 -> 937 bytes .../themes/images/default/button/s-arrow.gif | Bin 0 -> 937 bytes .../datepicker/datepicker-footer-bg.gif | Bin 0 -> 1833 bytes .../datepicker/datepicker-footer-bg.png | Bin 0 -> 328 bytes .../datepicker/datepicker-header-bg.gif | Bin 0 -> 1860 bytes .../datepicker/datepicker-header-bg.png | Bin 0 -> 309 bytes .../themes/images/default/dd/drop-add.gif | Bin 0 -> 1001 bytes .../themes/images/default/dd/drop-no.gif | Bin 0 -> 949 bytes .../themes/images/default/dd/drop-yes.gif | Bin 0 -> 1016 bytes .../images/default/editor/tb-sprite.gif | Bin 0 -> 2072 bytes .../form-invalid-tip-corners.gif | Bin 0 -> 1688 bytes .../form-invalid-tip-default-corners.gif | Bin 0 -> 1690 bytes .../form-invalid-tip-default-sides.gif | Bin 0 -> 1647 bytes .../form-invalid-tip-sides.gif | Bin 0 -> 1647 bytes .../themes/images/default/form/checkbox.gif | Bin 0 -> 2061 bytes .../images/default/form/clear-trigger.gif | Bin 0 -> 1988 bytes .../images/default/form/date-trigger.gif | Bin 0 -> 1603 bytes .../images/default/form/error-tip-corners.gif | Bin 0 -> 4183 bytes .../images/default/form/exclamation.gif | Bin 0 -> 996 bytes .../themes/images/default/form/radio.gif | Bin 0 -> 1746 bytes .../images/default/form/search-trigger.gif | Bin 0 -> 2182 bytes .../images/default/form/spinner-small.gif | Bin 0 -> 743 bytes .../themes/images/default/form/spinner.gif | Bin 0 -> 1975 bytes .../themes/images/default/form/text-bg.gif | Bin 0 -> 819 bytes .../images/default/form/trigger-square.gif | Bin 0 -> 1810 bytes .../images/default/form/trigger-tpl.gif | Bin 0 -> 1487 bytes .../themes/images/default/form/trigger.gif | Bin 0 -> 1816 bytes .../images/default/grid/arrow-left-white.gif | Bin 0 -> 825 bytes .../images/default/grid/arrow-right-white.gif | Bin 0 -> 825 bytes .../images/default/grid/cell-special-bg.gif | Bin 0 -> 1636 bytes .../images/default/grid/cell-special-bg.png | Bin 0 -> 121 bytes .../default/grid/cell-special-selected-bg.gif | Bin 0 -> 1640 bytes .../default/grid/cell-special-selected-bg.png | Bin 0 -> 136 bytes .../themes/images/default/grid/checked.gif | Bin 0 -> 959 bytes .../images/default/grid/col-move-bottom.gif | Bin 0 -> 868 bytes .../images/default/grid/col-move-top.gif | Bin 0 -> 869 bytes .../images/default/grid/column-header-bg.gif | Bin 0 -> 1858 bytes .../images/default/grid/column-header-bg.png | Bin 0 -> 293 bytes .../default/grid/column-header-over-bg.gif | Bin 0 -> 1767 bytes .../default/grid/column-header-over-bg.png | Bin 0 -> 283 bytes .../themes/images/default/grid/columns.gif | Bin 0 -> 962 bytes .../default/grid/dd-insert-arrow-left.gif | Bin 0 -> 299 bytes .../default/grid/dd-insert-arrow-left.png | Bin 0 -> 345 bytes .../default/grid/dd-insert-arrow-right.gif | Bin 0 -> 301 bytes .../default/grid/dd-insert-arrow-right.png | Bin 0 -> 349 bytes .../themes/images/default/grid/dirty.gif | Bin 0 -> 832 bytes .../themes/images/default/grid/done.gif | Bin 0 -> 133 bytes .../themes/images/default/grid/drop-no.gif | Bin 0 -> 947 bytes .../themes/images/default/grid/drop-yes.gif | Bin 0 -> 860 bytes .../themes/images/default/grid/footer-bg.gif | Bin 0 -> 834 bytes .../images/default/grid/grid-blue-hd.gif | Bin 0 -> 829 bytes .../images/default/grid/grid-blue-split.gif | Bin 0 -> 817 bytes .../themes/images/default/grid/grid-hrow.gif | Bin 0 -> 855 bytes .../images/default/grid/grid-loading.gif | Bin 0 -> 701 bytes .../themes/images/default/grid/grid-split.gif | Bin 0 -> 817 bytes .../images/default/grid/grid-vista-hd.gif | Bin 0 -> 829 bytes .../images/default/grid/grid3-hd-btn.gif | Bin 0 -> 1229 bytes .../images/default/grid/grid3-hrow-over.gif | Bin 0 -> 823 bytes .../themes/images/default/grid/grid3-hrow.gif | Bin 0 -> 836 bytes .../images/default/grid/grid3-rowheader.gif | Bin 0 -> 43 bytes .../themes/images/default/grid/group-by.gif | Bin 0 -> 917 bytes .../images/default/grid/group-collapse.gif | Bin 0 -> 881 bytes .../default/grid/group-expand-sprite.gif | Bin 0 -> 955 bytes .../images/default/grid/group-expand.gif | Bin 0 -> 884 bytes .../themes/images/default/grid/hd-pop.gif | Bin 0 -> 839 bytes .../themes/images/default/grid/hmenu-asc.gif | Bin 0 -> 931 bytes .../themes/images/default/grid/hmenu-desc.gif | Bin 0 -> 930 bytes .../themes/images/default/grid/hmenu-lock.gif | Bin 0 -> 955 bytes .../themes/images/default/grid/hmenu-lock.png | Bin 0 -> 648 bytes .../images/default/grid/hmenu-unlock.gif | Bin 0 -> 971 bytes .../images/default/grid/hmenu-unlock.png | Bin 0 -> 697 bytes .../images/default/grid/invalid_line.gif | Bin 0 -> 815 bytes .../themes/images/default/grid/loading.gif | Bin 0 -> 771 bytes .../themes/images/default/grid/mso-hd.gif | Bin 0 -> 875 bytes .../themes/images/default/grid/nowait.gif | Bin 0 -> 884 bytes .../default/grid/page-first-disabled.gif | Bin 0 -> 925 bytes .../themes/images/default/grid/page-first.gif | Bin 0 -> 925 bytes .../default/grid/page-last-disabled.gif | Bin 0 -> 923 bytes .../themes/images/default/grid/page-last.gif | Bin 0 -> 923 bytes .../default/grid/page-next-disabled.gif | Bin 0 -> 875 bytes .../themes/images/default/grid/page-next.gif | Bin 0 -> 875 bytes .../default/grid/page-prev-disabled.gif | Bin 0 -> 879 bytes .../themes/images/default/grid/page-prev.gif | Bin 0 -> 879 bytes .../images/default/grid/pick-button.gif | Bin 0 -> 1036 bytes .../images/default/grid/property-cell-bg.gif | Bin 0 -> 155 bytes .../grid/property-cell-selected-bg.gif | Bin 0 -> 843 bytes .../images/default/grid/refresh-disabled.gif | Bin 0 -> 577 bytes .../themes/images/default/grid/refresh.gif | Bin 0 -> 977 bytes .../images/default/grid/row-check-sprite.gif | Bin 0 -> 1083 bytes .../images/default/grid/row-expand-sprite.gif | Bin 0 -> 955 bytes .../themes/images/default/grid/row-over.gif | Bin 0 -> 823 bytes .../themes/images/default/grid/row-sel.gif | Bin 0 -> 823 bytes .../themes/images/default/grid/sort-hd.gif | Bin 0 -> 1473 bytes .../themes/images/default/grid/sort_asc.gif | Bin 0 -> 830 bytes .../themes/images/default/grid/sort_desc.gif | Bin 0 -> 833 bytes .../themes/images/default/grid/unchecked.gif | Bin 0 -> 941 bytes .../themes/images/default/grid/wait.gif | Bin 0 -> 1100 bytes .../images/default/layout/mini-bottom.gif | Bin 0 -> 856 bytes .../images/default/layout/mini-left.gif | Bin 0 -> 871 bytes .../images/default/layout/mini-right.gif | Bin 0 -> 872 bytes .../themes/images/default/layout/mini-top.gif | Bin 0 -> 856 bytes .../themes/images/default/menu/checked.gif | Bin 0 -> 959 bytes .../images/default/menu/group-checked.gif | Bin 0 -> 891 bytes .../themes/images/default/menu/item-over.gif | Bin 0 -> 47 bytes .../default/menu/menu-item-active-bg.gif | Bin 0 -> 1833 bytes .../default/menu/menu-item-active-corners.gif | Bin 0 -> 1621 bytes .../default/menu/menu-item-active-sides.gif | Bin 0 -> 1909 bytes .../images/default/menu/menu-parent.gif | Bin 0 -> 854 bytes .../themes/images/default/menu/menu.gif | Bin 0 -> 834 bytes .../themes/images/default/menu/unchecked.gif | Bin 0 -> 941 bytes .../panel-header-default-bottom-bg.gif | Bin 0 -> 1862 bytes .../panel-header-default-framed-bottom-bg.gif | Bin 0 -> 1839 bytes ...l-header-default-framed-bottom-corners.gif | Bin 0 -> 1648 bytes ...nel-header-default-framed-bottom-sides.gif | Bin 0 -> 2015 bytes ...der-default-framed-collapsed-bottom-bg.gif | Bin 0 -> 1820 bytes ...efault-framed-collapsed-bottom-corners.gif | Bin 0 -> 1667 bytes ...-default-framed-collapsed-bottom-sides.gif | Bin 0 -> 1998 bytes ...eader-default-framed-collapsed-left-bg.gif | Bin 0 -> 1634 bytes ...-default-framed-collapsed-left-corners.gif | Bin 0 -> 1684 bytes ...er-default-framed-collapsed-left-sides.gif | Bin 0 -> 1831 bytes ...ader-default-framed-collapsed-right-bg.gif | Bin 0 -> 1634 bytes ...default-framed-collapsed-right-corners.gif | Bin 0 -> 1687 bytes ...r-default-framed-collapsed-right-sides.gif | Bin 0 -> 1831 bytes ...header-default-framed-collapsed-top-bg.gif | Bin 0 -> 1821 bytes ...r-default-framed-collapsed-top-corners.gif | Bin 0 -> 1668 bytes ...der-default-framed-collapsed-top-sides.gif | Bin 0 -> 2002 bytes .../panel-header-default-framed-left-bg.gif | Bin 0 -> 1638 bytes ...nel-header-default-framed-left-corners.gif | Bin 0 -> 1669 bytes ...panel-header-default-framed-left-sides.gif | Bin 0 -> 1841 bytes .../panel-header-default-framed-right-bg.gif | Bin 0 -> 1639 bytes ...el-header-default-framed-right-corners.gif | Bin 0 -> 1667 bytes ...anel-header-default-framed-right-sides.gif | Bin 0 -> 1844 bytes .../panel-header-default-framed-top-bg.gif | Bin 0 -> 1842 bytes ...anel-header-default-framed-top-corners.gif | Bin 0 -> 1652 bytes .../panel-header-default-framed-top-sides.gif | Bin 0 -> 2019 bytes .../panel-header-default-left-bg.gif | Bin 0 -> 1640 bytes .../panel-header-default-right-bg.gif | Bin 0 -> 1640 bytes .../panel-header-default-top-bg.gif | Bin 0 -> 1863 bytes .../panel/panel-default-framed-corners.gif | Bin 0 -> 1639 bytes .../panel/panel-default-framed-sides.gif | Bin 0 -> 1727 bytes .../default/progress/progress-default-bg.gif | Bin 0 -> 1837 bytes .../images/default/shared/blue-loading.gif | Bin 0 -> 3236 bytes .../themes/images/default/shared/calendar.gif | Bin 0 -> 979 bytes .../themes/images/default/shared/glass-bg.gif | Bin 0 -> 873 bytes .../images/default/shared/hd-sprite.gif | Bin 0 -> 1099 bytes .../images/default/shared/icon-error.gif | Bin 0 -> 1669 bytes .../images/default/shared/icon-info.gif | Bin 0 -> 1586 bytes .../images/default/shared/icon-question.gif | Bin 0 -> 1607 bytes .../images/default/shared/icon-warning.gif | Bin 0 -> 1483 bytes .../images/default/shared/large-loading.gif | Bin 0 -> 3236 bytes .../themes/images/default/shared/left-btn.gif | Bin 0 -> 870 bytes .../images/default/shared/loading-balls.gif | Bin 0 -> 2118 bytes .../images/default/shared/right-btn.gif | Bin 0 -> 871 bytes .../themes/images/default/shared/shadow-c.png | Bin 0 -> 118 bytes .../images/default/shared/shadow-lr.png | Bin 0 -> 135 bytes .../themes/images/default/shared/shadow.png | Bin 0 -> 311 bytes .../themes/images/default/shared/warning.gif | Bin 0 -> 960 bytes .../images/default/sizer/e-handle-dark.gif | Bin 0 -> 1062 bytes .../themes/images/default/sizer/e-handle.gif | Bin 0 -> 1586 bytes .../images/default/sizer/ne-handle-dark.gif | Bin 0 -> 839 bytes .../themes/images/default/sizer/ne-handle.gif | Bin 0 -> 854 bytes .../images/default/sizer/nw-handle-dark.gif | Bin 0 -> 839 bytes .../themes/images/default/sizer/nw-handle.gif | Bin 0 -> 853 bytes .../images/default/sizer/s-handle-dark.gif | Bin 0 -> 1060 bytes .../themes/images/default/sizer/s-handle.gif | Bin 0 -> 1318 bytes .../images/default/sizer/se-handle-dark.gif | Bin 0 -> 838 bytes .../themes/images/default/sizer/se-handle.gif | Bin 0 -> 853 bytes .../themes/images/default/sizer/square.gif | Bin 0 -> 864 bytes .../images/default/sizer/sw-handle-dark.gif | Bin 0 -> 839 bytes .../themes/images/default/sizer/sw-handle.gif | Bin 0 -> 855 bytes .../images/default/slider/slider-bg.gif | Bin 0 -> 145 bytes .../images/default/slider/slider-bg.png | Bin 0 -> 1494 bytes .../images/default/slider/slider-thumb.gif | Bin 0 -> 542 bytes .../images/default/slider/slider-thumb.png | Bin 0 -> 933 bytes .../images/default/slider/slider-v-bg.gif | Bin 0 -> 150 bytes .../images/default/slider/slider-v-bg.png | Bin 0 -> 288 bytes .../images/default/slider/slider-v-thumb.gif | Bin 0 -> 533 bytes .../images/default/slider/slider-v-thumb.png | Bin 0 -> 883 bytes .../images/default/tab-bar/scroll-left.gif | Bin 0 -> 457 bytes .../images/default/tab-bar/scroll-right.gif | Bin 0 -> 460 bytes .../default/tab-bar/tab-bar-default-bg.gif | Bin 0 -> 1829 bytes .../tab/tab-default-bottom-active-bg.gif | Bin 0 -> 1785 bytes .../tab/tab-default-bottom-active-corners.gif | Bin 0 -> 1639 bytes .../tab/tab-default-bottom-active-sides.gif | Bin 0 -> 1982 bytes .../default/tab/tab-default-bottom-bg.gif | Bin 0 -> 1789 bytes .../tab/tab-default-bottom-corners.gif | Bin 0 -> 1648 bytes .../tab/tab-default-bottom-disabled-bg.gif | Bin 0 -> 1798 bytes .../tab-default-bottom-disabled-corners.gif | Bin 0 -> 1648 bytes .../tab/tab-default-bottom-disabled-sides.gif | Bin 0 -> 1984 bytes .../tab/tab-default-bottom-over-bg.gif | Bin 0 -> 1791 bytes .../tab/tab-default-bottom-over-corners.gif | Bin 0 -> 1643 bytes .../tab/tab-default-bottom-over-sides.gif | Bin 0 -> 1985 bytes .../default/tab/tab-default-bottom-sides.gif | Bin 0 -> 1984 bytes .../images/default/tab/tab-default-close.gif | Bin 0 -> 896 bytes .../default/tab/tab-default-top-active-bg.gif | Bin 0 -> 1775 bytes .../tab/tab-default-top-active-corners.gif | Bin 0 -> 1640 bytes .../tab/tab-default-top-active-sides.gif | Bin 0 -> 1962 bytes .../images/default/tab/tab-default-top-bg.gif | Bin 0 -> 1775 bytes .../default/tab/tab-default-top-corners.gif | Bin 0 -> 1648 bytes .../tab/tab-default-top-disabled-bg.gif | Bin 0 -> 1794 bytes .../tab/tab-default-top-disabled-corners.gif | Bin 0 -> 1649 bytes .../tab/tab-default-top-disabled-sides.gif | Bin 0 -> 1979 bytes .../default/tab/tab-default-top-over-bg.gif | Bin 0 -> 1777 bytes .../tab/tab-default-top-over-corners.gif | Bin 0 -> 1649 bytes .../tab/tab-default-top-over-sides.gif | Bin 0 -> 1963 bytes .../default/tab/tab-default-top-sides.gif | Bin 0 -> 1962 bytes .../themes/images/default/tip/tip-corners.gif | Bin 0 -> 1621 bytes .../themes/images/default/tip/tip-sides.gif | Bin 0 -> 1623 bytes .../themes/images/default/toolbar/more.gif | Bin 0 -> 845 bytes .../images/default/toolbar/scroll-left.gif | Bin 0 -> 1861 bytes .../images/default/toolbar/scroll-right.gif | Bin 0 -> 1865 bytes .../default/toolbar/toolbar-default-bg.gif | Bin 0 -> 1837 bytes .../images/default/tools/tool-sprite-tpl.gif | Bin 0 -> 971 bytes .../images/default/tools/tool-sprites.gif | Bin 0 -> 5421 bytes .../default/tools/tools-sprites-trans.gif | Bin 0 -> 2843 bytes .../themes/images/default/tree/arrows.gif | Bin 0 -> 617 bytes .../themes/images/default/tree/drop-above.gif | Bin 0 -> 911 bytes .../themes/images/default/tree/drop-add.gif | Bin 0 -> 1001 bytes .../images/default/tree/drop-append.gif | Bin 0 -> 1001 bytes .../themes/images/default/tree/drop-below.gif | Bin 0 -> 911 bytes .../images/default/tree/drop-between.gif | Bin 0 -> 907 bytes .../themes/images/default/tree/drop-no.gif | Bin 0 -> 949 bytes .../themes/images/default/tree/drop-over.gif | Bin 0 -> 911 bytes .../themes/images/default/tree/drop-under.gif | Bin 0 -> 911 bytes .../themes/images/default/tree/drop-yes.gif | Bin 0 -> 1016 bytes .../default/tree/elbow-end-minus-nl.gif | Bin 0 -> 151 bytes .../images/default/tree/elbow-end-minus.gif | Bin 0 -> 157 bytes .../images/default/tree/elbow-end-plus-nl.gif | Bin 0 -> 152 bytes .../images/default/tree/elbow-end-plus.gif | Bin 0 -> 159 bytes .../themes/images/default/tree/elbow-end.gif | Bin 0 -> 70 bytes .../themes/images/default/tree/elbow-line.gif | Bin 0 -> 72 bytes .../images/default/tree/elbow-minus-nl.gif | Bin 0 -> 151 bytes .../images/default/tree/elbow-minus.gif | Bin 0 -> 159 bytes .../images/default/tree/elbow-plus-nl.gif | Bin 0 -> 152 bytes .../themes/images/default/tree/elbow-plus.gif | Bin 0 -> 160 bytes .../themes/images/default/tree/elbow.gif | Bin 0 -> 73 bytes .../images/default/tree/folder-open.gif | Bin 0 -> 356 bytes .../themes/images/default/tree/folder.gif | Bin 0 -> 351 bytes .../themes/images/default/tree/leaf.gif | Bin 0 -> 945 bytes .../themes/images/default/tree/loading.gif | Bin 0 -> 771 bytes .../themes/images/default/tree/s.gif | Bin 0 -> 43 bytes .../default/util/splitter/mini-bottom.gif | Bin 0 -> 856 bytes .../default/util/splitter/mini-left.gif | Bin 0 -> 871 bytes .../default/util/splitter/mini-right.gif | Bin 0 -> 872 bytes .../images/default/util/splitter/mini-top.gif | Bin 0 -> 856 bytes .../window-header-default-bottom-corners.gif | Bin 0 -> 1664 bytes .../window-header-default-bottom-sides.gif | Bin 0 -> 1624 bytes ...eader-default-collapsed-bottom-corners.gif | Bin 0 -> 213 bytes ...-header-default-collapsed-bottom-sides.gif | Bin 0 -> 1624 bytes ...-header-default-collapsed-left-corners.gif | Bin 0 -> 211 bytes ...ow-header-default-collapsed-left-sides.gif | Bin 0 -> 70 bytes ...header-default-collapsed-right-corners.gif | Bin 0 -> 213 bytes ...w-header-default-collapsed-right-sides.gif | Bin 0 -> 70 bytes ...w-header-default-collapsed-top-corners.gif | Bin 0 -> 215 bytes ...dow-header-default-collapsed-top-sides.gif | Bin 0 -> 1624 bytes .../window-header-default-left-corners.gif | Bin 0 -> 1655 bytes .../window-header-default-left-sides.gif | Bin 0 -> 1610 bytes .../window-header-default-right-corners.gif | Bin 0 -> 1656 bytes .../window-header-default-right-sides.gif | Bin 0 -> 1610 bytes .../window-header-default-top-corners.gif | Bin 0 -> 199 bytes .../window-header-default-top-sides.gif | Bin 0 -> 1624 bytes .../default/window/window-default-corners.gif | Bin 0 -> 1686 bytes .../default/window/window-default-sides.gif | Bin 0 -> 1776 bytes docs/favicon.ico | Bin 0 -> 1150 bytes docs/frame.html | 82 -- docs/index.html | 69 +- docs/output/Frame.js | 1 + docs/output/Stomp.js | 1 + docs/output/StompLogger.js | 1 + docs/output/StompUtils.js | 1 + .../app-851b66f18114a2a31d488e9c8d7cb964.css | 1 + docs/resources/css/reset.css | 59 ++ docs/resources/css/scrollbars.css | 17 + docs/resources/css/welcome.css | 84 ++ docs/resources/css/welcome_ie6.css | 72 ++ docs/resources/images/ajax-loader.gif | Bin 0 -> 1849 bytes docs/resources/images/arrows.png | Bin 0 -> 1187 bytes docs/resources/images/class-m.png | Bin 0 -> 5910 bytes docs/resources/images/comment-bubble.png | Bin 0 -> 1250 bytes docs/resources/images/comment.png | Bin 0 -> 5163 bytes docs/resources/images/component-m.png | Bin 0 -> 3287 bytes docs/resources/images/default-guide.png | Bin 0 -> 13215 bytes docs/resources/images/doc-m.png | Bin 0 -> 3368 bytes docs/resources/images/down-arr.png | Bin 0 -> 963 bytes docs/resources/images/elbow-end.gif | Bin 0 -> 844 bytes docs/resources/images/example-icons.png | Bin 0 -> 2639 bytes docs/resources/images/expandcollapse.png | Bin 0 -> 1051 bytes docs/resources/images/gettingstarted.jpg | Bin 0 -> 20437 bytes docs/resources/images/group-expand-sprite.gif | Bin 0 -> 955 bytes docs/resources/images/guide-icon.png | Bin 0 -> 1659 bytes docs/resources/images/guides.png | Bin 0 -> 22038 bytes docs/resources/images/header.png | Bin 0 -> 1089 bytes docs/resources/images/hero-extjs4-alt.png | Bin 0 -> 56899 bytes docs/resources/images/icons.png | Bin 0 -> 11943 bytes docs/resources/images/link-arrow-next.png | Bin 0 -> 501 bytes .../images/link-green-standard-over.png | Bin 0 -> 240 bytes docs/resources/images/link-green-standard.png | Bin 0 -> 240 bytes docs/resources/images/loading.gif | Bin 0 -> 16717 bytes docs/resources/images/logo-screen-noglow.png | Bin 0 -> 9394 bytes docs/resources/images/logo.png | Bin 0 -> 1243 bytes docs/resources/images/member-collapsed.gif | Bin 0 -> 856 bytes docs/resources/images/member-expanded.gif | Bin 0 -> 845 bytes docs/resources/images/member-hover.gif | Bin 0 -> 861 bytes docs/resources/images/more.png | Bin 0 -> 498 bytes docs/resources/images/phone-l.jpg | Bin 0 -> 23894 bytes docs/resources/images/phone-p.jpg | Bin 0 -> 24174 bytes docs/resources/images/phone-small-l.jpg | Bin 0 -> 12852 bytes docs/resources/images/phone-small-p.jpg | Bin 0 -> 12905 bytes docs/resources/images/preview.png | Bin 0 -> 1361 bytes docs/resources/images/print.png | Bin 0 -> 829 bytes docs/resources/images/sample-over.gif | Bin 0 -> 2594 bytes docs/resources/images/search-box.png | Bin 0 -> 1988 bytes docs/resources/images/sencha-stamp.png | Bin 0 -> 1849 bytes docs/resources/images/singleton-m.png | Bin 0 -> 6253 bytes docs/resources/images/tablet-l.jpg | Bin 0 -> 35936 bytes docs/resources/images/tablet-p.jpg | Bin 0 -> 34731 bytes docs/resources/images/tabs.png | Bin 0 -> 5291 bytes docs/resources/images/text-bg.gif | Bin 0 -> 819 bytes docs/resources/images/version-tabs.png | Bin 0 -> 3594 bytes docs/resources/images/vote-arrows.png | Bin 0 -> 883 bytes docs/resources/images/welcome-bg-js4.gif | Bin 0 -> 3419 bytes docs/resources/images/x.png | Bin 0 -> 1299 bytes docs/resources/images/x12.png | Bin 0 -> 1242 bytes docs/resources/images/x122.png | Bin 0 -> 1418 bytes docs/resources/prettify/prettify.css | 1 + docs/resources/prettify/prettify.js | 28 + docs/rocco.css | 224 ---- docs/source/frame.html | 106 ++ docs/source/stomp.html | 652 ++++++++++++ docs/source/stomp.logger.html | 95 ++ docs/source/stomp.utils.html | 62 ++ docs/stomp-exceptions.html | 10 - docs/stomp-utils.html | 44 - docs/stomp.html | 365 ------- examples/app.js | 52 + examples/stomp-consumer.js | 58 - examples/stomp-examples.js | 280 +++++ examples/stomp-producer-txn.js | 58 - examples/stomp-producer.js | 59 -- jsduckCategories.json | 21 + jsduckConfig.json | 11 + lib/frame.js | 155 ++- lib/stomp-exceptions.js | 8 - lib/stomp-utils.js | 42 - lib/stomp.js | 987 ++++++++++-------- lib/stomp.logger.js | 75 ++ lib/stomp.utils.js | 42 + package.json | 59 +- test/stomp.Integration.Tests.js | 361 +++++++ test/stomp.utils.Unit.Tests.js | 357 +++++++ test/test-frame.js | 65 -- 468 files changed, 3350 insertions(+), 1549 deletions(-) create mode 100644 .jshintignore create mode 100644 .jshintrc create mode 100644 Makefile create mode 100644 docs/app-20ea5717ade2476617d0305b69058533.js delete mode 100644 docs/bg.png create mode 100644 docs/data-7123939d7aa281aafe53073d4dfed19f.js create mode 100644 docs/eg-iframe.html create mode 100644 docs/extjs/ext-all.js create mode 100755 docs/extjs/resources/themes/images/default/boundlist/trigger-arrow.png create mode 100755 docs/extjs/resources/themes/images/default/box/corners-blue.gif create mode 100755 docs/extjs/resources/themes/images/default/box/corners.gif create mode 100755 docs/extjs/resources/themes/images/default/box/l-blue.gif create mode 100755 docs/extjs/resources/themes/images/default/box/l.gif create mode 100755 docs/extjs/resources/themes/images/default/box/r-blue.gif create mode 100755 docs/extjs/resources/themes/images/default/box/r.gif create mode 100755 docs/extjs/resources/themes/images/default/box/tb-blue.gif create mode 100755 docs/extjs/resources/themes/images/default/box/tb.gif create mode 100755 docs/extjs/resources/themes/images/default/btn-group/btn-group-default-framed-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/btn-group/btn-group-default-framed-notitle-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/btn-group/btn-group-default-framed-notitle-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/btn-group/btn-group-default-framed-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-large-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-large-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-large-disabled-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-large-disabled-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-large-disabled-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-large-focus-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-large-focus-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-large-focus-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-large-over-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-large-over-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-large-over-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-large-pressed-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-large-pressed-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-large-pressed-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-large-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-medium-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-medium-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-medium-disabled-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-medium-disabled-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-medium-disabled-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-medium-focus-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-medium-focus-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-medium-focus-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-medium-over-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-medium-over-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-medium-over-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-medium-pressed-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-medium-pressed-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-medium-pressed-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-medium-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-small-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-small-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-small-disabled-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-small-disabled-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-small-disabled-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-small-focus-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-small-focus-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-small-focus-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-small-over-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-small-over-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-small-over-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-small-pressed-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-small-pressed-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-small-pressed-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-small-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-disabled-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-disabled-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-focus-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-focus-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-focus-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-over-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-over-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-over-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-pressed-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-pressed-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-pressed-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-disabled-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-disabled-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-focus-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-focus-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-focus-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-over-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-over-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-over-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-pressed-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-pressed-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-pressed-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-disabled-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-disabled-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-focus-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-focus-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-focus-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-over-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-over-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-over-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-pressed-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-pressed-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-pressed-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/button/arrow.gif create mode 100755 docs/extjs/resources/themes/images/default/button/btn.gif create mode 100755 docs/extjs/resources/themes/images/default/button/group-cs.gif create mode 100755 docs/extjs/resources/themes/images/default/button/group-lr.gif create mode 100755 docs/extjs/resources/themes/images/default/button/group-tb.gif create mode 100755 docs/extjs/resources/themes/images/default/button/s-arrow-b-noline.gif create mode 100755 docs/extjs/resources/themes/images/default/button/s-arrow-b.gif create mode 100755 docs/extjs/resources/themes/images/default/button/s-arrow-bo.gif create mode 100755 docs/extjs/resources/themes/images/default/button/s-arrow-light.gif create mode 100755 docs/extjs/resources/themes/images/default/button/s-arrow-noline.gif create mode 100755 docs/extjs/resources/themes/images/default/button/s-arrow-o.gif create mode 100755 docs/extjs/resources/themes/images/default/button/s-arrow.gif create mode 100755 docs/extjs/resources/themes/images/default/datepicker/datepicker-footer-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/datepicker/datepicker-footer-bg.png create mode 100755 docs/extjs/resources/themes/images/default/datepicker/datepicker-header-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/datepicker/datepicker-header-bg.png create mode 100755 docs/extjs/resources/themes/images/default/dd/drop-add.gif create mode 100755 docs/extjs/resources/themes/images/default/dd/drop-no.gif create mode 100755 docs/extjs/resources/themes/images/default/dd/drop-yes.gif create mode 100755 docs/extjs/resources/themes/images/default/editor/tb-sprite.gif create mode 100755 docs/extjs/resources/themes/images/default/form-invalid-tip/form-invalid-tip-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/form-invalid-tip/form-invalid-tip-default-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/form-invalid-tip/form-invalid-tip-default-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/form-invalid-tip/form-invalid-tip-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/form/checkbox.gif create mode 100755 docs/extjs/resources/themes/images/default/form/clear-trigger.gif create mode 100755 docs/extjs/resources/themes/images/default/form/date-trigger.gif create mode 100755 docs/extjs/resources/themes/images/default/form/error-tip-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/form/exclamation.gif create mode 100755 docs/extjs/resources/themes/images/default/form/radio.gif create mode 100755 docs/extjs/resources/themes/images/default/form/search-trigger.gif create mode 100755 docs/extjs/resources/themes/images/default/form/spinner-small.gif create mode 100755 docs/extjs/resources/themes/images/default/form/spinner.gif create mode 100755 docs/extjs/resources/themes/images/default/form/text-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/form/trigger-square.gif create mode 100755 docs/extjs/resources/themes/images/default/form/trigger-tpl.gif create mode 100755 docs/extjs/resources/themes/images/default/form/trigger.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/arrow-left-white.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/arrow-right-white.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/cell-special-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/cell-special-bg.png create mode 100755 docs/extjs/resources/themes/images/default/grid/cell-special-selected-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/cell-special-selected-bg.png create mode 100755 docs/extjs/resources/themes/images/default/grid/checked.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/col-move-bottom.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/col-move-top.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/column-header-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/column-header-bg.png create mode 100755 docs/extjs/resources/themes/images/default/grid/column-header-over-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/column-header-over-bg.png create mode 100755 docs/extjs/resources/themes/images/default/grid/columns.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/dd-insert-arrow-left.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/dd-insert-arrow-left.png create mode 100755 docs/extjs/resources/themes/images/default/grid/dd-insert-arrow-right.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/dd-insert-arrow-right.png create mode 100755 docs/extjs/resources/themes/images/default/grid/dirty.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/done.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/drop-no.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/drop-yes.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/footer-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/grid-blue-hd.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/grid-blue-split.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/grid-hrow.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/grid-loading.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/grid-split.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/grid-vista-hd.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/grid3-hd-btn.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/grid3-hrow-over.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/grid3-hrow.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/grid3-rowheader.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/group-by.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/group-collapse.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/group-expand-sprite.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/group-expand.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/hd-pop.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/hmenu-asc.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/hmenu-desc.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/hmenu-lock.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/hmenu-lock.png create mode 100755 docs/extjs/resources/themes/images/default/grid/hmenu-unlock.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/hmenu-unlock.png create mode 100755 docs/extjs/resources/themes/images/default/grid/invalid_line.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/loading.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/mso-hd.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/nowait.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/page-first-disabled.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/page-first.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/page-last-disabled.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/page-last.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/page-next-disabled.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/page-next.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/page-prev-disabled.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/page-prev.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/pick-button.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/property-cell-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/property-cell-selected-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/refresh-disabled.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/refresh.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/row-check-sprite.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/row-expand-sprite.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/row-over.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/row-sel.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/sort-hd.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/sort_asc.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/sort_desc.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/unchecked.gif create mode 100755 docs/extjs/resources/themes/images/default/grid/wait.gif create mode 100755 docs/extjs/resources/themes/images/default/layout/mini-bottom.gif create mode 100755 docs/extjs/resources/themes/images/default/layout/mini-left.gif create mode 100755 docs/extjs/resources/themes/images/default/layout/mini-right.gif create mode 100755 docs/extjs/resources/themes/images/default/layout/mini-top.gif create mode 100755 docs/extjs/resources/themes/images/default/menu/checked.gif create mode 100755 docs/extjs/resources/themes/images/default/menu/group-checked.gif create mode 100755 docs/extjs/resources/themes/images/default/menu/item-over.gif create mode 100755 docs/extjs/resources/themes/images/default/menu/menu-item-active-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/menu/menu-item-active-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/menu/menu-item-active-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/menu/menu-parent.gif create mode 100755 docs/extjs/resources/themes/images/default/menu/menu.gif create mode 100755 docs/extjs/resources/themes/images/default/menu/unchecked.gif create mode 100755 docs/extjs/resources/themes/images/default/panel-header/panel-header-default-bottom-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-bottom-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-bottom-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-bottom-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-bottom-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-bottom-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-bottom-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-left-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-left-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-left-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-right-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-right-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-right-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-top-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-top-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-top-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-left-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-left-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-left-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-right-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-right-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-right-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-top-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-top-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-top-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/panel-header/panel-header-default-left-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/panel-header/panel-header-default-right-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/panel-header/panel-header-default-top-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/panel/panel-default-framed-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/panel/panel-default-framed-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/progress/progress-default-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/shared/blue-loading.gif create mode 100755 docs/extjs/resources/themes/images/default/shared/calendar.gif create mode 100755 docs/extjs/resources/themes/images/default/shared/glass-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/shared/hd-sprite.gif create mode 100755 docs/extjs/resources/themes/images/default/shared/icon-error.gif create mode 100755 docs/extjs/resources/themes/images/default/shared/icon-info.gif create mode 100755 docs/extjs/resources/themes/images/default/shared/icon-question.gif create mode 100755 docs/extjs/resources/themes/images/default/shared/icon-warning.gif create mode 100755 docs/extjs/resources/themes/images/default/shared/large-loading.gif create mode 100755 docs/extjs/resources/themes/images/default/shared/left-btn.gif create mode 100755 docs/extjs/resources/themes/images/default/shared/loading-balls.gif create mode 100755 docs/extjs/resources/themes/images/default/shared/right-btn.gif create mode 100755 docs/extjs/resources/themes/images/default/shared/shadow-c.png create mode 100755 docs/extjs/resources/themes/images/default/shared/shadow-lr.png create mode 100755 docs/extjs/resources/themes/images/default/shared/shadow.png create mode 100755 docs/extjs/resources/themes/images/default/shared/warning.gif create mode 100755 docs/extjs/resources/themes/images/default/sizer/e-handle-dark.gif create mode 100755 docs/extjs/resources/themes/images/default/sizer/e-handle.gif create mode 100755 docs/extjs/resources/themes/images/default/sizer/ne-handle-dark.gif create mode 100755 docs/extjs/resources/themes/images/default/sizer/ne-handle.gif create mode 100755 docs/extjs/resources/themes/images/default/sizer/nw-handle-dark.gif create mode 100755 docs/extjs/resources/themes/images/default/sizer/nw-handle.gif create mode 100755 docs/extjs/resources/themes/images/default/sizer/s-handle-dark.gif create mode 100755 docs/extjs/resources/themes/images/default/sizer/s-handle.gif create mode 100755 docs/extjs/resources/themes/images/default/sizer/se-handle-dark.gif create mode 100755 docs/extjs/resources/themes/images/default/sizer/se-handle.gif create mode 100755 docs/extjs/resources/themes/images/default/sizer/square.gif create mode 100755 docs/extjs/resources/themes/images/default/sizer/sw-handle-dark.gif create mode 100755 docs/extjs/resources/themes/images/default/sizer/sw-handle.gif create mode 100755 docs/extjs/resources/themes/images/default/slider/slider-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/slider/slider-bg.png create mode 100755 docs/extjs/resources/themes/images/default/slider/slider-thumb.gif create mode 100755 docs/extjs/resources/themes/images/default/slider/slider-thumb.png create mode 100755 docs/extjs/resources/themes/images/default/slider/slider-v-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/slider/slider-v-bg.png create mode 100755 docs/extjs/resources/themes/images/default/slider/slider-v-thumb.gif create mode 100755 docs/extjs/resources/themes/images/default/slider/slider-v-thumb.png create mode 100755 docs/extjs/resources/themes/images/default/tab-bar/scroll-left.gif create mode 100755 docs/extjs/resources/themes/images/default/tab-bar/scroll-right.gif create mode 100755 docs/extjs/resources/themes/images/default/tab-bar/tab-bar-default-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/tab/tab-default-bottom-active-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/tab/tab-default-bottom-active-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/tab/tab-default-bottom-active-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/tab/tab-default-bottom-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/tab/tab-default-bottom-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/tab/tab-default-bottom-disabled-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/tab/tab-default-bottom-disabled-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/tab/tab-default-bottom-disabled-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/tab/tab-default-bottom-over-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/tab/tab-default-bottom-over-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/tab/tab-default-bottom-over-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/tab/tab-default-bottom-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/tab/tab-default-close.gif create mode 100755 docs/extjs/resources/themes/images/default/tab/tab-default-top-active-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/tab/tab-default-top-active-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/tab/tab-default-top-active-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/tab/tab-default-top-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/tab/tab-default-top-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/tab/tab-default-top-disabled-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/tab/tab-default-top-disabled-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/tab/tab-default-top-disabled-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/tab/tab-default-top-over-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/tab/tab-default-top-over-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/tab/tab-default-top-over-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/tab/tab-default-top-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/tip/tip-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/tip/tip-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/toolbar/more.gif create mode 100755 docs/extjs/resources/themes/images/default/toolbar/scroll-left.gif create mode 100755 docs/extjs/resources/themes/images/default/toolbar/scroll-right.gif create mode 100755 docs/extjs/resources/themes/images/default/toolbar/toolbar-default-bg.gif create mode 100755 docs/extjs/resources/themes/images/default/tools/tool-sprite-tpl.gif create mode 100755 docs/extjs/resources/themes/images/default/tools/tool-sprites.gif create mode 100755 docs/extjs/resources/themes/images/default/tools/tools-sprites-trans.gif create mode 100755 docs/extjs/resources/themes/images/default/tree/arrows.gif create mode 100755 docs/extjs/resources/themes/images/default/tree/drop-above.gif create mode 100755 docs/extjs/resources/themes/images/default/tree/drop-add.gif create mode 100755 docs/extjs/resources/themes/images/default/tree/drop-append.gif create mode 100755 docs/extjs/resources/themes/images/default/tree/drop-below.gif create mode 100755 docs/extjs/resources/themes/images/default/tree/drop-between.gif create mode 100755 docs/extjs/resources/themes/images/default/tree/drop-no.gif create mode 100755 docs/extjs/resources/themes/images/default/tree/drop-over.gif create mode 100755 docs/extjs/resources/themes/images/default/tree/drop-under.gif create mode 100755 docs/extjs/resources/themes/images/default/tree/drop-yes.gif create mode 100755 docs/extjs/resources/themes/images/default/tree/elbow-end-minus-nl.gif create mode 100755 docs/extjs/resources/themes/images/default/tree/elbow-end-minus.gif create mode 100755 docs/extjs/resources/themes/images/default/tree/elbow-end-plus-nl.gif create mode 100755 docs/extjs/resources/themes/images/default/tree/elbow-end-plus.gif create mode 100755 docs/extjs/resources/themes/images/default/tree/elbow-end.gif create mode 100755 docs/extjs/resources/themes/images/default/tree/elbow-line.gif create mode 100755 docs/extjs/resources/themes/images/default/tree/elbow-minus-nl.gif create mode 100755 docs/extjs/resources/themes/images/default/tree/elbow-minus.gif create mode 100755 docs/extjs/resources/themes/images/default/tree/elbow-plus-nl.gif create mode 100755 docs/extjs/resources/themes/images/default/tree/elbow-plus.gif create mode 100755 docs/extjs/resources/themes/images/default/tree/elbow.gif create mode 100755 docs/extjs/resources/themes/images/default/tree/folder-open.gif create mode 100755 docs/extjs/resources/themes/images/default/tree/folder.gif create mode 100755 docs/extjs/resources/themes/images/default/tree/leaf.gif create mode 100755 docs/extjs/resources/themes/images/default/tree/loading.gif create mode 100755 docs/extjs/resources/themes/images/default/tree/s.gif create mode 100755 docs/extjs/resources/themes/images/default/util/splitter/mini-bottom.gif create mode 100755 docs/extjs/resources/themes/images/default/util/splitter/mini-left.gif create mode 100755 docs/extjs/resources/themes/images/default/util/splitter/mini-right.gif create mode 100755 docs/extjs/resources/themes/images/default/util/splitter/mini-top.gif create mode 100755 docs/extjs/resources/themes/images/default/window-header/window-header-default-bottom-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/window-header/window-header-default-bottom-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/window-header/window-header-default-collapsed-bottom-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/window-header/window-header-default-collapsed-bottom-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/window-header/window-header-default-collapsed-left-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/window-header/window-header-default-collapsed-left-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/window-header/window-header-default-collapsed-right-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/window-header/window-header-default-collapsed-right-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/window-header/window-header-default-collapsed-top-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/window-header/window-header-default-collapsed-top-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/window-header/window-header-default-left-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/window-header/window-header-default-left-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/window-header/window-header-default-right-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/window-header/window-header-default-right-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/window-header/window-header-default-top-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/window-header/window-header-default-top-sides.gif create mode 100755 docs/extjs/resources/themes/images/default/window/window-default-corners.gif create mode 100755 docs/extjs/resources/themes/images/default/window/window-default-sides.gif create mode 100644 docs/favicon.ico delete mode 100644 docs/frame.html create mode 100644 docs/output/Frame.js create mode 100644 docs/output/Stomp.js create mode 100644 docs/output/StompLogger.js create mode 100644 docs/output/StompUtils.js create mode 100644 docs/resources/css/app-851b66f18114a2a31d488e9c8d7cb964.css create mode 100644 docs/resources/css/reset.css create mode 100644 docs/resources/css/scrollbars.css create mode 100644 docs/resources/css/welcome.css create mode 100644 docs/resources/css/welcome_ie6.css create mode 100644 docs/resources/images/ajax-loader.gif create mode 100644 docs/resources/images/arrows.png create mode 100644 docs/resources/images/class-m.png create mode 100644 docs/resources/images/comment-bubble.png create mode 100644 docs/resources/images/comment.png create mode 100644 docs/resources/images/component-m.png create mode 100644 docs/resources/images/default-guide.png create mode 100644 docs/resources/images/doc-m.png create mode 100644 docs/resources/images/down-arr.png create mode 100644 docs/resources/images/elbow-end.gif create mode 100644 docs/resources/images/example-icons.png create mode 100644 docs/resources/images/expandcollapse.png create mode 100644 docs/resources/images/gettingstarted.jpg create mode 100644 docs/resources/images/group-expand-sprite.gif create mode 100644 docs/resources/images/guide-icon.png create mode 100644 docs/resources/images/guides.png create mode 100644 docs/resources/images/header.png create mode 100644 docs/resources/images/hero-extjs4-alt.png create mode 100644 docs/resources/images/icons.png create mode 100644 docs/resources/images/link-arrow-next.png create mode 100644 docs/resources/images/link-green-standard-over.png create mode 100644 docs/resources/images/link-green-standard.png create mode 100644 docs/resources/images/loading.gif create mode 100644 docs/resources/images/logo-screen-noglow.png create mode 100644 docs/resources/images/logo.png create mode 100644 docs/resources/images/member-collapsed.gif create mode 100644 docs/resources/images/member-expanded.gif create mode 100644 docs/resources/images/member-hover.gif create mode 100644 docs/resources/images/more.png create mode 100644 docs/resources/images/phone-l.jpg create mode 100644 docs/resources/images/phone-p.jpg create mode 100644 docs/resources/images/phone-small-l.jpg create mode 100644 docs/resources/images/phone-small-p.jpg create mode 100644 docs/resources/images/preview.png create mode 100644 docs/resources/images/print.png create mode 100644 docs/resources/images/sample-over.gif create mode 100644 docs/resources/images/search-box.png create mode 100644 docs/resources/images/sencha-stamp.png create mode 100644 docs/resources/images/singleton-m.png create mode 100644 docs/resources/images/tablet-l.jpg create mode 100644 docs/resources/images/tablet-p.jpg create mode 100644 docs/resources/images/tabs.png create mode 100644 docs/resources/images/text-bg.gif create mode 100644 docs/resources/images/version-tabs.png create mode 100644 docs/resources/images/vote-arrows.png create mode 100644 docs/resources/images/welcome-bg-js4.gif create mode 100644 docs/resources/images/x.png create mode 100644 docs/resources/images/x12.png create mode 100644 docs/resources/images/x122.png create mode 100644 docs/resources/prettify/prettify.css create mode 100644 docs/resources/prettify/prettify.js delete mode 100644 docs/rocco.css create mode 100644 docs/source/frame.html create mode 100644 docs/source/stomp.html create mode 100644 docs/source/stomp.logger.html create mode 100644 docs/source/stomp.utils.html delete mode 100644 docs/stomp-exceptions.html delete mode 100644 docs/stomp-utils.html delete mode 100644 docs/stomp.html create mode 100644 examples/app.js delete mode 100755 examples/stomp-consumer.js create mode 100644 examples/stomp-examples.js delete mode 100755 examples/stomp-producer-txn.js delete mode 100755 examples/stomp-producer.js create mode 100644 jsduckCategories.json create mode 100644 jsduckConfig.json delete mode 100644 lib/stomp-exceptions.js delete mode 100644 lib/stomp-utils.js create mode 100644 lib/stomp.logger.js create mode 100644 lib/stomp.utils.js create mode 100644 test/stomp.Integration.Tests.js create mode 100644 test/stomp.utils.Unit.Tests.js delete mode 100644 test/test-frame.js diff --git a/.gitignore b/.gitignore index 9f11b75..637d92c 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ .idea/ +node_modules/ \ No newline at end of file diff --git a/.jshintignore b/.jshintignore new file mode 100644 index 0000000..677def8 --- /dev/null +++ b/.jshintignore @@ -0,0 +1,2 @@ +node_modules/** +docs/** diff --git a/.jshintrc b/.jshintrc new file mode 100644 index 0000000..e0bf894 --- /dev/null +++ b/.jshintrc @@ -0,0 +1,96 @@ +{ + // JSHint Default Configuration File (as on JSHint website) + // See http://jshint.com/docs/ for more details + + "maxerr" : 50, // {int} Maximum error before stopping + + // Enforcing + "bitwise" : true, // true: Prohibit bitwise operators (&, |, ^, etc.) + "camelcase" : false, // true: Identifiers must be in camelCase + "curly" : true, // true: Require {} for every new block or scope + "eqeqeq" : true, // true: Require triple equals (===) for comparison + "forin" : true, // true: Require filtering for..in loops with obj.hasOwnProperty() + "immed" : false, // true: Require immediate invocations to be wrapped in parens e.g. `(function () { } ());` + "indent" : 4, // {int} Number of spaces to use for indentation + "latedef" : true, // true: Require variables/functions to be defined before being used; (DEFAULT:false) + "newcap" : false, // true: Require capitalization of all constructor functions e.g. `new F()` + "noarg" : true, // true: Prohibit use of `arguments.caller` and `arguments.callee` + "noempty" : false, // true: Prohibit use of empty blocks; (DEFAULT:true) + "nonew" : false, // true: Prohibit use of constructors for side-effects (without assignment) + "plusplus" : false, // true: Prohibit use of `++` & `--` + "quotmark" : false, // Quotation mark consistency: + // false : do nothing (default) + // true : ensure whatever is used is consistent + // "single" : require single quotes + // "double" : require double quotes + "undef" : true, // true: Require all non-global variables to be declared (prevents global leaks) + "unused" : false, // true: Require all defined variables be used (DEFAULT:true) + "strict" : true, // true: Requires all functions run in ES5 Strict Mode + "trailing" : false, // true: Prohibit trailing whitespaces + "maxparams" : false, // {int} Max number of formal params allowed per function + "maxdepth" : false, // {int} Max depth of nested blocks (within functions) + "maxstatements" : false, // {int} Max number statements per function + "maxcomplexity" : false, // {int} Max cyclomatic complexity per function + "maxlen" : false, // {int} Max number of characters per line + + // Relaxing + "asi" : false, // true: Tolerate Automatic Semicolon Insertion (no semicolons) + "boss" : false, // true: Tolerate assignments where comparisons would be expected + "debug" : false, // true: Allow debugger statements e.g. browser breakpoints. + "eqnull" : false, // true: Tolerate use of `== null` + "es5" : false, // true: Allow ES5 syntax (ex: getters and setters) + "esnext" : false, // true: Allow ES.next (ES6) syntax (ex: `const`) + "evil" : false, // true: Tolerate use of `eval` and `new Function()` + "expr" : true, // true: Tolerate `ExpressionStatement` as Programs (had to switch to true for sinon chai statments...calledOnce) + "funcscope" : false, // true: Tolerate defining variables inside control statements" + "globalstrict" : false, // true: Allow global "use strict" (also enables 'strict') + "iterator" : false, // true: Tolerate using the `__iterator__` property + "lastsemic" : false, // true: Tolerate omitting a semicolon for the last statement of a 1-line block + "laxbreak" : false, // true: Tolerate possibly unsafe line breakings + "laxcomma" : false, // true: Tolerate comma-first style coding + "loopfunc" : true, // true: Tolerate functions being defined in loops (DEFAULT:false) + "multistr" : false, // true: Tolerate multi-line strings + "proto" : false, // true: Tolerate using the `__proto__` property + "scripturl" : false, // true: Tolerate script-targeted URLs + "smarttabs" : false, // true: Tolerate mixed tabs/spaces when used for alignment + "shadow" : false, // true: Allows re-define variables later in code e.g. `var x=1; x=2;` + "sub" : false, // true: Tolerate using `[]` notation when it can still be expressed in dot notation + "supernew" : false, // true: Tolerate `new function () { ... };` and `new Object;` + "validthis" : false, // true: Tolerate using this in a non-constructor function + + // Environments + "browser" : true, // Web Browser (window, document, etc) + "couch" : false, // CouchDB + "devel" : true, // Development/debugging (alert, confirm, etc) + "dojo" : false, // Dojo Toolkit + "jquery" : true, // jQuery (DEFAULT:false) + "mootools" : false, // MooTools + "node" : true, // Node.js (DEFAULT:false) + "nonstandard" : false, // Widely adopted globals (escape, unescape, etc) + "prototypejs" : false, // Prototype and Scriptaculous + "rhino" : false, // Rhino + "worker" : false, // Web Workers + "wsh" : false, // Windows Scripting Host + "yui" : false, // Yahoo User Interface + + // Legacy + "nomen" : false, // true: Prohibit dangling `_` in variables + "onevar" : false, // true: Allow only one `var` statement per function + "passfail" : false, // true: Stop on first error + "white" : false, // true: Check against strict whitespace and indentation rules + + // Custom Globals + // additional predefined global variables + "predef" : [ + "process", + + // mocha testing + "should", + "describe", + "it", + "beforeEach", + "afterEach", + "before", + "after" + ] +} \ No newline at end of file diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..0503277 --- /dev/null +++ b/Makefile @@ -0,0 +1,40 @@ +ACTIVEMQ_HOME = "/usr/local/Cellar/activemq/5.7.0" + +start:;@ \ + echo "...starting activemq server..."; \ + pushd ${ACTIVEMQ_HOME}; \ + bin/activemq start; \ + popd; \ + echo "----------------------------------------------------------------------------------------------------------"; \ + echo "----------------------------------------------------------------------------------------------------------"; \ + echo "Started!!!"; \ + echo "...http://localhost:8161/admin to manage activemq"; \ + echo "----------------------------------------------------------------------------------------------------------"; \ + echo "----------------------------------------------------------------------------------------------------------"; \ + +stop:;@ \ + echo "----------------------------------------------------------------------------------------------------------"; \ + echo "----------------------------------------------------------------------------------------------------------"; \ + echo "...stopping activemq server..."; \ + pushd ${ACTIVEMQ_HOME}; \ + bin/activemq stop \ + popd; \ + echo "----------------------------------------------------------------------------------------------------------"; \ + echo "----------------------------------------------------------------------------------------------------------"; \ + echo "Stopped!!!"; \ + +testUnit:;@echo "Running unit tests ..."; \ + ./node_modules/.bin/mocha ./test/*.Unit.Tests.js \ + --reporter spec \ + --recursive \ + --globals "logger,events,buffertools,SlowBuffer, util" + +testInt:;@echo "Running integration tests..."; \ + ./node_modules/.bin/mocha ./test/*.Integration.Tests.js \ + --reporter spec \ + --recursive \ + --timeout 2000 \ + --globals "logger" + +jsduck:;@echo "Running jsduck to build documentation..."; \ + jsduck --config=jsduckConfig.json \ No newline at end of file diff --git a/README.md b/README.md index fc3c656..2e057cb 100644 --- a/README.md +++ b/README.md @@ -17,16 +17,39 @@ For documentation see http://benjaminws.github.com/stomp-js/ ### Consumer -See examples/stomp-consumer.js +See examples/stomp-examples.js #listener() ### Producer -See examples/stomp-producer.js +See examples/stomp-examples.js #publishMessage() ### Producer with Transaction Support -See examples/stomp-producer-txn.js +See examples/stomp-examples.js #publishMessageWithTransaction() + +### App +To run the examples app, open 5 terminal windows. + +In each window, navigate to stomp-js folder. +Make sure active mq is running (you can modify the make file start/stop) + +In a each window, run one of the following: + node examples/app --file ./stomp-examples.js --debug false -- params ListenerA + node examples/app --file ./stomp-examples.js --debug false -- params ListenerB + node examples/app --file ./stomp-examples.js --debug false -- params ListenerC + node examples/app --file ./stomp-examples.js --debug false -- params ListenerAll + node examples/app --file ./stomp-examples.js --debug false -- params Publisher + +Once you run the publisher, you should see the listeners dequeue their messages. +There are 3 A, 2 B, and 1 C message. A and C are topics so Listener All should also get a copy of those, but B is a queue so Listener B should get 1 and Listener All should get 1. +Therefore, you should see the following output: +Listener A should get 3 messages +Listener B should get 1 message +Listener C should get 1 message +Listener All should get 5 messages + ### Contributors rofflwaffls -at- gmail.com +dkhunt27 -at- gmail.com \ No newline at end of file diff --git a/docs/app-20ea5717ade2476617d0305b69058533.js b/docs/app-20ea5717ade2476617d0305b69058533.js new file mode 100644 index 0000000..32fc015 --- /dev/null +++ b/docs/app-20ea5717ade2476617d0305b69058533.js @@ -0,0 +1 @@ +var CodeMirror=(function(){function v(aN,aK){var b2={},bk=v.defaults;for(var aA in bk){if(bk.hasOwnProperty(aA)){b2[aA]=(aK&&aK.hasOwnProperty(aA)?aK:bk)[aA]}}var aE=document.createElement("div");aE.className="CodeMirror"+(b2.lineWrapping?" CodeMirror-wrap":"");aE.innerHTML='<div style="overflow: hidden; position: relative; width: 3px; height: 0px;"><textarea style="position: absolute; padding: 0; width: 1px; height: 1em" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><div class="CodeMirror-scroll" tabindex="-1"><div style="position: relative"><div style="position: relative"><div class="CodeMirror-gutter"><div class="CodeMirror-gutter-text"></div></div><div class="CodeMirror-lines"><div style="position: relative; z-index: 0"><div style="position: absolute; width: 100%; height: 0; overflow: hidden; visibility: hidden;"></div><pre class="CodeMirror-cursor"> </pre><div style="position: relative; z-index: -1"></div><div></div></div></div></div></div></div>';if(aN.appendChild){aN.appendChild(aE)}else{aN(aE)}var bY=aE.firstChild,bn=bY.firstChild,bl=aE.lastChild,bN=bl.firstChild,ch=bN.firstChild,aI=ch.firstChild,aZ=aI.firstChild,bv=aI.nextSibling.firstChild,aw=bv.firstChild,bd=aw.nextSibling,bh=bd.nextSibling,ar=bh.nextSibling;cE();if(t){bn.style.width="0px"}if(!f){bv.draggable=true}bv.style.outline="none";if(b2.tabindex!=null){bn.tabIndex=b2.tabindex}if(b2.autofocus){bA()}if(!b2.gutter&&!b2.lineNumbers){aI.style.display="none"}if(m){bY.style.height="1px",bY.style.position="absolute"}try{cu("x")}catch(b9){if(b9.message.match(/runtime/i)){b9=new Error("A CodeMirror inside a P-style element does not work in Internet Explorer. (innerHTML bug)")}throw b9}var b8=new A(),ax=new A(),cQ;var cc,cz=new i([new ai([new e("")])]),ci,ck;bU();var cX={from:{line:0,ch:0},to:{line:0,ch:0},inverted:false};var cj,br,a0,bG=0,bc,co=false,ct=false;var cq,b7,aC,cO,aQ,bg,aT,cB;var be=0,cR=0,bM=0,bO=0;var b5;var bE="",aG;var aq={};at(function(){aX(b2.value||"");cq=false})();var a9=new k();s(bl,"mousedown",at(cl));s(bl,"dblclick",at(bX));s(bv,"selectstart",U);if(!O){s(bl,"contextmenu",a2)}s(bl,"scroll",function(){bG=bl.scrollTop;ce([]);if(b2.fixedGutter){aI.style.left=bl.scrollLeft+"px"}if(b2.onScroll){b2.onScroll(ca)}});s(window,"resize",function(){ce(true)});s(bn,"keyup",at(cm));s(bn,"input",aR);s(bn,"keydown",at(cd));s(bn,"keypress",at(bo));s(bn,"focus",cV);s(bn,"blur",aF);if(b2.dragDrop){s(bv,"dragstart",aJ);function bD(c0){if(b2.onDragEvent&&b2.onDragEvent(ca,P(c0))){return}x(c0)}s(bl,"dragenter",bD);s(bl,"dragover",bD);s(bl,"drop",at(ao))}s(bl,"paste",function(){bA();aR()});s(bn,"paste",aR);s(bn,"cut",at(function(){if(!b2.readOnly){bt("")}}));if(m){s(bN,"mouseup",function(){if(document.activeElement==bn){bn.blur()}bA()})}var cx;try{cx=(document.activeElement==bn)}catch(b9){}if(cx||b2.autofocus){setTimeout(cV,20)}else{aF()}function bs(c0){return c0>=0&&c0<cz.size}var ca=aE.CodeMirror={getValue:b3,setValue:at(aX),getSelection:b4,replaceSelection:at(bt),focus:function(){window.focus();bA();cV();aR()},setOption:function(c1,c2){var c0=b2[c1];b2[c1]=c2;if(c1=="mode"||c1=="indentUnit"){bU()}else{if(c1=="readOnly"&&c2=="nocursor"){aF();bn.blur()}else{if(c1=="readOnly"&&!c2){cD(true)}else{if(c1=="theme"){cE()}else{if(c1=="lineWrapping"&&c0!=c2){at(cH)()}else{if(c1=="tabSize"){ce(true)}}}}}}if(c1=="lineNumbers"||c1=="gutter"||c1=="firstLineNumber"||c1=="theme"){bf();ce(true)}},getOption:function(c0){return b2[c0]},undo:at(cU),redo:at(cK),indentLine:at(function(c1,c0){if(typeof c0!="string"){if(c0==null){c0=b2.smartIndent?"smart":"prev"}else{c0=c0?"add":"subtract"}}if(bs(c1)){bz(c1,c0)}}),indentSelection:at(cC),historySize:function(){return{undo:a9.done.length,redo:a9.undone.length}},clearHistory:function(){a9=new k()},matchBrackets:at(function(){cf(true)}),getTokenAt:at(function(c0){c0=aU(c0);return cG(c0.line).getTokenAt(cc,cv(c0.line),c0.ch)}),getStateAfter:function(c0){c0=b0(c0==null?cz.size-1:c0);return cv(c0+1)},cursorCoords:function(c1,c0){if(c1==null){c1=cX.inverted}return this.charCoords(c1?cX.from:cX.to,c0)},charCoords:function(c1,c0){c1=aU(c1);if(c0=="local"){return cS(c1,false)}if(c0=="div"){return cS(c1,true)}return ap(c1)},coordsChar:function(c0){var c1=al(bv);return bI(c0.x-c1.left,c0.y-c1.top)},markText:at(bF),setBookmark:aV,findMarksAt:bp,setMarker:at(bW),clearMarker:at(av),setLineClass:at(bm),hideLine:at(function(c0){return cL(c0,true)}),showLine:at(function(c0){return cL(c0,false)}),onDeleteLine:function(c0,c1){if(typeof c0=="number"){if(!bs(c0)){return null}c0=cG(c0)}(c0.handlers||(c0.handlers=[])).push(c1);return c0},lineInfo:aW,addWidget:function(c4,c2,c6,c3,c8){c4=cS(aU(c4));var c5=c4.yBot,c1=c4.x;c2.style.position="absolute";bN.appendChild(c2);if(c3=="over"){c5=c4.y}else{if(c3=="near"){var c0=Math.max(bl.offsetHeight,cz.height*bQ()),c7=Math.max(bN.clientWidth,bv.clientWidth)-a6();if(c4.yBot+c2.offsetHeight>c0&&c4.y>c2.offsetHeight){c5=c4.y-c2.offsetHeight}if(c1+c2.offsetWidth>c7){c1=c7-c2.offsetWidth}}}c2.style.top=(c5+cs())+"px";c2.style.left=c2.style.right="";if(c8=="right"){c1=bN.clientWidth-c2.offsetWidth;c2.style.right="0px"}else{if(c8=="left"){c1=0}else{if(c8=="middle"){c1=(bN.clientWidth-c2.offsetWidth)/2}}c2.style.left=(c1+a6())+"px"}if(c6){aB(c1,c5,c1+c2.offsetWidth,c5+c2.offsetHeight)}},lineCount:function(){return cz.size},clipPos:aU,getCursor:function(c0){if(c0==null){c0=cX.inverted}return ab(c0?cX.from:cX.to)},somethingSelected:function(){return !ae(cX.from,cX.to)},setCursor:at(function(c0,c2,c1){if(c2==null&&typeof c0.line=="number"){a7(c0.line,c0.ch,c1)}else{a7(c0,c2,c1)}}),setSelection:at(function(c2,c1,c0){(c0?by:bx)(aU(c2),aU(c1||c2))}),getLine:function(c0){if(bs(c0)){return cG(c0).text}},getLineHandle:function(c0){if(bs(c0)){return cG(c0)}},setLine:at(function(c0,c1){if(bs(c0)){bR(c1,{line:c0,ch:0},{line:c0,ch:cG(c0).text.length})}}),removeLine:at(function(c0){if(bs(c0)){bR("",{line:c0,ch:0},aU({line:c0+1,ch:0}))}}),replaceRange:at(bR),getRange:function(c1,c0){return cP(aU(c1),aU(c0))},triggerOnKeyDown:at(cd),execCommand:function(c0){return M[c0](ca)},moveH:at(cF),deleteH:at(cn),moveV:at(cy),toggleOverwrite:function(){if(co){co=false;bd.className=bd.className.replace(" CodeMirror-overwrite","")}else{co=true;bd.className+=" CodeMirror-overwrite"}},posFromIndex:function(c1){var c2=0,c0;cz.iter(0,cz.size,function(c3){var c4=c3.text.length+1;if(c4>c1){c0=c1;return true}c1-=c4;++c2});return aU({line:c2,ch:c0})},indexFromPos:function(c1){if(c1.line<0||c1.ch<0){return 0}var c0=c1.ch;cz.iter(0,c1.line,function(c2){c0+=c2.text.length+1});return c0},scrollTo:function(c0,c1){if(c0!=null){bl.scrollLeft=c0}if(c1!=null){bl.scrollTop=c1}ce([])},operation:function(c0){return at(c0)()},compoundChange:function(c0){return bP(c0)},refresh:function(){ce(true);if(bl.scrollHeight>bG){bl.scrollTop=bG}},getInputField:function(){return bn},getWrapperElement:function(){return aE},getScrollerElement:function(){return bl},getGutterElement:function(){return aI}};function cG(c0){return D(cz,c0)}function a4(c1,c0){aT=true;var c2=c0-c1.height;for(var c3=c1;c3;c3=c3.parent){c3.height+=c2}}function aX(c0){var c1={line:0,ch:0};aP(c1,{line:cz.size-1,ch:cG(cz.size-1).text.length},B(c0),c1,c1);cq=true}function b3(){var c0=[];cz.iter(0,cz.size,function(c1){c0.push(c1.text)});return c0.join("\n")}function cl(c9){a5(z(c9,"shiftKey"));for(var c4=j(c9);c4!=aE;c4=c4.parentNode){if(c4.parentNode==bN&&c4!=ch){return}}for(var c4=j(c9);c4!=aE;c4=c4.parentNode){if(c4.parentNode==aZ){if(b2.onGutterClick){b2.onGutterClick(ca,r(aZ.childNodes,c4)+cR,c9)}return U(c9)}}var c0=a3(c9);switch(y(c9)){case 3:if(O&&!N){a2(c9)}return;case 2:if(c0){a7(c0.line,c0.ch,true)}return}if(!c0){if(j(c9)==bl){U(c9)}return}if(!ck){cV()}var c1=+new Date;if(a0&&a0.time>c1-400&&ae(a0.pos,c0)){U(c9);setTimeout(bA,20);return aL(c0.line)}else{if(br&&br.time>c1-400&&ae(br.pos,c0)){a0={time:c1,pos:c0};U(c9);return bJ(c0)}else{br={time:c1,pos:c0}}}var db=c0,c2;if(b2.dragDrop&&G&&!b2.readOnly&&!ae(cX.from,cX.to)&&!aa(c0,cX.from)&&!aa(cX.to,c0)){if(f){bv.draggable=true}function c5(dc){if(f){bv.draggable=false}bc=false;c8();c3();if(Math.abs(c9.clientX-dc.clientX)+Math.abs(c9.clientY-dc.clientY)<10){U(dc);a7(c0.line,c0.ch,true);bA()}}var c8=s(document,"mouseup",at(c5),true);var c3=s(bl,"drop",at(c5),true);bc=true;if(bv.dragDrop){bv.dragDrop()}return}U(c9);a7(c0.line,c0.ch,true);function da(dc){var de=a3(dc,true);if(de&&!ae(de,db)){if(!ck){cV()}db=de;by(c0,de);cq=false;var dd=bB();if(de.line>=dd.to||de.line<dd.from){c2=setTimeout(at(function(){da(dc)}),150)}}}function c7(dc){clearTimeout(c2);var dd=a3(dc);if(dd){by(c0,dd)}U(dc);bA();cq=true;c6();c8()}var c6=s(document,"mousemove",at(function(dc){clearTimeout(c2);U(dc);if(!J&&!y(dc)){c7(dc)}else{da(dc)}}),true);var c8=s(document,"mouseup",at(c7),true)}function bX(c0){for(var c2=j(c0);c2!=aE;c2=c2.parentNode){if(c2.parentNode==aZ){return U(c0)}}var c1=a3(c0);if(!c1){return}a0={time:+new Date,pos:c1};U(c0);bJ(c1)}function ao(c4){if(b2.onDragEvent&&b2.onDragEvent(ca,P(c4))){return}c4.preventDefault();var c7=a3(c4,true),c1=c4.dataTransfer.files;if(!c7||b2.readOnly){return}if(c1&&c1.length&&window.FileReader&&window.File){function c3(da,c9){var c8=new FileReader;c8.onload=function(){c5[c9]=c8.result;if(++c2==c6){c7=aU(c7);at(function(){var db=bR(c5.join(""),c7,c7);by(c7,db)})()}};c8.readAsText(da)}var c6=c1.length,c5=Array(c6),c2=0;for(var c0=0;c0<c6;++c0){c3(c1[c0],c0)}}else{try{var c5=c4.dataTransfer.getData("Text");if(c5){bP(function(){var c9=cX.from,c8=cX.to;by(c7,c7);if(bc){bR("",c9,c8)}bt(c5);bA()})}}catch(c4){}}}function aJ(c2){var c0=b4();c2.dataTransfer.setData("Text",c0);if(O||ag){var c1=document.createElement("img");c1.scr="data:image/gif;base64,R0lGODdhAgACAIAAAAAAAP///ywAAAAAAgACAAACAoRRADs=";c2.dataTransfer.setDragImage(c1,0,0)}}function bj(c2,c0){if(typeof c2=="string"){c2=M[c2];if(!c2){return false}}var c1=cj;try{if(b2.readOnly){ct=true}if(c0){cj=null}c2(ca)}catch(c3){if(c3!=ac){throw c3}return false}finally{cj=c1;ct=false}return true}function cM(c6){var c0=c(b2.keyMap),c3=c0.auto;clearTimeout(bC);if(c3&&!R(c6)){bC=setTimeout(function(){if(c(b2.keyMap)==c0){b2.keyMap=(c3.call?c3.call(null,ca):c3)}},50)}var c1=S[z(c6,"keyCode")],c5=false;if(c1==null||c6.altGraphKey){return false}if(z(c6,"altKey")){c1="Alt-"+c1}if(z(c6,"ctrlKey")){c1="Ctrl-"+c1}if(z(c6,"metaKey")){c1="Cmd-"+c1}var c4=false;function c2(){c4=true}if(z(c6,"shiftKey")){c5=l("Shift-"+c1,b2.extraKeys,b2.keyMap,function(c7){return bj(c7,true)},c2)||l(c1,b2.extraKeys,b2.keyMap,function(c7){if(typeof c7=="string"&&/^go[A-Z]/.test(c7)){return bj(c7)}},c2)}else{c5=l(c1,b2.extraKeys,b2.keyMap,bj,c2)}if(c4){c5=false}if(c5){U(c6);if(J){c6.oldKeyCode=c6.keyCode;c6.keyCode=0}}return c5}function bZ(c2,c0){var c1=l("'"+c0+"'",b2.extraKeys,b2.keyMap,function(c3){return bj(c3,true)});if(c1){U(c2)}return c1}var cJ=null,bC;function cd(c2){if(!ck){cV()}if(J&&c2.keyCode==27){c2.returnValue=false}if(bu){if(bL()){bu=false}}if(b2.onKeyEvent&&b2.onKeyEvent(ca,P(c2))){return}var c0=z(c2,"keyCode");a5(c0==16||z(c2,"shiftKey"));var c1=cM(c2);if(window.opera){cJ=c1?c0:null;if(!c1&&c0==88&&z(c2,N?"metaKey":"ctrlKey")){bt("")}}}function bo(c3){if(bu){bL()}if(b2.onKeyEvent&&b2.onKeyEvent(ca,P(c3))){return}var c2=z(c3,"keyCode"),c0=z(c3,"charCode");if(window.opera&&c2==cJ){cJ=null;U(c3);return}if(((window.opera&&!c3.which)||m)&&cM(c3)){return}var c1=String.fromCharCode(c0==null?c2:c0);if(b2.electricChars&&cc.electricChars&&b2.smartIndent&&!b2.readOnly){if(cc.electricChars.indexOf(c1)>-1){setTimeout(at(function(){bz(cX.to.line,"smart")}),75)}}if(bZ(c3,c1)){return}aR()}function cm(c0){if(b2.onKeyEvent&&b2.onKeyEvent(ca,P(c0))){return}if(z(c0,"keyCode")==16){cj=null}}function cV(){if(b2.readOnly=="nocursor"){return}if(!ck){if(b2.onFocus){b2.onFocus(ca)}ck=true;if(aE.className.search(/\bCodeMirror-focused\b/)==-1){aE.className+=" CodeMirror-focused"}if(!bg){cD(true)}}an();cN()}function aF(){if(ck){if(b2.onBlur){b2.onBlur(ca)}ck=false;if(b5){at(function(){if(b5){b5();b5=null}})()}aE.className=aE.className.replace(" CodeMirror-focused","")}clearInterval(cQ);setTimeout(function(){if(!ck){cj=null}},150)}function aP(c5,c4,c3,c1,c0){if(ct){return}if(a9){var c2=[];cz.iter(c5.line,c4.line+1,function(c6){c2.push(c6.text)});a9.addChange(c5.line,c3.length,c2);while(a9.done.length>b2.undoDepth){a9.done.shift()}}au(c5,c4,c3,c1,c0)}function cb(c5,c6){if(!c5.length){return}var c7=c5.pop(),c1=[];for(var c2=c7.length-1;c2>=0;c2-=1){var c4=c7[c2];var c8=[],c0=c4.start+c4.added;cz.iter(c4.start,c0,function(c9){c8.push(c9.text)});c1.push({start:c4.start,added:c4.old.length,old:c8});var c3=aU({line:c4.start+c4.old.length-1,ch:X(c8[c8.length-1],c4.old[c4.old.length-1])});au({line:c4.start,ch:0},{line:c0-1,ch:cG(c0-1).text.length},c4.old,c3,c3)}cq=true;c6.push(c1)}function cU(){cb(a9.done,a9.undone)}function cK(){cb(a9.undone,a9.done)}function au(df,c4,dl,c0,dm){if(ct){return}var dk=false,c3=bE.length;if(!b2.lineWrapping){cz.iter(df.line,c4.line+1,function(dn){if(dn.text.length==c3){dk=true;return true}})}if(df.line!=c4.line||dl.length>1){aT=true}var dc=c4.line-df.line,db=cG(df.line),c1=cG(c4.line);if(df.ch==0&&c4.ch==0&&dl[dl.length-1]==""){var c9=[],da=null;if(df.line){da=cG(df.line-1);da.fixMarkEnds(c1)}else{c1.fixMarkStarts()}for(var dh=0,dj=dl.length-1;dh<dj;++dh){c9.push(e.inheritMarks(dl[dh],da))}if(dc){cz.remove(df.line,dc,cB)}if(c9.length){cz.insert(df.line,c9)}}else{if(db==c1){if(dl.length==1){db.replace(df.ch,c4.ch,dl[0])}else{c1=db.split(c4.ch,dl[dl.length-1]);db.replace(df.ch,null,dl[0]);db.fixMarkEnds(c1);var c9=[];for(var dh=1,dj=dl.length-1;dh<dj;++dh){c9.push(e.inheritMarks(dl[dh],db))}c9.push(c1);cz.insert(df.line+1,c9)}}else{if(dl.length==1){db.replace(df.ch,null,dl[0]);c1.replace(null,c4.ch,"");db.append(c1);cz.remove(df.line+1,dc,cB)}else{var c9=[];db.replace(df.ch,null,dl[0]);c1.replace(null,c4.ch,dl[dl.length-1]);db.fixMarkEnds(c1);for(var dh=1,dj=dl.length-1;dh<dj;++dh){c9.push(e.inheritMarks(dl[dh],db))}if(dc>1){cz.remove(df.line+1,dc-1,cB)}cz.insert(df.line+1,c9)}}}if(b2.lineWrapping){var c6=Math.max(5,bl.clientWidth/bi()-3);cz.iter(df.line,df.line+dl.length,function(dn){if(dn.hidden){return}var dp=Math.ceil(dn.text.length/c6)||1;if(dp!=dn.height){a4(dn,dp)}})}else{cz.iter(df.line,df.line+dl.length,function(dp){var dn=dp.text;if(dn.length>c3){bE=dn;c3=dn.length;aG=null;dk=false}});if(dk){c3=0;bE="";aG=null;cz.iter(0,cz.size,function(dp){var dn=dp.text;if(dn.length>c3){c3=dn.length;bE=dn}})}}var c2=[],c8=dl.length-dc-1;for(var dh=0,de=ci.length;dh<de;++dh){var di=ci[dh];if(di<df.line){c2.push(di)}else{if(di>c4.line){c2.push(di+c8)}}}var dg=df.line+Math.min(dl.length,500);cI(df.line,dg);c2.push(dg);ci=c2;bH(100);aC.push({from:df.line,to:c4.line+1,diff:c8});var c7={from:df,to:c4,text:dl};if(cO){for(var c5=cO;c5.next;c5=c5.next){}c5.next=c7}else{cO=c7}function dd(dn){return dn<=Math.min(c4.line,c4.line+c8)?dn:dn+c8}bx(c0,dm,dd(cX.from.line),dd(cX.to.line));if(bl.clientHeight){bN.style.height=(cz.height*bQ()+2*cs())+"px"}}function bR(c1,c4,c3){c4=aU(c4);if(!c3){c3=c4}else{c3=aU(c3)}c1=B(c1);function c2(c7){if(aa(c7,c4)){return c7}if(!aa(c3,c7)){return c0}var c5=c7.line+c1.length-(c3.line-c4.line)-1;var c6=c7.ch;if(c7.line==c3.line){c6+=c1[c1.length-1].length-(c3.ch-(c3.line==c4.line?c4.ch:0))}return{line:c5,ch:c6}}var c0;aD(c1,c4,c3,function(c5){c0=c5;return{from:c2(cX.from),to:c2(cX.to)}});return c0}function bt(c0,c1){aD(B(c0),cX.from,cX.to,function(c2){if(c1=="end"){return{from:c2,to:c2}}else{if(c1=="start"){return{from:cX.from,to:cX.from}}else{return{from:cX.from,to:c2}}}})}function aD(c3,c5,c4,c0){var c2=c3.length==1?c3[0].length+c5.ch:c3[c3.length-1].length;var c1=c0({line:c5.line+c3.length-1,ch:c2});aP(c5,c4,c3,c1.from,c1.to)}function cP(c4,c3){var c1=c4.line,c0=c3.line;if(c1==c0){return cG(c1).text.slice(c4.ch,c3.ch)}var c2=[cG(c1).text.slice(c4.ch)];cz.iter(c1+1,c0,function(c5){c2.push(c5.text)});c2.push(cG(c0).text.slice(0,c3.ch));return c2.join("\n")}function b4(){return cP(cX.from,cX.to)}var bu=false;function an(){if(bu){return}b8.set(b2.pollInterval,function(){aO();bL();if(ck){an()}az()})}function aR(){var c0=false;bu=true;function c1(){aO();var c2=bL();if(!c2&&!c0){c0=true;b8.set(60,c1)}else{bu=false;an()}az()}b8.set(20,c1)}var bb="";function bL(){if(bg||!ck||af(bn)||b2.readOnly){return false}var c1=bn.value;if(c1==bb){return false}cj=null;var c2=0,c0=Math.min(bb.length,c1.length);while(c2<c0&&bb[c2]==c1[c2]){++c2}if(c2<bb.length){cX.from={line:cX.from.line,ch:cX.from.ch-(bb.length-c2)}}else{if(co&&ae(cX.from,cX.to)){cX.to={line:cX.to.line,ch:Math.min(cG(cX.to.line).text.length,cX.to.ch+(c1.length-c2))}}}bt(c1.slice(c2),"end");bb=c1;return true}function cD(c0){if(!ae(cX.from,cX.to)){bb="";bn.value=b4();a(bn)}else{if(c0){bb=bn.value=""}}}function bA(){if(b2.readOnly!="nocursor"){bn.focus()}}function cZ(){if(!bd.getBoundingClientRect){return}var c0=bd.getBoundingClientRect();if(J&&c0.top==c0.bottom){return}var c1=window.innerHeight||Math.max(document.body.offsetHeight,document.documentElement.offsetHeight);if(c0.top<0||c0.bottom>c1){bd.scrollIntoView()}}function cg(){var c1=cS(cX.inverted?cX.from:cX.to);var c0=b2.lineWrapping?Math.min(c1.x,bv.offsetWidth):c1.x;return aB(c0,c1.y,c0,c1.yBot)}function aB(c2,c8,c0,c7){var c5=a6(),dd=cs();c8+=dd;c7+=dd;c2+=c5;c0+=c5;var da=bl.clientHeight,c3=bl.scrollTop,c1=false,dc=true;if(c8<c3){bl.scrollTop=Math.max(0,c8);c1=true}else{if(c7>c3+da){bl.scrollTop=c7-da;c1=true}}var c9=bl.clientWidth,db=bl.scrollLeft;var c6=b2.fixedGutter?aI.clientWidth:0;var c4=c2<c6+c5+10;if(c2<db+c6||c4){if(c4){c2=0}bl.scrollLeft=Math.max(0,c2-10-c6);c1=true}else{if(c0>c9+db-3){bl.scrollLeft=c0+10-c9;c1=true;if(c0>bN.clientWidth){dc=false}}}if(c1&&b2.onScroll){b2.onScroll(ca)}return dc}function bB(){var c0=bQ(),c3=bl.scrollTop-cs();var c2=Math.max(0,Math.floor(c3/c0));var c1=Math.ceil((c3+bl.clientHeight)/c0);return{from:Y(cz,c2),to:Y(cz,c1)}}function ce(c8,c4){if(!bl.clientWidth){cR=bM=be=0;return}var c3=bB();if(c8!==true&&c8.length==0&&c3.from>cR&&c3.to<bM){return}var c9=Math.max(c3.from-100,0),da=Math.min(cz.size,c3.to+100);if(cR<c9&&c9-cR<20){c9=cR}if(bM>da&&bM-da<20){da=Math.min(cz.size,bM)}var dc=c8===true?[]:b1([{from:cR,to:bM,domStart:0}],c8);var c7=0;for(var c5=0;c5<dc.length;++c5){var c6=dc[c5];if(c6.from<c9){c6.domStart+=(c9-c6.from);c6.from=c9}if(c6.to>da){c6.to=da}if(c6.from>=c6.to){dc.splice(c5--,1)}else{c7+=c6.to-c6.from}}if(c7==da-c9&&c9==cR&&da==bM){return}dc.sort(function(de,dd){return de.domStart-dd.domStart});var c2=bQ(),c0=aI.style.display;ar.style.display="none";aS(c9,da,dc);ar.style.display=aI.style.display="";var c1=c9!=cR||da!=bM||bO!=bl.clientHeight+c2;if(c1){bO=bl.clientHeight+c2}cR=c9;bM=da;be=g(cz,c9);ch.style.top=(be*c2)+"px";if(bl.clientHeight){bN.style.height=(cz.height*c2+2*cs())+"px"}if(ar.childNodes.length!=bM-cR){throw new Error("BAD PATCH! "+JSON.stringify(dc)+" size="+(bM-cR)+" nodes="+ar.childNodes.length)}function db(){aG=bl.clientWidth;var de=ar.firstChild,dd=false;cz.iter(cR,bM,function(dg){if(!dg.hidden){var df=Math.round(de.offsetHeight/c2)||1;if(dg.height!=df){a4(dg,df);aT=dd=true}}de=de.nextSibling});if(dd){bN.style.height=(cz.height*c2+2*cs())+"px"}return dd}if(b2.lineWrapping){db()}else{if(aG==null){aG=cu(bE)}if(aG>bl.clientWidth){bv.style.width=aG+"px";bN.style.width="";bN.style.width=bl.scrollWidth+"px"}else{bv.style.width=bN.style.width=""}}aI.style.display=c0;if(c1||aT){aM()&&b2.lineWrapping&&db()&&aM()}cW();if(!c4&&b2.onUpdate){b2.onUpdate(ca)}return true}function b1(c9,c7){for(var c4=0,c2=c7.length||0;c4<c2;++c4){var c6=c7[c4],c0=[],c8=c6.diff||0;for(var c3=0,c1=c9.length;c3<c1;++c3){var c5=c9[c3];if(c6.to<=c5.from&&c6.diff){c0.push({from:c5.from+c8,to:c5.to+c8,domStart:c5.domStart})}else{if(c6.to<=c5.from||c6.from>=c5.to){c0.push(c5)}else{if(c6.from>c5.from){c0.push({from:c5.from,to:c6.from,domStart:c5.domStart})}if(c6.to<c5.to){c0.push({from:c6.to+c8,to:c5.to+c8,domStart:c5.domStart+(c6.to-c5.from)})}}}}c9=c0}return c9}function aS(c9,da,dc){if(!dc.length){ar.innerHTML=""}else{function c0(de){var dd=de.nextSibling;de.parentNode.removeChild(de);return dd}var c4=0,c2=ar.firstChild,c1;for(var c5=0;c5<dc.length;++c5){var db=dc[c5];while(db.domStart>c4){c2=c0(c2);c4++}for(var c3=0,c7=db.to-db.from;c3<c7;++c3){c2=c2.nextSibling;c4++}}while(c2){c2=c0(c2)}}var c6=dc.shift(),c2=ar.firstChild,c3=c9;var c8=document.createElement("div");cz.iter(c9,da,function(dd){if(c6&&c6.to==c3){c6=dc.shift()}if(!c6||c6.from>c3){if(dd.hidden){var de=c8.innerHTML="<pre></pre>"}else{var de="<pre"+(dd.className?' class="'+dd.className+'"':"")+">"+dd.getHTML(ba)+"</pre>";if(dd.bgClassName){de='<div style="position: relative"><pre class="'+dd.bgClassName+'" style="position: absolute; left: 0; right: 0; top: 0; bottom: 0; z-index: -2"> </pre>'+de+"</div>"}}c8.innerHTML=de;ar.insertBefore(c8.firstChild,c2)}else{c2=c2.nextSibling}++c3})}function aM(){if(!b2.gutter&&!b2.lineNumbers){return}var c1=ch.offsetHeight,c9=bl.clientHeight;aI.style.height=(c1-c9<2?c9:c1)+"px";var c7=[],c5=cR,c8;cz.iter(cR,Math.max(bM,cR+1),function(db){if(db.hidden){c7.push("<pre></pre>")}else{var da=db.gutterMarker;var dd=b2.lineNumbers?c5+b2.firstLineNumber:null;if(da&&da.text){dd=da.text.replace("%N%",dd!=null?dd:"")}else{if(dd==null){dd="\u00a0"}}c7.push((da&&da.style?'<pre class="'+da.style+'">':"<pre>"),dd);for(var dc=1;dc<db.height;++dc){c7.push("<br/> ")}c7.push("</pre>");if(!da){c8=c5}}++c5});aI.style.display="none";aZ.innerHTML=c7.join("");if(c8!=null){var c3=aZ.childNodes[c8-cR];var c4=String(cz.size).length,c0=I(c3),c2="";while(c0.length+c2.length<c4){c2+="\u00a0"}if(c2){c3.insertBefore(document.createTextNode(c2),c3.firstChild)}}aI.style.display="";var c6=Math.abs((parseInt(bv.style.marginLeft)||0)-aI.offsetWidth)>2;bv.style.marginLeft=aI.offsetWidth+"px";aT=false;return c6}function cW(){var c3=ae(cX.from,cX.to);var de=cS(cX.from,true);var c9=c3?de:cS(cX.to,true);var c7=cX.inverted?de:c9,c1=bQ();var c0=al(aE),c2=al(ar);bY.style.top=Math.max(0,Math.min(bl.offsetHeight,c7.y+c2.top-c0.top))+"px";bY.style.left=Math.max(0,Math.min(bl.offsetWidth,c7.x+c2.left-c0.left))+"px";if(c3){bd.style.top=c7.y+"px";bd.style.left=(b2.lineWrapping?Math.min(c7.x,bv.offsetWidth):c7.x)+"px";bd.style.display="";bh.style.display="none"}else{var dc=de.y==c9.y,c5="";var da=bv.clientWidth||bv.offsetWidth;var c6=bv.clientHeight||bv.offsetHeight;function dd(dj,di,dh,df){var dg=F?"width: "+(!dh?da:da-dh-dj)+"px":"right: "+dh+"px";c5+='<div class="CodeMirror-selected" style="position: absolute; left: '+dj+"px; top: "+di+"px; "+dg+"; height: "+df+'px"></div>'}if(cX.from.ch&&de.y>=0){var db=dc?da-c9.x:0;dd(de.x,de.y,db,c1)}var c4=Math.max(0,de.y+(cX.from.ch?c1:0));var c8=Math.min(c9.y,c6)-c4;if(c8>0.2*c1){dd(0,c4,0,c8)}if((!dc||!cX.from.ch)&&c9.y<c6-0.5*c1){dd(0,c9.y,da-c9.x,c1)}bh.innerHTML=c5;bd.style.display="none";bh.style.display=""}}function a5(c0){if(c0){cj=cj||(cX.inverted?cX.to:cX.from)}else{cj=null}}function by(c2,c1){var c0=cj&&aU(cj);if(c0){if(aa(c0,c2)){c2=c0}else{if(aa(c1,c0)){c1=c0}}}bx(c2,c1);b7=true}function bx(c7,c6,c0,c5){cw=null;if(c0==null){c0=cX.from.line;c5=cX.to.line}if(ae(cX.from,c7)&&ae(cX.to,c6)){return}if(aa(c6,c7)){var c3=c6;c6=c7;c7=c3}if(c7.line!=c0){var c4=bS(c7,c0,cX.from.ch);if(!c4){cL(c7.line,false)}else{c7=c4}}if(c6.line!=c5){c6=bS(c6,c5,cX.to.ch)}if(ae(c7,c6)){cX.inverted=false}else{if(ae(c7,cX.to)){cX.inverted=false}else{if(ae(c6,cX.from)){cX.inverted=true}}}if(b2.autoClearEmptyLines&&ae(cX.from,cX.to)){var c2=cX.inverted?c7:c6;if(c2.line!=cX.from.line&&cX.from.line<cz.size){var c1=cG(cX.from.line);if(/^\s+$/.test(c1.text)){setTimeout(at(function(){if(c1.parent&&/^\s+$/.test(c1.text)){var c8=Z(c1);bR("",{line:c8,ch:0},{line:c8,ch:c1.text.length})}},10))}}}cX.from=c7;cX.to=c6;aQ=true}function bS(c5,c1,c2){function c4(c8){var da=c5.line+c8,c7=c8==1?cz.size:-1;while(da!=c7){var c6=cG(da);if(!c6.hidden){var c9=c5.ch;if(c3||c9>c2||c9>c6.text.length){c9=c6.text.length}return{line:da,ch:c9}}da+=c8}}var c0=cG(c5.line);var c3=c5.ch==c0.text.length&&c5.ch!=c2;if(!c0.hidden){return c5}if(c5.line>=c1){return c4(1)||c4(-1)}else{return c4(-1)||c4(1)}}function a7(c0,c2,c1){var c3=aU({line:c0,ch:c2||0});(c1?by:bx)(c3,c3)}function b0(c0){return Math.max(0,Math.min(c0,cz.size-1))}function aU(c2){if(c2.line<0){return{line:0,ch:0}}if(c2.line>=cz.size){return{line:cz.size-1,ch:cG(cz.size-1).text.length}}var c0=c2.ch,c1=cG(c2.line).text.length;if(c0==null||c0>c1){return{line:c2.line,ch:c1}}else{if(c0<0){return{line:c2.line,ch:0}}else{return c2}}}function cp(c3,c7){var c4=cX.inverted?cX.from:cX.to,c8=c4.line,c0=c4.ch;var c6=cG(c8);function c1(){for(var c9=c8+c3,db=c3<0?-1:cz.size;c9!=db;c9+=c3){var da=cG(c9);if(!da.hidden){c8=c9;c6=da;return true}}}function c5(c9){if(c0==(c3<0?0:c6.text.length)){if(!c9&&c1()){c0=c3<0?c6.text.length:0}else{return false}}else{c0+=c3}return true}if(c7=="char"){c5()}else{if(c7=="column"){c5(true)}else{if(c7=="word"){var c2=false;for(;;){if(c3<0){if(!c5()){break}}if(ah(c6.text.charAt(c0))){c2=true}else{if(c2){if(c3<0){c3=1;c5()}break}}if(c3>0){if(!c5()){break}}}}}}return{line:c8,ch:c0}}function cF(c0,c1){var c2=c0<0?cX.from:cX.to;if(cj||ae(cX.from,cX.to)){c2=cp(c0,c1)}a7(c2.line,c2.ch,true)}function cn(c0,c1){if(!ae(cX.from,cX.to)){bR("",cX.from,cX.to)}else{if(c0<0){bR("",cp(c0,c1),cX.to)}else{bR("",cX.from,cp(c0,c1))}}b7=true}var cw=null;function cy(c0,c1){var c3=0,c4=cS(cX.inverted?cX.from:cX.to,true);if(cw!=null){c4.x=cw}if(c1=="page"){c3=Math.min(bl.clientHeight,window.innerHeight||document.documentElement.clientHeight)}else{if(c1=="line"){c3=bQ()}}var c2=bI(c4.x,c4.y+c3*c0+2);if(c1=="page"){bl.scrollTop+=cS(c2,true).y-c4.y}a7(c2.line,c2.ch,true);cw=c4.x}function bJ(c3){var c1=cG(c3.line).text;var c2=c3.ch,c0=c3.ch;while(c2>0&&ah(c1.charAt(c2-1))){--c2}while(c0<c1.length&&ah(c1.charAt(c0))){++c0}by({line:c3.line,ch:c2},{line:c3.line,ch:c0})}function aL(c0){by({line:c0,ch:0},aU({line:c0+1,ch:0}))}function cC(c2){if(ae(cX.from,cX.to)){return bz(cX.from.line,c2)}var c1=cX.to.line-(cX.to.ch?0:1);for(var c0=cX.from.line;c0<=c1;++c0){bz(c0,c2)}}function bz(c2,c9){if(!c9){c9="add"}if(c9=="smart"){if(!cc.indent){c9="prev"}else{var c0=cv(c2)}}var da=cG(c2),c4=da.indentation(b2.tabSize),c1=da.text.match(/^\s*/)[0],c6;if(c9=="prev"){if(c2){c6=cG(c2-1).indentation(b2.tabSize)}else{c6=0}}else{if(c9=="smart"){c6=cc.indent(c0,da.text.slice(c1.length),da.text)}else{if(c9=="add"){c6=c4+b2.indentUnit}else{if(c9=="subtract"){c6=c4-b2.indentUnit}}}}c6=Math.max(0,c6);var c8=c6-c4;if(!c8){if(cX.from.line!=c2&&cX.to.line!=c2){return}var c7=c1}else{var c7="",c5=0;if(b2.indentWithTabs){for(var c3=Math.floor(c6/b2.tabSize);c3;--c3){c5+=b2.tabSize;c7+="\t"}}while(c5<c6){++c5;c7+=" "}}bR(c7,{line:c2,ch:0},{line:c2,ch:c1.length})}function bU(){cc=v.getMode(b2,b2.mode);cz.iter(0,cz.size,function(c0){c0.stateAfter=null});ci=[0];bH()}function bf(){var c0=b2.gutter||b2.lineNumbers;aI.style.display=c0?"":"none";if(c0){aT=true}else{ar.parentNode.style.marginLeft=0}}function cH(c2,c1){if(b2.lineWrapping){aE.className+=" CodeMirror-wrap";var c0=bl.clientWidth/bi()-3;cz.iter(0,cz.size,function(c3){if(c3.hidden){return}var c4=Math.ceil(c3.text.length/c0)||1;if(c4!=1){a4(c3,c4)}});bv.style.width=bN.style.width=""}else{aE.className=aE.className.replace(" CodeMirror-wrap","");aG=null;bE="";cz.iter(0,cz.size,function(c3){if(c3.height!=1&&!c3.hidden){a4(c3,1)}if(c3.text.length>bE.length){bE=c3.text}})}aC.push({from:0,to:cz.size})}function ba(c1){var c0=b2.tabSize-c1%b2.tabSize,c3=aq[c0];if(c3){return c3}for(var c4='<span class="cm-tab">',c2=0;c2<c0;++c2){c4+=" "}return(aq[c0]={html:c4+"</span>",width:c0})}function cE(){bl.className=bl.className.replace(/\s*cm-s-\S+/g,"")+b2.theme.replace(/(^|\s)\s*/g," cm-s-")}function cY(){this.set=[]}cY.prototype.clear=at(function(){var c5=Infinity,c1=-Infinity;for(var c4=0,c7=this.set.length;c4<c7;++c4){var c2=this.set[c4],c0=c2.marked;if(!c0||!c2.parent){continue}var c6=Z(c2);c5=Math.min(c5,c6);c1=Math.max(c1,c6);for(var c3=0;c3<c0.length;++c3){if(c0[c3].marker==this){c0.splice(c3--,1)}}}if(c5!=Infinity){aC.push({from:c5,to:c1+1})}});cY.prototype.find=function(){var c5,c6;for(var c2=0,c4=this.set.length;c2<c4;++c2){var c8=this.set[c2],c3=c8.marked;for(var c1=0;c1<c3.length;++c1){var c0=c3[c1];if(c0.marker==this){if(c0.from!=null||c0.to!=null){var c7=Z(c8);if(c7!=null){if(c0.from!=null){c5={line:c7,ch:c0.from}}if(c0.to!=null){c6={line:c7,ch:c0.to}}}}}}}return{from:c5,to:c6}};function bF(c6,c5,c2){c6=aU(c6);c5=aU(c5);var c0=new cY();if(!aa(c6,c5)){return c0}function c4(c7,da,c9,c8){cG(c7).addMark(new L(da,c9,c8,c0))}if(c6.line==c5.line){c4(c6.line,c6.ch,c5.ch,c2)}else{c4(c6.line,c6.ch,null,c2);for(var c1=c6.line+1,c3=c5.line;c1<c3;++c1){c4(c1,null,null,c2)}c4(c5.line,null,c5.ch,c2)}aC.push({from:c6.line,to:c5.line+1});return c0}function aV(c1){c1=aU(c1);var c0=new H(c1.ch);cG(c1.line).addMark(c0);return c0}function bp(c5){c5=aU(c5);var c4=[],c2=cG(c5.line).marked;if(!c2){return c4}for(var c1=0,c3=c2.length;c1<c3;++c1){var c0=c2[c1];if((c0.from==null||c0.from<=c5.ch)&&(c0.to==null||c0.to>=c5.ch)){c4.push(c0.marker||c0)}}return c4}function bW(c0,c2,c1){if(typeof c0=="number"){c0=cG(b0(c0))}c0.gutterMarker={text:c2,style:c1};aT=true;return c0}function av(c0){if(typeof c0=="number"){c0=cG(b0(c0))}c0.gutterMarker=null;aT=true}function aY(c1,c3){var c2=c1,c0=c1;if(typeof c1=="number"){c0=cG(b0(c1))}else{c2=Z(c1)}if(c2==null){return null}if(c3(c0,c2)){aC.push({from:c2,to:c2+1})}else{return null}return c0}function bm(c1,c0,c2){return aY(c1,function(c3){if(c3.className!=c0||c3.bgClassName!=c2){c3.className=c0;c3.bgClassName=c2;return true}})}function cL(c1,c0){return aY(c1,function(c2,c5){if(c2.hidden!=c0){c2.hidden=c0;a4(c2,c0?0:1);var c4=cX.from.line,c3=cX.to.line;if(c0&&(c4==c5||c3==c5)){var c7=c4==c5?bS({line:c4,ch:0},c4,0):cX.from;var c6=c3==c5?bS({line:c3,ch:0},c3,0):cX.to;if(!c6){return}bx(c7,c6)}return(aT=true)}})}function aW(c1){if(typeof c1=="number"){if(!bs(c1)){return null}var c2=c1;c1=cG(c1);if(!c1){return null}}else{var c2=Z(c1);if(c2==null){return null}}var c0=c1.gutterMarker;return{line:c2,handle:c1,text:c1.text,markerText:c0&&c0.text,markerClass:c0&&c0.style,lineClass:c1.className,bgClass:c1.bgClassName}}function cu(c0){aw.innerHTML="<pre><span>x</span></pre>";aw.firstChild.firstChild.firstChild.nodeValue=c0;return aw.firstChild.firstChild.offsetWidth||10}function aH(dc,c6){if(c6<=0){return 0}var c3=cG(dc),c9=c3.text;function da(dd){return b6(c3,dd).left}var c7=0,c5=0,c8=c9.length,c4;var c1=Math.min(c8,Math.ceil(c6/bi()));for(;;){var c2=da(c1);if(c2<=c6&&c1<c8){c1=Math.min(c8,Math.ceil(c1*1.2))}else{c4=c2;c8=c1;break}}if(c6>c4){return c8}c1=Math.floor(c8*0.8);c2=da(c1);if(c2<c6){c7=c1;c5=c2}for(;;){if(c8-c7<=1){return(c4-c6>c6-c5)?c7:c8}var db=Math.ceil((c7+c8)/2),c0=da(db);if(c0>c6){c8=db;c4=c0}else{c7=db;c5=c0}}}var cA="CodeMirror-temp-"+Math.floor(Math.random()*16777215).toString(16);function b6(c1,c4){if(c4==0){return{top:0,left:0}}var c0=b2.lineWrapping&&c4<c1.text.length&&o.test(c1.text.slice(c4-1,c4+1));aw.innerHTML="<pre>"+c1.getHTML(ba,c4,cA,c0)+"</pre>";var c3=document.getElementById(cA);var c6=c3.offsetTop,c5=c3.offsetLeft;if(J&&c6==0&&c5==0){var c2=document.createElement("span");c2.innerHTML="x";c3.parentNode.insertBefore(c2,c3.nextSibling);c6=c2.offsetTop}return{top:c6,left:c5}}function cS(c5,c3){var c0,c1=bQ(),c4=c1*(g(cz,c5.line)-(c3?be:0));if(c5.ch==0){c0=0}else{var c2=b6(cG(c5.line),c5.ch);c0=c2.left;if(b2.lineWrapping){c4+=Math.max(0,c2.top)}}return{x:c0,y:c4,yBot:c4+c1}}function bI(c9,c8){if(c8<0){c8=0}var c6=bQ(),c4=bi(),df=be+Math.floor(c8/c6);var da=Y(cz,df);if(da>=cz.size){return{line:cz.size-1,ch:cG(cz.size-1).text.length}}var c1=cG(da),dc=c1.text;var dh=b2.lineWrapping,c7=dh?df-g(cz,da):0;if(c9<=0&&c7==0){return{line:da,ch:0}}function dg(dj){var dk=b6(c1,dj);if(dh){var dl=Math.round(dk.top/c6);return Math.max(0,dk.left+(dl-c7)*bl.clientWidth)}return dk.left}var de=0,dd=0,c2=dc.length,c0;var db=Math.min(c2,Math.ceil((c9+c7*bl.clientWidth*0.9)/c4));for(;;){var c5=dg(db);if(c5<=c9&&db<c2){db=Math.min(c2,Math.ceil(db*1.2))}else{c0=c5;c2=db;break}}if(c9>c0){return{line:da,ch:c2}}db=Math.floor(c2*0.8);c5=dg(db);if(c5<c9){de=db;dd=c5}for(;;){if(c2-de<=1){return{line:da,ch:(c0-c9>c9-dd)?de:c2}}var di=Math.ceil((de+c2)/2),c3=dg(di);if(c3>c9){c2=di;c0=c3}else{de=di;dd=c3}}}function ap(c2){var c0=cS(c2,true),c1=al(bv);return{x:c1.left+c0.x,y:c1.top+c0.y,yBot:c1.top+c0.yBot}}var a1,ay,bV;function bQ(){if(bV==null){bV="<pre>";for(var c1=0;c1<49;++c1){bV+="x<br/>"}bV+="x</pre>"}var c0=ar.clientHeight;if(c0==ay){return a1}ay=c0;aw.innerHTML=bV;a1=aw.firstChild.offsetHeight/50||1;aw.innerHTML="";return a1}var cT,bw=0;function bi(){if(bl.clientWidth==bw){return cT}bw=bl.clientWidth;return(cT=cu("x"))}function cs(){return bv.offsetTop}function a6(){return bv.offsetLeft}function a3(c4,c3){var c2=al(bl,true),c0,c5;try{c0=c4.clientX;c5=c4.clientY}catch(c4){return null}if(!c3&&(c0-c2.left>bl.clientWidth||c5-c2.top>bl.clientHeight)){return null}var c1=al(bv,true);return bI(c0-c1.left,c5-c1.top)}function a2(c1){var c6=a3(c1),c5=bl.scrollTop;if(!c6||window.opera){return}if(ae(cX.from,cX.to)||aa(c6,cX.from)||!aa(c6,cX.to)){at(a7)(c6.line,c6.ch)}var c4=bn.style.cssText;bY.style.position="absolute";bn.style.cssText="position: fixed; width: 30px; height: 30px; top: "+(c1.clientY-5)+"px; left: "+(c1.clientX-5)+"px; z-index: 1000; background: white; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);";bg=true;var c3=bn.value=b4();bA();a(bn);function c0(){var c7=B(bn.value).join("\n");if(c7!=c3){at(bt)(c7,"end")}bY.style.position="relative";bn.style.cssText=c4;if(C){bl.scrollTop=c5}bg=false;cD(true);an()}if(O){x(c1);var c2=s(window,"mouseup",function(){c2();setTimeout(c0,20)},true)}else{setTimeout(c0,50)}}function cN(){clearInterval(cQ);var c0=true;bd.style.visibility="";cQ=setInterval(function(){bd.style.visibility=(c0=!c0)?"":"hidden"},650)}var bq={"(":")>",")":"(<","[":"]>","]":"[<","{":"}>","}":"{<"};function cf(c6){var c0=cX.inverted?cX.from:cX.to,c8=cG(c0.line),c1=c0.ch-1;var c5=(c1>=0&&bq[c8.text.charAt(c1)])||bq[c8.text.charAt(++c1)];if(!c5){return}var c9=c5.charAt(0),c7=c5.charAt(1)==">",dj=c7?1:-1,de=c8.styles;for(var dk=c1+1,dg=0,di=de.length;dg<di;dg+=2){if((dk-=de[dg].length)<=0){var dh=de[dg+1];break}}var c3=[c8.text.charAt(c1)],dd=/[(){}[\]]/;function db(dx,ds,dt){if(!dx.text){return}var dw=dx.styles,dr=c7?0:dx.text.length-1,du;for(var dn=c7?0:dw.length-2,dq=c7?dw.length:-2;dn!=dq;dn+=2*dj){var dv=dw[dn];if(dw[dn+1]!=null&&dw[dn+1]!=dh){dr+=dj*dv.length;continue}for(var dm=c7?0:dv.length-1,dl=c7?dv.length:-1;dm!=dl;dm+=dj,dr+=dj){if(dr>=ds&&dr<dt&&dd.test(du=dv.charAt(dm))){var dp=bq[du];if(dp.charAt(1)==">"==c7){c3.push(du)}else{if(c3.pop()!=dp.charAt(0)){return{pos:dr,match:false}}else{if(!c3.length){return{pos:dr,match:true}}}}}}}}for(var dg=c0.line,di=c7?Math.min(dg+100,cz.size):Math.max(-1,dg-100);dg!=di;dg+=dj){var c8=cG(dg),c4=dg==c0.line;var da=db(c8,c4&&c7?c1+1:0,c4&&!c7?c1:c8.text.length);if(da){break}}if(!da){da={pos:null,match:false}}var dh=da.match?"CodeMirror-matchingbracket":"CodeMirror-nonmatchingbracket";var df=bF({line:c0.line,ch:c1},{line:c0.line,ch:c1+1},dh),c2=da.pos!=null&&bF({line:dg,ch:da.pos},{line:dg,ch:da.pos+1},dh);var dc=at(function(){df.clear();c2&&c2.clear()});if(c6){setTimeout(dc,800)}else{b5=dc}}function a8(c6){var c5,c2;for(var c1=c6,c3=c6-40;c1>c3;--c1){if(c1==0){return 0}var c0=cG(c1-1);if(c0.stateAfter){return c1}var c4=c0.indentation(b2.tabSize);if(c2==null||c5>c4){c2=c1-1;c5=c4}}return c2}function cv(c2){var c1=a8(c2),c0=c1&&cG(c1-1).stateAfter;if(!c0){c0=W(cc)}else{c0=p(cc,c0)}cz.iter(c1,c2,function(c3){c3.highlight(cc,c0,b2.tabSize);c3.stateAfter=p(cc,c0)});if(c1<c2){aC.push({from:c1,to:c2})}if(c2<cz.size&&!cG(c2).stateAfter){ci.push(c2)}return c0}function cI(c2,c0){var c1=cv(c2);cz.iter(c2,c0,function(c3){c3.highlight(cc,c1,b2.tabSize);c3.stateAfter=p(cc,c1)})}function bT(){var c6=+new Date+b2.workTime;var c9=ci.length;while(ci.length){if(!cG(cR).stateAfter){var c3=cR}else{var c3=ci.pop()}if(c3>=cz.size){continue}var c1=a8(c3),c0=c1&&cG(c1-1).stateAfter;if(c0){c0=p(cc,c0)}else{c0=W(cc)}var c5=0,c2=cc.compareStates,c8=false,c7=c1,c4=false;cz.iter(c7,cz.size,function(db){var dc=db.stateAfter;if(+new Date>c6){ci.push(c7);bH(b2.workDelay);if(c8){aC.push({from:c3,to:c7+1})}return(c4=true)}var dd=db.highlight(cc,c0,b2.tabSize);if(dd){c8=true}db.stateAfter=p(cc,c0);var da=null;if(c2){var de=dc&&c2(dc,c0);if(de!=ac){da=!!de}}if(da==null){if(dd!==false||!dc){c5=0}else{if(++c5>3&&(!cc.indent||cc.indent(dc,"")==cc.indent(c0,""))){da=true}}}if(da){return true}++c7});if(c4){return}if(c8){aC.push({from:c3,to:c7+1})}}if(c9&&b2.onHighlightComplete){b2.onHighlightComplete(ca)}}function bH(c0){if(!ci.length){return}ax.set(c0,at(bT))}function aO(){cq=b7=cO=null;aC=[];aQ=false;cB=[]}function az(){var c4=false,c1;if(aQ){c4=!cg()}if(aC.length){c1=ce(aC,true)}else{if(aQ){cW()}if(aT){aM()}}if(c4){cg()}if(aQ){cZ();cN()}if(ck&&!bg&&(cq===true||(cq!==false&&aQ))){cD(b7)}if(aQ&&b2.matchBrackets){setTimeout(at(function(){if(b5){b5();b5=null}if(ae(cX.from,cX.to)){cf(false)}}),20)}var c0=cO,c2=cB;if(aQ&&b2.onCursorActivity){b2.onCursorActivity(ca)}if(c0&&b2.onChange&&ca){b2.onChange(ca,c0)}for(var c3=0;c3<c2.length;++c3){c2[c3](ca)}if(c1&&b2.onUpdate){b2.onUpdate(ca)}}var cr=0;function at(c0){return function(){if(!cr++){aO()}try{var c1=c0.apply(this,arguments)}finally{if(!--cr){az()}}return c1}}function bP(c0){a9.startCompound();try{return c0()}finally{a9.endCompound()}}for(var bK in ad){if(ad.propertyIsEnumerable(bK)&&!ca.propertyIsEnumerable(bK)){ca[bK]=ad[bK]}}return ca}v.defaults={value:"",mode:null,theme:"default",indentUnit:2,indentWithTabs:false,smartIndent:true,tabSize:4,keyMap:"default",extraKeys:null,electricChars:true,autoClearEmptyLines:false,onKeyEvent:null,onDragEvent:null,lineWrapping:false,lineNumbers:false,gutter:false,fixedGutter:false,firstLineNumber:1,readOnly:false,dragDrop:true,onChange:null,onCursorActivity:null,onGutterClick:null,onHighlightComplete:null,onUpdate:null,onFocus:null,onBlur:null,onScroll:null,matchBrackets:false,workTime:100,workDelay:200,pollInterval:100,undoDepth:40,tabindex:null,autofocus:null};var t=/AppleWebKit/.test(navigator.userAgent)&&/Mobile\/\w+/.test(navigator.userAgent);var N=t||/Mac/.test(navigator.platform);var V=/Win/.test(navigator.platform);var ak=v.modes={},T=v.mimeModes={};v.defineMode=function(an,ap){if(!v.defaults.mode&&an!="null"){v.defaults.mode=an}if(arguments.length>2){ap.dependencies=[];for(var ao=2;ao<arguments.length;++ao){ap.dependencies.push(arguments[ao])}}ak[an]=ap};v.defineMIME=function(ao,an){T[ao]=an};v.resolveMode=function(an){if(typeof an=="string"&&T.hasOwnProperty(an)){an=T[an]}else{if(typeof an=="string"&&/^[\w\-]+\/[\w\-]+\+xml$/.test(an)){return v.resolveMode("application/xml")}}if(typeof an=="string"){return{name:an}}else{return an||{name:"null"}}};v.getMode=function(ao,an){var an=v.resolveMode(an);var ap=ak[an.name];if(!ap){return v.getMode(ao,"text/plain")}return ap(ao,an)};v.listModes=function(){var ao=[];for(var an in ak){if(ak.propertyIsEnumerable(an)){ao.push(an)}}return ao};v.listMIMEs=function(){var ao=[];for(var an in T){if(T.propertyIsEnumerable(an)){ao.push({mime:an,mode:T[an]})}}return ao};var ad=v.extensions={};v.defineExtension=function(an,ao){ad[an]=ao};var M=v.commands={selectAll:function(an){an.setSelection({line:0,ch:0},{line:an.lineCount()-1})},killLine:function(an){var aq=an.getCursor(true),ap=an.getCursor(false),ao=!ae(aq,ap);if(!ao&&an.getLine(aq.line).length==aq.ch){an.replaceRange("",aq,{line:aq.line+1,ch:0})}else{an.replaceRange("",aq,ao?ap:{line:aq.line})}},deleteLine:function(an){var ao=an.getCursor().line;an.replaceRange("",{line:ao,ch:0},{line:ao})},undo:function(an){an.undo()},redo:function(an){an.redo()},goDocStart:function(an){an.setCursor(0,0,true)},goDocEnd:function(an){an.setSelection({line:an.lineCount()-1},null,true)},goLineStart:function(an){an.setCursor(an.getCursor().line,0,true)},goLineStartSmart:function(an){var aq=an.getCursor();var ap=an.getLine(aq.line),ao=Math.max(0,ap.search(/\S/));an.setCursor(aq.line,aq.ch<=ao&&aq.ch?0:ao,true)},goLineEnd:function(an){an.setSelection({line:an.getCursor().line},null,true)},goLineUp:function(an){an.moveV(-1,"line")},goLineDown:function(an){an.moveV(1,"line")},goPageUp:function(an){an.moveV(-1,"page")},goPageDown:function(an){an.moveV(1,"page")},goCharLeft:function(an){an.moveH(-1,"char")},goCharRight:function(an){an.moveH(1,"char")},goColumnLeft:function(an){an.moveH(-1,"column")},goColumnRight:function(an){an.moveH(1,"column")},goWordLeft:function(an){an.moveH(-1,"word")},goWordRight:function(an){an.moveH(1,"word")},delCharLeft:function(an){an.deleteH(-1,"char")},delCharRight:function(an){an.deleteH(1,"char")},delWordLeft:function(an){an.deleteH(-1,"word")},delWordRight:function(an){an.deleteH(1,"word")},indentAuto:function(an){an.indentSelection("smart")},indentMore:function(an){an.indentSelection("add")},indentLess:function(an){an.indentSelection("subtract")},insertTab:function(an){an.replaceSelection("\t","end")},transposeChars:function(an){var ap=an.getCursor(),ao=an.getLine(ap.line);if(ap.ch>0&&ap.ch<ao.length-1){an.replaceRange(ao.charAt(ap.ch)+ao.charAt(ap.ch-1),{line:ap.line,ch:ap.ch-1},{line:ap.line,ch:ap.ch+1})}},newlineAndIndent:function(an){an.replaceSelection("\n","end");an.indentLine(an.getCursor().line)},toggleOverwrite:function(an){an.toggleOverwrite()}};var w=v.keyMap={};w.basic={Left:"goCharLeft",Right:"goCharRight",Up:"goLineUp",Down:"goLineDown",End:"goLineEnd",Home:"goLineStartSmart",PageUp:"goPageUp",PageDown:"goPageDown",Delete:"delCharRight",Backspace:"delCharLeft",Tab:"insertTab","Shift-Tab":"indentAuto",Enter:"newlineAndIndent",Insert:"toggleOverwrite"};w.pcDefault={"Ctrl-A":"selectAll","Ctrl-D":"deleteLine","Ctrl-Z":"undo","Shift-Ctrl-Z":"redo","Ctrl-Y":"redo","Ctrl-Home":"goDocStart","Alt-Up":"goDocStart","Ctrl-End":"goDocEnd","Ctrl-Down":"goDocEnd","Ctrl-Left":"goWordLeft","Ctrl-Right":"goWordRight","Alt-Left":"goLineStart","Alt-Right":"goLineEnd","Ctrl-Backspace":"delWordLeft","Ctrl-Delete":"delWordRight","Ctrl-S":"save","Ctrl-F":"find","Ctrl-G":"findNext","Shift-Ctrl-G":"findPrev","Shift-Ctrl-F":"replace","Shift-Ctrl-R":"replaceAll","Ctrl-[":"indentLess","Ctrl-]":"indentMore",fallthrough:"basic"};w.macDefault={"Cmd-A":"selectAll","Cmd-D":"deleteLine","Cmd-Z":"undo","Shift-Cmd-Z":"redo","Cmd-Y":"redo","Cmd-Up":"goDocStart","Cmd-End":"goDocEnd","Cmd-Down":"goDocEnd","Alt-Left":"goWordLeft","Alt-Right":"goWordRight","Cmd-Left":"goLineStart","Cmd-Right":"goLineEnd","Alt-Backspace":"delWordLeft","Ctrl-Alt-Backspace":"delWordRight","Alt-Delete":"delWordRight","Cmd-S":"save","Cmd-F":"find","Cmd-G":"findNext","Shift-Cmd-G":"findPrev","Cmd-Alt-F":"replace","Shift-Cmd-Alt-F":"replaceAll","Cmd-[":"indentLess","Cmd-]":"indentMore",fallthrough:["basic","emacsy"]};w["default"]=N?w.macDefault:w.pcDefault;w.emacsy={"Ctrl-F":"goCharRight","Ctrl-B":"goCharLeft","Ctrl-P":"goLineUp","Ctrl-N":"goLineDown","Alt-F":"goWordRight","Alt-B":"goWordLeft","Ctrl-A":"goLineStart","Ctrl-E":"goLineEnd","Ctrl-V":"goPageUp","Shift-Ctrl-V":"goPageDown","Ctrl-D":"delCharRight","Ctrl-H":"delCharLeft","Alt-D":"delWordRight","Alt-Backspace":"delWordLeft","Ctrl-K":"killLine","Ctrl-T":"transposeChars"};function c(an){if(typeof an=="string"){return w[an]}else{return an}}function l(ao,an,at,aq,ap){function ar(ay){ay=c(ay);var aw=ay[ao];if(aw!=null&&aq(aw)){return true}if(ay.nofallthrough){if(ap){ap()}return true}var av=ay.fallthrough;if(av==null){return false}if(Object.prototype.toString.call(av)!="[object Array]"){return ar(av)}for(var au=0,ax=av.length;au<ax;++au){if(ar(av[au])){return true}}return false}if(an&&ar(an)){return true}return ar(at)}function R(ao){var an=S[z(ao,"keyCode")];return an=="Ctrl"||an=="Alt"||an=="Shift"||an=="Mod"}v.fromTextArea=function(ao,aq){if(!aq){aq={}}aq.value=ao.value;if(!aq.tabindex&&ao.tabindex){aq.tabindex=ao.tabindex}if(aq.autofocus==null&&ao.getAttribute("autofocus")!=null){aq.autofocus=true}function at(){ao.value=an.getValue()}if(ao.form){var ar=s(ao.form,"submit",at,true);if(typeof ao.form.submit=="function"){var ap=ao.form.submit;function au(){at();ao.form.submit=ap;ao.form.submit();ao.form.submit=au}ao.form.submit=au}}ao.style.display="none";var an=v(function(av){ao.parentNode.insertBefore(av,ao.nextSibling)},aq);an.save=at;an.getTextArea=function(){return ao};an.toTextArea=function(){at();ao.parentNode.removeChild(an.getWrapperElement());ao.style.display="";if(ao.form){ar();if(typeof ao.form.submit=="function"){ao.form.submit=ap}}};return an};function p(aq,an){if(an===true){return an}if(aq.copyState){return aq.copyState(an)}var ap={};for(var ar in an){var ao=an[ar];if(ao instanceof Array){ao=ao.concat([])}ap[ar]=ao}return ap}v.copyState=p;function W(ap,ao,an){return ap.startState?ap.startState(ao,an):true}v.startState=W;function b(an,ao){this.pos=this.start=0;this.string=an;this.tabSize=ao||8}b.prototype={eol:function(){return this.pos>=this.string.length},sol:function(){return this.pos==0},peek:function(){return this.string.charAt(this.pos)},next:function(){if(this.pos<this.string.length){return this.string.charAt(this.pos++)}},eat:function(an){var ap=this.string.charAt(this.pos);if(typeof an=="string"){var ao=ap==an}else{var ao=ap&&(an.test?an.test(ap):an(ap))}if(ao){++this.pos;return ap}},eatWhile:function(an){var ao=this.pos;while(this.eat(an)){}return this.pos>ao},eatSpace:function(){var an=this.pos;while(/[\s\u00a0]/.test(this.string.charAt(this.pos))){++this.pos}return this.pos>an},skipToEnd:function(){this.pos=this.string.length},skipTo:function(an){var ao=this.string.indexOf(an,this.pos);if(ao>-1){this.pos=ao;return true}},backUp:function(an){this.pos-=an},column:function(){return n(this.string,this.start,this.tabSize)},indentation:function(){return n(this.string,null,this.tabSize)},match:function(aq,ao,an){if(typeof aq=="string"){function ar(at){return an?at.toLowerCase():at}if(ar(this.string).indexOf(ar(aq),this.pos)==this.pos){if(ao!==false){this.pos+=aq.length}return true}}else{var ap=this.string.slice(this.pos).match(aq);if(ap&&ao!==false){this.pos+=ap[0].length}return ap}},current:function(){return this.string.slice(this.start,this.pos)}};v.StringStream=b;function L(aq,ap,ao,an){this.from=aq;this.to=ap;this.style=ao;this.marker=an}L.prototype={attach:function(an){this.marker.set.push(an)},detach:function(ao){var an=r(this.marker.set,ao);if(an>-1){this.marker.set.splice(an,1)}},split:function(aq,an){if(this.to<=aq&&this.to!=null){return null}var ap=this.from<aq||this.from==null?null:this.from-aq+an;var ao=this.to==null?null:this.to-aq+an;return new L(ap,ao,this.style,this.marker)},dup:function(){return new L(null,null,this.style,this.marker)},clipTo:function(ao,ar,an,aq,ap){if(ao&&aq>this.from&&(aq<this.to||this.to==null)){this.from=null}else{if(this.from!=null&&this.from>=ar){this.from=Math.max(aq,this.from)+ap}}if(an&&(ar<this.to||this.to==null)&&(ar>this.from||this.from==null)){this.to=null}else{if(this.to!=null&&this.to>ar){this.to=aq<this.to?this.to+ap:ar}}},isDead:function(){return this.from!=null&&this.to!=null&&this.from>=this.to},sameSet:function(an){return this.marker==an.marker}};function H(an){this.from=an;this.to=an;this.line=null}H.prototype={attach:function(an){this.line=an},detach:function(an){if(this.line==an){this.line=null}},split:function(ao,an){if(ao<this.from){this.from=this.to=(this.from-ao)+an;return this}},isDead:function(){return this.from>this.to},clipTo:function(ao,ar,an,aq,ap){if((ao||ar<this.from)&&(an||aq>this.to)){this.from=0;this.to=-1}else{if(this.from>ar){this.from=this.to=Math.max(aq,this.from)+ap}}},sameSet:function(an){return false},find:function(){if(!this.line||!this.line.parent){return null}return{line:Z(this.line),ch:this.from}},clear:function(){if(this.line){var an=r(this.line.marked,this);if(an!=-1){this.line.marked.splice(an,1)}this.line=null}}};function e(ao,an){this.styles=an||[ao,null];this.text=ao;this.height=1;this.marked=this.gutterMarker=this.className=this.bgClassName=this.handlers=null;this.stateAfter=this.parent=this.hidden=null}e.inheritMarks=function(ar,av){var aq=new e(ar),an=av&&av.marked;if(an){for(var ap=0;ap<an.length;++ap){if(an[ap].to==null&&an[ap].style){var ao=aq.marked||(aq.marked=[]),au=an[ap];var at=au.dup();ao.push(at);at.attach(aq)}}}return aq};e.prototype={replace:function(ar,aq,av){var aw=[],ap=this.marked,at=aq==null?this.text.length:aq;am(0,ar,this.styles,aw);if(av){aw.push(av,null)}am(at,this.text.length,this.styles,aw);this.styles=aw;this.text=this.text.slice(0,ar)+av+this.text.slice(at);this.stateAfter=null;if(ap){var au=av.length-(at-ar);for(var ao=0;ao<ap.length;++ao){var an=ap[ao];an.clipTo(ar==null,ar||0,aq==null,at,au);if(an.isDead()){an.detach(this);ap.splice(ao--,1)}}}},split:function(av,at){var aq=[at,null],ao=this.marked;am(av,this.text.length,this.styles,aq);var ap=new e(at+this.text.slice(av),aq);if(ao){for(var ar=0;ar<ao.length;++ar){var au=ao[ar];var an=au.split(av,at.length);if(an){if(!ap.marked){ap.marked=[]}ap.marked.push(an);an.attach(ap);if(an==au){ao.splice(ar--,1)}}}}return ap},append:function(ao){var au=this.text.length,an=ao.marked,ar=this.marked;this.text+=ao.text;am(0,ao.text.length,ao.styles,this.styles);if(ar){for(var at=0;at<ar.length;++at){if(ar[at].to==null){ar[at].to=au}}}if(an&&an.length){if(!ar){this.marked=ar=[]}outer:for(var at=0;at<an.length;++at){var av=an[at];if(!av.from){for(var aq=0;aq<ar.length;++aq){var ap=ar[aq];if(ap.to==au&&ap.sameSet(av)){ap.to=av.to==null?null:av.to+au;if(ap.isDead()){ap.detach(this);an.splice(at--,1)}continue outer}}}ar.push(av);av.attach(this);av.from+=au;if(av.to!=null){av.to+=au}}}},fixMarkEnds:function(ao){var an=this.marked,ar=ao.marked;if(!an){return}for(var aq=0;aq<an.length;++aq){var au=an[aq],at=au.to==null;if(at&&ar){for(var ap=0;ap<ar.length;++ap){if(ar[ap].sameSet(au)){at=false;break}}}if(at){au.to=this.text.length}}},fixMarkStarts:function(){var an=this.marked;if(!an){return}for(var ao=0;ao<an.length;++ao){if(an[ao].from==null){an[ao].from=0}}},addMark:function(an){an.attach(this);if(this.marked==null){this.marked=[]}this.marked.push(an);this.marked.sort(function(ap,ao){return(ap.from||0)-(ao.from||0)})},highlight:function(at,ao,au){var ax=new b(this.text,au),ay=this.styles,av=0;var ar=false,ap=ay[0],aw;if(this.text==""&&at.blankLine){at.blankLine(ao)}while(!ax.eol()){var an=at.token(ax,ao);var aq=this.text.slice(ax.start,ax.pos);ax.start=ax.pos;if(av&&ay[av-1]==an){ay[av-2]+=aq}else{if(aq){if(!ar&&(ay[av+1]!=an||(av&&ay[av-2]!=aw))){ar=true}ay[av++]=aq;ay[av++]=an;aw=ap;ap=ay[av]}}if(ax.pos>5000){ay[av++]=this.text.slice(ax.pos);ay[av++]=null;break}}if(ay.length!=av){ay.length=av;ar=true}if(av&&ay[av-2]!=aw){ar=true}return ar||(ay.length<5&&this.text.length<10?null:false)},getTokenAt:function(at,aq,ap){var an=this.text,ar=new b(an);while(ar.pos<ap&&!ar.eol()){ar.start=ar.pos;var ao=at.token(ar,aq)}return{start:ar.start,end:ar.pos,string:ar.current(),className:ao||null,state:aq}},indentation:function(an){return n(this.text,null,an)},getHTML:function(aN,an,ap,ar){var ay=[],aw=true,au=0;function aJ(aZ,aX){if(!aZ){return}if(aw&&J&&aZ.charAt(0)==" "){aZ="\u00a0"+aZ.slice(1)}aw=false;if(aZ.indexOf("\t")==-1){au+=aZ.length;var aY=Q(aZ)}else{var aY="";for(var a0=0;;){var aV=aZ.indexOf("\t",a0);if(aV==-1){aY+=Q(aZ.slice(a0));au+=aZ.length-a0;break}else{au+=aV-a0;var aW=aN(au);aY+=Q(aZ.slice(a0,aV))+aW.html;au+=aW.width;a0=aV+1}}}if(aX){ay.push('<span class="',aX,'">',aY,"</span>")}else{ay.push(aY)}}var aM=aJ;if(an!=null){var aH=0,aC='<span id="'+ap+'">';aM=function(aX,aW){var aV=aX.length;if(an>=aH&&an<aH+aV){if(an>aH){aJ(aX.slice(0,an-aH),aW);if(ar){ay.push("<wbr>")}}ay.push(aC);aJ(aX.slice(an-aH),aW);ay.push("</span>");an--;aH+=aV}else{aH+=aV;aJ(aX,aW);if(aH==an&&aH==aR){ay.push(aC+"</span>")}else{if(aH>an+10&&/\s/.test(aX)){aM=function(){}}}}}}var aG=this.styles,ax=this.text,aD=this.marked;var aR=ax.length;function at(aV){if(!aV){return null}return"cm-"+aV.replace(/ +/g," cm-")}if(!ax&&an==null){aM(" ")}else{if(!aD||!aD.length){for(var aO=0,az=0;az<aR;aO+=2){var aF=aG[aO],aQ=aG[aO+1],aI=aF.length;if(az+aI>aR){aF=aF.slice(0,aR-az)}az+=aI;aM(aF,at(aQ))}}else{var av=0,aO=0,aB="",aQ,aU=0;var aT=aD[0].from||0,aL=[],aS=0;function aP(){var aV;while(aS<aD.length&&((aV=aD[aS]).from==av||aV.from==null)){if(aV.style!=null){aL.push(aV)}++aS}aT=aS<aD.length?aD[aS].from:Infinity;for(var aW=0;aW<aL.length;++aW){var aX=aL[aW].to||Infinity;if(aX==av){aL.splice(aW--,1)}else{aT=Math.min(aX,aT)}}}var aE=0;while(av<aR){if(aT==av){aP()}var aA=Math.min(aR,aT);while(true){if(aB){var aq=av+aB.length;var ao=aQ;for(var aK=0;aK<aL.length;++aK){ao=(ao?ao+" ":"")+aL[aK].style}aM(aq>aA?aB.slice(0,aA-av):aB,ao);if(aq>=aA){aB=aB.slice(aA-av);av=aA;break}av=aq}aB=aG[aO++];aQ=at(aG[aO++])}}}}return ay.join("")},cleanUp:function(){this.parent=null;if(this.marked){for(var an=0,ao=this.marked.length;an<ao;++an){this.marked[an].detach(this)}}}};function am(au,av,an,aw){for(var ar=0,at=0,ao=0;at<av;ar+=2){var ap=an[ar],aq=at+ap.length;if(ao==0){if(aq>au){aw.push(ap.slice(au-at,Math.min(ap.length,av-at)),an[ar+1])}if(aq>=au){ao=1}}else{if(ao==1){if(aq>av){aw.push(ap.slice(0,av-at),an[ar+1])}else{aw.push(ap,an[ar+1])}}}at=aq}}function ai(ao){this.lines=ao;this.parent=null;for(var ap=0,aq=ao.length,an=0;ap<aq;++ap){ao[ap].parent=this;an+=ao[ap].height}this.height=an}ai.prototype={chunkSize:function(){return this.lines.length},remove:function(an,av,ar){for(var aq=an,au=an+av;aq<au;++aq){var ao=this.lines[aq];this.height-=ao.height;ao.cleanUp();if(ao.handlers){for(var ap=0;ap<ao.handlers.length;++ap){ar.push(ao.handlers[ap])}}}this.lines.splice(an,av)},collapse:function(an){an.splice.apply(an,[an.length,0].concat(this.lines))},insertHeight:function(ao,ap,an){this.height+=an;if(J){this.lines=this.lines.slice(0,ao).concat(ap).concat(this.lines.slice(ao))}else{this.lines.splice.apply(this.lines,[ao,0].concat(ap))}for(var aq=0,ar=ap.length;aq<ar;++aq){ap[aq].parent=this}},iterN:function(an,aq,ap){for(var ao=an+aq;an<ao;++an){if(ap(this.lines[an])){return true}}}};function i(aq){this.children=aq;var ap=0,an=0;for(var ao=0,at=aq.length;ao<at;++ao){var ar=aq[ao];ap+=ar.chunkSize();an+=ar.height;ar.parent=this}this.size=ap;this.height=an;this.parent=null}i.prototype={chunkSize:function(){return this.size},remove:function(ap,ao,au){this.size-=ao;for(var aq=0;aq<this.children.length;++aq){var an=this.children[aq],av=an.chunkSize();if(ap<av){var ar=Math.min(ao,av-ap),aw=an.height;an.remove(ap,ar,au);this.height-=aw-an.height;if(av==ar){this.children.splice(aq--,1);an.parent=null}if((ao-=ar)==0){break}ap=0}else{ap-=av}}if(this.size-ao<25){var ax=[];this.collapse(ax);this.children=[new ai(ax)];this.children[0].parent=this}},collapse:function(an){for(var ao=0,ap=this.children.length;ao<ap;++ao){this.children[ao].collapse(an)}},insert:function(ao,ap){var an=0;for(var aq=0,ar=ap.length;aq<ar;++aq){an+=ap[aq].height}this.insertHeight(ao,ap,an)},insertHeight:function(ao,ax,aw){this.size+=ax.length;this.height+=aw;for(var ap=0,ar=this.children.length;ap<ar;++ap){var an=this.children[ap],au=an.chunkSize();if(ao<=au){an.insertHeight(ao,ax,aw);if(an.lines&&an.lines.length>50){while(an.lines.length>50){var aq=an.lines.splice(an.lines.length-25,25);var av=new ai(aq);an.height-=av.height;this.children.splice(ap+1,0,av);av.parent=this}this.maybeSpill()}break}ao-=au}},maybeSpill:function(){if(this.children.length<=10){return}var aq=this;do{var ao=aq.children.splice(aq.children.length-5,5);var ap=new i(ao);if(!aq.parent){var ar=new i(aq.children);ar.parent=aq;aq.children=[ar,ap];aq=ar}else{aq.size-=ap.size;aq.height-=ap.height;var an=r(aq.parent.children,aq);aq.parent.children.splice(an+1,0,ap)}ap.parent=aq.parent}while(aq.children.length>10);aq.parent.maybeSpill()},iter:function(ap,ao,an){this.iterN(ap,ao-ap,an)},iterN:function(an,aw,av){for(var ao=0,ar=this.children.length;ao<ar;++ao){var au=this.children[ao],aq=au.chunkSize();if(an<aq){var ap=Math.min(aw,aq-an);if(au.iterN(an,ap,av)){return true}if((aw-=ap)==0){break}an=0}else{an-=aq}}}};function D(an,ar){while(!an.lines){for(var ao=0;;++ao){var aq=an.children[ao],ap=aq.chunkSize();if(ar<ap){an=aq;break}ar-=ap}}return an.lines[ar]}function Z(an){if(an.parent==null){return null}var at=an.parent,ar=r(at.lines,an);for(var ao=at.parent;ao;at=ao,ao=ao.parent){for(var ap=0,aq=ao.children.length;;++ap){if(ao.children[ap]==at){break}ar+=ao.children[ap].chunkSize()}}return ar}function Y(au,ar){var ap=0;outer:do{for(var aq=0,at=au.children.length;aq<at;++aq){var ao=au.children[aq],an=ao.height;if(ar<an){au=ao;continue outer}ar-=an;ap+=ao.chunkSize()}return ap}while(!au.lines);for(var aq=0,at=au.lines.length;aq<at;++aq){var aw=au.lines[aq],av=aw.height;if(ar<av){break}ar-=av}return ap+aq}function g(an,au){var ap=0;outer:do{for(var ao=0,ar=an.children.length;ao<ar;++ao){var at=an.children[ao],aq=at.chunkSize();if(au<aq){an=at;continue outer}au-=aq;ap+=at.height}return ap}while(!an.lines);for(var ao=0;ao<au;++ao){ap+=an.lines[ao].height}return ap}function k(){this.time=0;this.done=[];this.undone=[];this.compound=0;this.closed=false}k.prototype={addChange:function(an,at,ao){this.undone.length=0;var ap=+new Date,av=this.done[this.done.length-1],aw=av&&av[av.length-1];var ar=ap-this.time;if(this.compound&&av&&!this.closed){av.push({start:an,added:at,old:ao})}else{if(ar>400||!aw||this.closed||aw.start>an+ao.length||aw.start+aw.added<an){this.done.push([{start:an,added:at,old:ao}]);this.closed=false}else{var au=Math.max(0,aw.start-an),ax=Math.max(0,(an+ao.length)-(aw.start+aw.added));for(var aq=au;aq>0;--aq){aw.old.unshift(ao[aq-1])}for(var aq=ax;aq>0;--aq){aw.old.push(ao[ao.length-aq])}if(au){aw.start=an}aw.added+=at-(ao.length-au-ax)}}this.time=ap},startCompound:function(){if(!this.compound++){this.closed=true}},endCompound:function(){if(!--this.compound){this.closed=true}}};function K(){x(this)}function P(an){if(!an.stop){an.stop=K}return an}function U(an){if(an.preventDefault){an.preventDefault()}else{an.returnValue=false}}function E(an){if(an.stopPropagation){an.stopPropagation()}else{an.cancelBubble=true}}function x(an){U(an);E(an)}v.e_stop=x;v.e_preventDefault=U;v.e_stopPropagation=E;function j(an){return an.target||an.srcElement}function y(an){if(an.which){return an.which}else{if(an.button&1){return 1}else{if(an.button&2){return 3}else{if(an.button&4){return 2}}}}}function z(ao,ap){var an=ao.override&&ao.override.hasOwnProperty(ap);return an?ao.override[ap]:ao[ap]}function s(aq,ap,ao,an){if(typeof aq.addEventListener=="function"){aq.addEventListener(ap,ao,false);if(an){return function(){aq.removeEventListener(ap,ao,false)}}}else{var ar=function(at){ao(at||window.event)};aq.attachEvent("on"+ap,ar);if(an){return function(){aq.detachEvent("on"+ap,ar)}}}}v.connect=s;function A(){this.id=null}A.prototype={set:function(an,ao){clearTimeout(this.id);this.id=setTimeout(ao,an)}};var ac=v.Pass={toString:function(){return"CodeMirror.Pass"}};var O=/gecko\/\d{7}/i.test(navigator.userAgent);var J=/MSIE \d/.test(navigator.userAgent);var C=/MSIE [1-8]\b/.test(navigator.userAgent);var F=J&&document.documentMode==5;var f=/WebKit\//.test(navigator.userAgent);var ag=/Chrome\//.test(navigator.userAgent);var h=/Apple Computer/.test(navigator.vendor);var m=/KHTML\//.test(navigator.userAgent);var G=function(){if(C){return false}var an=document.createElement("div");return"draggable" in an||"dragDrop" in an}();var d=function(){var an=document.createElement("textarea");an.value="foo\nbar";if(an.value.indexOf("\r")>-1){return"\r\n"}return"\n"}();var o=/^$/;if(O){o=/$'/}else{if(h){o=/\-[^ \-?]|\?[^ !'\"\),.\-\/:;\?\]\}]/}else{if(ag){o=/\-[^ \-\.?]|\?[^ \-\.?\]\}:;!'\"\),\/]|[\.!\"#&%\)*+,:;=>\]|\}~][\(\{\[<]|\$'/}}}function n(ao,an,aq){if(an==null){an=ao.search(/[^\s\u00a0]/);if(an==-1){an=ao.length}}for(var ap=0,ar=0;ap<an;++ap){if(ao.charAt(ap)=="\t"){ar+=aq-(ar%aq)}else{++ar}}return ar}function u(an){if(an.currentStyle){return an.currentStyle}return window.getComputedStyle(an,null)}function al(ao,ax){var aq=ao.ownerDocument.body;var aw=0,av=0,at=false;for(var an=ao;an;an=an.offsetParent){var au=an.offsetLeft,ap=an.offsetTop;if(an==aq){aw+=Math.abs(au);av+=Math.abs(ap)}else{aw+=au,av+=ap}if(ax&&u(an).position=="fixed"){at=true}}var ar=ax&&!at?null:aq;for(var an=ao.parentNode;an!=ar;an=an.parentNode){if(an.scrollLeft!=null){aw-=an.scrollLeft;av-=an.scrollTop}}return{left:aw,top:av}}if(document.documentElement.getBoundingClientRect!=null){al=function(aq,an){try{var ap=aq.getBoundingClientRect();ap={top:ap.top,left:ap.left}}catch(ar){ap={top:0,left:0}}if(!an){if(window.pageYOffset==null){var ao=document.documentElement||document.body.parentNode;if(ao.scrollTop==null){ao=document.body}ap.top+=ao.scrollTop;ap.left+=ao.scrollLeft}else{ap.top+=window.pageYOffset;ap.left+=window.pageXOffset}}return ap}}function I(an){return an.textContent||an.innerText||an.nodeValue||""}function a(an){if(t){an.selectionStart=0;an.selectionEnd=an.value.length}else{an.select()}}function ae(ao,an){return ao.line==an.line&&ao.ch==an.ch}function aa(ao,an){return ao.line<an.line||(ao.line==an.line&&ao.ch<an.ch)}function ab(an){return{line:an.line,ch:an.ch}}var aj=document.createElement("pre");function Q(an){aj.textContent=an;return aj.innerHTML}if(Q("a")=="\na"){Q=function(an){aj.textContent=an;return aj.innerHTML.slice(1)}}else{if(Q("\t")!="\t"){Q=function(an){aj.innerHTML="";aj.appendChild(document.createTextNode(an));return aj.innerHTML}}}v.htmlEscape=Q;function X(aq,ap){if(!ap){return 0}if(!aq){return ap.length}for(var ao=aq.length,an=ap.length;ao>=0&&an>=0;--ao,--an){if(aq.charAt(ao)!=ap.charAt(an)){break}}return an+1}function r(aq,an){if(aq.indexOf){return aq.indexOf(an)}for(var ao=0,ap=aq.length;ao<ap;++ao){if(aq[ao]==an){return ao}}return -1}function ah(an){return/\w/.test(an)||an.toUpperCase()!=an.toLowerCase()}var B="\n\nb".split(/\n/).length!=3?function(ap){var aq=0,ao,an=[];while((ao=ap.indexOf("\n",aq))>-1){an.push(ap.slice(aq,ap.charAt(ao-1)=="\r"?ao-1:ao));aq=ao+1}an.push(ap.slice(aq));return an}:function(an){return an.split(/\r?\n/)};v.splitLines=B;var af=window.getSelection?function(ao){try{return ao.selectionStart!=ao.selectionEnd}catch(an){return false}}:function(ap){try{var an=ap.ownerDocument.selection.createRange()}catch(ao){}if(!an||an.parentElement()!=ap){return false}return an.compareEndPoints("StartToEnd",an)!=0};v.defineMode("null",function(){return{token:function(an){an.skipToEnd()}}});v.defineMIME("text/plain","null");var S={3:"Enter",8:"Backspace",9:"Tab",13:"Enter",16:"Shift",17:"Ctrl",18:"Alt",19:"Pause",20:"CapsLock",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"PrintScrn",45:"Insert",46:"Delete",59:";",91:"Mod",92:"Mod",93:"Mod",127:"Delete",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'",63276:"PageUp",63277:"PageDown",63275:"End",63273:"Home",63234:"Left",63232:"Up",63235:"Right",63233:"Down",63302:"Insert",63272:"Delete"};v.keyNames=S;(function(){for(var an=0;an<10;an++){S[an+48]=String(an)}for(var an=65;an<=90;an++){S[an]=String.fromCharCode(an)}for(var an=1;an<=12;an++){S[an+111]=S[an+63235]="F"+an}})();return v})();CodeMirror.defineMode("javascript",function(J,N){var w=J.indentUnit;var R=N.json;var b=function(){function X(aa){return{type:aa,style:"keyword"}}var U=X("keyword a"),Z=X("keyword b"),Y=X("keyword c");var V=X("operator"),W={type:"atom",style:"atom"};return{"if":U,"while":U,"with":U,"else":Z,"do":Z,"try":Z,"finally":Z,"return":Y,"break":Y,"continue":Y,"new":Y,"delete":Y,"throw":Y,"var":X("var"),"const":X("var"),let:X("var"),"function":X("function"),"catch":X("catch"),"for":X("for"),"switch":X("switch"),"case":X("case"),"default":X("default"),"in":V,"typeof":V,"instanceof":V,"true":W,"false":W,"null":W,"undefined":W,"NaN":W,"Infinity":W}}();var O=/[+\-*&%=<>!?|]/;function S(W,V,U){V.tokenize=U;return U(W,V)}function h(X,U){var W=false,V;while((V=X.next())!=null){if(V==U&&!W){return false}W=!W&&V=="\\"}return W}var T,p;function C(W,V,U){T=W;p=U;return V}function l(Y,W){var U=Y.next();if(U=='"'||U=="'"){return S(Y,W,A(U))}else{if(/[\[\]{}\(\),;\:\.]/.test(U)){return C(U)}else{if(U=="0"&&Y.eat(/x/i)){Y.eatWhile(/[\da-f]/i);return C("number","number")}else{if(/\d/.test(U)){Y.match(/^\d*(?:\.\d*)?(?:[eE][+\-]?\d+)?/);return C("number","number")}else{if(U=="/"){if(Y.eat("*")){return S(Y,W,f)}else{if(Y.eat("/")){Y.skipToEnd();return C("comment","comment")}else{if(W.reAllowed){h(Y,"/");Y.eatWhile(/[gimy]/);return C("regexp","string-2")}else{Y.eatWhile(O);return C("operator",null,Y.current())}}}}else{if(U=="#"){Y.skipToEnd();return C("error","error")}else{if(O.test(U)){Y.eatWhile(O);return C("operator",null,Y.current())}else{Y.eatWhile(/[\w\$_]/);var X=Y.current(),V=b.propertyIsEnumerable(X)&&b[X];return(V&&W.kwAllowed)?C(V.type,V.style,X):C("variable","variable",X)}}}}}}}}function A(U){return function(W,V){if(!h(W,U)){V.tokenize=l}return C("string","string")}}function f(X,W){var U=false,V;while(V=X.next()){if(V=="/"&&U){W.tokenize=l;break}U=(V=="*")}return C("comment","comment")}var k={atom:true,number:true,variable:true,string:true,regexp:true};function u(Z,V,U,Y,W,X){this.indented=Z;this.column=V;this.type=U;this.prev=W;this.info=X;if(Y!=null){this.align=Y}}function x(W,V){for(var U=W.localVars;U;U=U.next){if(U.name==V){return true}}}function F(Y,V,U,X,Z){var aa=Y.cc;v.state=Y;v.stream=Z;v.marked=null,v.cc=aa;if(!Y.lexical.hasOwnProperty("align")){Y.lexical.align=true}while(true){var W=aa.length?aa.pop():R?y:z;if(W(U,X)){while(aa.length&&aa[aa.length-1].lex){aa.pop()()}if(v.marked){return v.marked}if(U=="variable"&&x(Y,X)){return"variable-2"}return V}}}var v={state:null,column:null,marked:null,cc:null};function a(){for(var U=arguments.length-1;U>=0;U--){v.cc.push(arguments[U])}}function H(){a.apply(null,arguments);return true}function m(V){var W=v.state;if(W.context){v.marked="def";for(var U=W.localVars;U;U=U.next){if(U.name==V){return}}W.localVars={name:V,next:W.localVars}}}var E={name:"this",next:{name:"arguments"}};function t(){if(!v.state.context){v.state.localVars=E}v.state.context={prev:v.state.context,vars:v.state.localVars}}function s(){v.state.localVars=v.state.context.vars;v.state.context=v.state.context.prev}function j(V,W){var U=function(){var X=v.state;X.lexical=new u(X.indented,v.stream.column(),V,null,X.lexical,W)};U.lex=true;return U}function G(){var U=v.state;if(U.lexical.prev){if(U.lexical.type==")"){U.indented=U.lexical.indented}U.lexical=U.lexical.prev}}G.lex=true;function c(V){return function U(W){if(W==V){return H()}else{if(V==";"){return a()}else{return H(arguments.callee)}}}}function z(U){if(U=="var"){return H(j("vardef"),K,c(";"),G)}if(U=="keyword a"){return H(j("form"),y,z,G)}if(U=="keyword b"){return H(j("form"),z,G)}if(U=="{"){return H(j("}"),n,G)}if(U==";"){return H()}if(U=="function"){return H(i)}if(U=="for"){return H(j("form"),c("("),j(")"),g,c(")"),G,z,G)}if(U=="variable"){return H(j("stat"),D)}if(U=="switch"){return H(j("form"),y,j("}","switch"),c("{"),n,G,G)}if(U=="case"){return H(y,c(":"))}if(U=="default"){return H(c(":"))}if(U=="catch"){return H(j("form"),t,c("("),r,c(")"),z,G,s)}return a(j("stat"),y,c(";"),G)}function y(U){if(k.hasOwnProperty(U)){return H(M)}if(U=="function"){return H(i)}if(U=="keyword c"){return H(B)}if(U=="("){return H(j(")"),B,c(")"),G,M)}if(U=="operator"){return H(y)}if(U=="["){return H(j("]"),P(y,"]"),G,M)}if(U=="{"){return H(j("}"),P(o,"}"),G,M)}return H()}function B(U){if(U.match(/[;\}\)\],]/)){return a()}return a(y)}function M(U,V){if(U=="operator"&&/\+\+|--/.test(V)){return H(M)}if(U=="operator"||U==":"){return H(y)}if(U==";"){return}if(U=="("){return H(j(")"),P(y,")"),G,M)}if(U=="."){return H(Q,M)}if(U=="["){return H(j("]"),y,c("]"),G,M)}}function D(U){if(U==":"){return H(G,z)}return a(M,c(";"),G)}function Q(U){if(U=="variable"){v.marked="property";return H()}}function o(U){if(U=="variable"){v.marked="property"}if(k.hasOwnProperty(U)){return H(c(":"),y)}}function P(W,U){function V(Y){if(Y==","){return H(W,V)}if(Y==U){return H()}return H(c(U))}return function X(Y){if(Y==U){return H()}else{return a(W,V)}}}function n(U){if(U=="}"){return H()}return a(z,n)}function K(U,V){if(U=="variable"){m(V);return H(I)}return H()}function I(U,V){if(V=="="){return H(y,I)}if(U==","){return H(K)}}function g(U){if(U=="var"){return H(K,e)}if(U==";"){return a(e)}if(U=="variable"){return H(L)}return a(e)}function L(U,V){if(V=="in"){return H(y)}return H(M,e)}function e(U,V){if(U==";"){return H(d)}if(V=="in"){return H(y)}return H(y,c(";"),d)}function d(U){if(U!=")"){H(y)}}function i(U,V){if(U=="variable"){m(V);return H(i)}if(U=="("){return H(j(")"),t,P(r,")"),G,z,s)}}function r(U,V){if(U=="variable"){m(V);return H()}}return{startState:function(U){return{tokenize:l,reAllowed:true,kwAllowed:true,cc:[],lexical:new u((U||0)-w,0,"block",false),localVars:N.localVars,context:N.localVars&&{vars:N.localVars},indented:0}},token:function(W,V){if(W.sol()){if(!V.lexical.hasOwnProperty("align")){V.lexical.align=false}V.indented=W.indentation()}if(W.eatSpace()){return null}var U=V.tokenize(W,V);if(T=="comment"){return U}V.reAllowed=!!(T=="operator"||T=="keyword c"||T.match(/^[\[{}\(,;:]$/));V.kwAllowed=T!=".";return F(V,U,T,p,W)},indent:function(Z,U){if(Z.tokenize!=l){return 0}var Y=U&&U.charAt(0),W=Z.lexical;if(W.type=="stat"&&Y=="}"){W=W.prev}var X=W.type,V=Y==X;if(X=="vardef"){return W.indented+4}else{if(X=="form"&&Y=="{"){return W.indented}else{if(X=="stat"||X=="form"){return W.indented+w}else{if(W.info=="switch"&&!V){return W.indented+(/^(?:case|default)\b/.test(U)?w:2*w)}else{if(W.align){return W.column+(V?0:1)}else{return W.indented+(V?0:w)}}}}}},electricChars:":{}"}});CodeMirror.defineMIME("text/javascript","javascript");CodeMirror.defineMIME("application/json",{name:"javascript",json:true});CodeMirror.defineMode("xml",function(z,k){var s=z.indentUnit;var y=k.htmlMode?{autoSelfClosers:{area:true,base:true,br:true,col:true,command:true,embed:true,frame:true,hr:true,img:true,input:true,keygen:true,link:true,meta:true,param:true,source:true,track:true,wbr:true},implicitlyClosed:{dd:true,li:true,optgroup:true,option:true,p:true,rp:true,rt:true,tbody:true,td:true,tfoot:true,th:true,tr:true},contextGrabbers:{dd:{dd:true,dt:true},dt:{dd:true,dt:true},li:{li:true},option:{option:true,optgroup:true},optgroup:{optgroup:true},p:{address:true,article:true,aside:true,blockquote:true,dir:true,div:true,dl:true,fieldset:true,footer:true,form:true,h1:true,h2:true,h3:true,h4:true,h5:true,h6:true,header:true,hgroup:true,hr:true,menu:true,nav:true,ol:true,p:true,pre:true,section:true,table:true,ul:true},rp:{rp:true,rt:true},rt:{rp:true,rt:true},tbody:{tbody:true,tfoot:true},td:{td:true,th:true},tfoot:{tbody:true},th:{td:true,th:true},thead:{tbody:true,tfoot:true},tr:{tr:true}},doNotIndent:{pre:true},allowUnquoted:true,allowMissing:false}:{autoSelfClosers:{},implicitlyClosed:{},contextGrabbers:{},doNotIndent:{},allowUnquoted:false,allowMissing:false};var a=k.alignCDATA;var f,g;function o(F,E){function C(H){E.tokenize=H;return H(F,E)}var D=F.next();if(D=="<"){if(F.eat("!")){if(F.eat("[")){if(F.match("CDATA[")){return C(x("atom","]]>"))}else{return null}}else{if(F.match("--")){return C(x("comment","-->"))}else{if(F.match("DOCTYPE",true,true)){F.eatWhile(/[\w\._\-]/);return C(A(1))}else{return null}}}}else{if(F.eat("?")){F.eatWhile(/[\w\._\-]/);E.tokenize=x("meta","?>");return"meta"}else{g=F.eat("/")?"closeTag":"openTag";F.eatSpace();f="";var G;while((G=F.eat(/[^\s\u00a0=<>\"\'\/?]/))){f+=G}E.tokenize=n;return"tag"}}}else{if(D=="&"){var B;if(F.eat("#")){if(F.eat("x")){B=F.eatWhile(/[a-fA-F\d]/)&&F.eat(";")}else{B=F.eatWhile(/[\d]/)&&F.eat(";")}}else{B=F.eatWhile(/[\w\.\-:]/)&&F.eat(";")}return B?"atom":"error"}else{F.eatWhile(/[^&<]/);return null}}}function n(D,C){var B=D.next();if(B==">"||(B=="/"&&D.eat(">"))){C.tokenize=o;g=B==">"?"endTag":"selfcloseTag";return"tag"}else{if(B=="="){g="equals";return null}else{if(/[\'\"]/.test(B)){C.tokenize=j(B);return C.tokenize(D,C)}else{D.eatWhile(/[^\s\u00a0=<>\"\'\/?]/);return"word"}}}}function j(B){return function(D,C){while(!D.eol()){if(D.next()==B){C.tokenize=n;break}}return"string"}}function x(C,B){return function(E,D){while(!E.eol()){if(E.match(B)){D.tokenize=o;break}E.next()}return C}}function A(B){return function(E,D){var C;while((C=E.next())!=null){if(C=="<"){D.tokenize=A(B+1);return D.tokenize(E,D)}else{if(C==">"){if(B==1){D.tokenize=o;break}else{D.tokenize=A(B-1);return D.tokenize(E,D)}}}}return"meta"}}var l,h;function b(){for(var B=arguments.length-1;B>=0;B--){l.cc.push(arguments[B])}}function e(){b.apply(null,arguments);return true}function i(B,D){var C=y.doNotIndent.hasOwnProperty(B)||(l.context&&l.context.noIndent);l.context={prev:l.context,tagName:B,indent:l.indented,startOfLine:D,noIndent:C}}function v(){if(l.context){l.context=l.context.prev}}function d(B){if(B=="openTag"){l.tagName=f;return e(m,c(l.startOfLine))}else{if(B=="closeTag"){var C=false;if(l.context){if(l.context.tagName!=f){if(y.implicitlyClosed.hasOwnProperty(l.context.tagName.toLowerCase())){v()}C=!l.context||l.context.tagName!=f}}else{C=true}if(C){h="error"}return e(t(C))}}return e()}function c(B){return function(C){if(C=="selfcloseTag"||(C=="endTag"&&y.autoSelfClosers.hasOwnProperty(l.tagName.toLowerCase()))){r(l.tagName.toLowerCase());return e()}if(C=="endTag"){r(l.tagName.toLowerCase());i(l.tagName,B);return e()}return e()}}function t(B){return function(C){if(B){h="error"}if(C=="endTag"){v();return e()}h="error";return e(arguments.callee)}}function r(C){var B;while(true){if(!l.context){return}B=l.context.tagName.toLowerCase();if(!y.contextGrabbers.hasOwnProperty(B)||!y.contextGrabbers[B].hasOwnProperty(C)){return}v()}}function m(B){if(B=="word"){h="attribute";return e(p,m)}if(B=="endTag"||B=="selfcloseTag"){return b()}h="error";return e(m)}function p(B){if(B=="equals"){return e(w,m)}if(!y.allowMissing){h="error"}return(B=="endTag"||B=="selfcloseTag")?b():e()}function w(B){if(B=="string"){return e(u)}if(B=="word"&&y.allowUnquoted){h="string";return e()}h="error";return(B=="endTag"||B=="selfCloseTag")?b():e()}function u(B){if(B=="string"){return e(u)}else{return b()}}return{startState:function(){return{tokenize:o,cc:[],indented:0,startOfLine:true,tagName:null,context:null}},token:function(E,D){if(E.sol()){D.startOfLine=true;D.indented=E.indentation()}if(E.eatSpace()){return null}h=g=f=null;var C=D.tokenize(E,D);D.type=g;if((C||g)&&C!="comment"){l=D;while(true){var B=D.cc.pop()||d;if(B(g||C)){break}}}D.startOfLine=false;return h||C},indent:function(E,B,D){var C=E.context;if((E.tokenize!=n&&E.tokenize!=o)||C&&C.noIndent){return D?D.match(/^(\s*)/)[0].length:0}if(a&&/<!\[CDATA\[/.test(B)){return 0}if(C&&/^<\//.test(B)){C=C.prev}while(C&&!C.startOfLine){C=C.prev}if(C){return C.indent+s}else{return 0}},compareStates:function(E,C){if(E.indented!=C.indented||E.tokenize!=C.tokenize){return false}for(var D=E.context,B=C.context;;D=D.prev,B=B.prev){if(!D||!B){return D==B}if(D.tagName!=B.tagName){return false}}},electricChars:"/"}});CodeMirror.defineMIME("application/xml","xml");if(!CodeMirror.mimeModes.hasOwnProperty("text/html")){CodeMirror.defineMIME("text/html",{name:"xml",htmlMode:true})}CodeMirror.defineMode("markdown",function(C,m){var i=CodeMirror.getMode(C,{name:"xml",htmlMode:true});var z="header",d="comment",B="quote",A="string",F="hr",t="link",E="string",g="em",j="strong",x="emstrong";var G=/^([*\-=_])(?:\s*\1){2,}\s*$/,p=/^[*\-+]\s+/,v=/^[0-9]+\.\s+/,n=/^(?:\={3,}|-{3,})$/,f=/^[^\[*_\\<>`]+/;function e(J,I,H){I.f=I.inline=H;return H(J,I)}function s(J,I,H){I.f=I.block=H;return H(J,I)}function o(H){H.em=false;H.strong=false;return null}function l(J,I){var H;if(I.indentationDiff>=4){I.indentation-=I.indentationDiff;J.skipToEnd();return d}else{if(J.eatSpace()){return null}else{if(J.peek()==="#"||J.match(n)){I.header=true}else{if(J.eat(">")){I.indentation++;I.quote=true}else{if(J.peek()==="["){return e(J,I,k)}else{if(J.match(G,true)){return F}else{if(H=J.match(p,true)||J.match(v,true)){I.indentation+=H[0].length;return A}}}}}}}return e(J,I,I.inline)}function y(J,I){var H=i.token(J,I.htmlState);if(H==="tag"&&I.htmlState.type!=="openTag"&&!I.htmlState.context){I.f=r;I.block=l}return H}function u(I){var H=[];if(I.strong){H.push(I.em?x:j)}else{if(I.em){H.push(g)}}if(I.header){H.push(z)}if(I.quote){H.push(B)}return H.length?H.join(" "):null}function b(I,H){if(I.match(f,true)){return u(H)}return undefined}function r(L,K){var J=K.text(L,K);if(typeof J!=="undefined"){return J}var I=L.next();if(I==="\\"){L.next();return u(K)}if(I==="`"){return e(L,K,w(d,"`"))}if(I==="["){return e(L,K,D)}if(I==="<"&&L.match(/^\w/,false)){L.backUp(1);return s(L,K,y)}var H=u(K);if(I==="*"||I==="_"){if(L.eat(I)){return(K.strong=!K.strong)?u(K):H}return(K.em=!K.em)?u(K):H}return u(K)}function D(J,I){while(!J.eol()){var H=J.next();if(H==="\\"){J.next()}if(H==="]"){I.inline=I.f=h;return t}}return t}function h(J,I){J.eatSpace();var H=J.next();if(H==="("||H==="["){return e(J,I,w(E,H==="("?")":"]"))}return"error"}function k(I,H){if(I.match(/^[^\]]*\]:/,true)){H.f=a;return t}return e(I,H,r)}function a(I,H){I.eatSpace();I.match(/^[^\s]+/,true);H.f=H.inline=r;return E}function c(H){if(!c[H]){c[H]=new RegExp("^(?:[^\\\\\\"+H+"]|\\\\.)*(?:\\"+H+"|$)")}return c[H]}function w(I,J,H){H=H||r;return function(L,K){L.match(c(J));K.inline=K.f=H;return I}}return{startState:function(){return{f:l,block:l,htmlState:i.startState(),indentation:0,inline:r,text:b,em:false,strong:false,header:false,quote:false}},copyState:function(H){return{f:H.f,block:H.block,htmlState:CodeMirror.copyState(i,H.htmlState),indentation:H.indentation,inline:H.inline,text:H.text,em:H.em,strong:H.strong,header:H.header,quote:H.quote}},token:function(J,I){if(J.sol()){if(J.match(/^\s*$/,true)){return o(I)}I.header=false;I.quote=false;I.f=I.block;var H=J.match(/^\s*/,true)[0].replace(/\t/g," ").length;I.indentationDiff=H-I.indentation;I.indentation=H;if(H>0){return null}}return I.f(J,I)},blankLine:o,getType:u}},"xml");CodeMirror.defineMIME("text/x-markdown","markdown");Ext.define("Docs.History",{singleton:true,init:function(){Ext.util.History.useTopWindow=false;Ext.util.History.init(function(){this.historyLoaded=true;this.initialNavigate()},this);Ext.util.History.on("change",function(b){this.navigate(b,true)},this)},notifyTabsLoaded:function(){this.tabsLoaded=true;this.initialNavigate()},initialNavigate:function(){if(this.tabsLoaded&&this.historyLoaded){this.navigate(Ext.util.History.getToken(),true)}},navigate:function(e,g){var f=this.parseToken(e);if(f.url=="#!/api"){Docs.App.getController("Classes").loadIndex(g)}else{if(f.type==="api"){Docs.App.getController("Classes").loadClass(f.url,g)}else{if(f.url==="#!/guide"){Docs.App.getController("Guides").loadIndex(g)}else{if(f.type==="guide"){Docs.App.getController("Guides").loadGuide(f.url,g)}else{if(f.url==="#!/video"){Docs.App.getController("Videos").loadIndex(g)}else{if(f.type==="video"){Docs.App.getController("Videos").loadVideo(f.url,g)}else{if(f.url==="#!/example"){Docs.App.getController("Examples").loadIndex()}else{if(f.type==="example"){Docs.App.getController("Examples").loadExample(f.url,g)}else{if(f.url==="#!/comment"){Docs.App.getController("Comments").loadIndex()}else{if(f.url==="#!/tests"){Docs.App.getController("Tests").loadIndex()}else{if(Docs.App.getController("Welcome").isActive()){Docs.App.getController("Welcome").loadIndex(g)}else{if(!this.noRepeatNav){this.noRepeatNav=true;var h=Ext.getCmp("doctabs").staticTabs[0];if(h){this.navigate(h.href,g)}}}}}}}}}}}}}},parseToken:function(d){var c=d&&d.match(/!?(\/(api|guide|example|video|comment|tests)(\/(.*))?)/);return c?{type:c[2],url:"#!"+c[1]}:{}},push:function(e,f){e=this.cleanUrl(e);if(!/^#!?/.test(e)){e="#!"+e}var d=Ext.util.History.getToken()||"";if("#"+d.replace(/^%21/,"!")!==e){Ext.util.History.add(e)}},cleanUrl:function(b){return b.replace(/^[^#]*#/,"#")}});Ext.define("Docs.view.examples.Container",{extend:"Ext.container.Container",alias:"widget.examplecontainer",layout:"fit",initComponent:function(){this.tpl=new Ext.XTemplate('<iframe style="width: 100%; height: 100%; border: 0;" src="{url}"></iframe>');this.callParent(arguments)},load:function(b){this.update(this.tpl.apply(b))},clear:function(){this.update("")}});Ext.define("Docs.controller.Content",{extend:"Ext.app.Controller",MIDDLE:1,title:"",loadIndex:function(b){b||Docs.History.push(this.baseUrl);this.getViewport().setPageTitle(this.title);Ext.getCmp("doctabs").activateTab(this.baseUrl);Ext.getCmp("card-panel").layout.setActiveItem(this.getIndex());this.getIndex().restoreScrollState()},opensNewWindow:function(b){return b.button===this.MIDDLE||b.shiftKey||b.ctrlKey},getBaseUrl:function(){return document.location.href.replace(/\/?(index.html|template.html)?#.*/,"")}});Ext.define("Docs.CommentCounts",{constructor:function(b){this.counts={};Ext.Array.each(b,function(a){this.counts[a._id]=a.value},this)},get:function(b){return this.counts[b.join("__")]||0},change:function(c,d){delete this.totals;return this.counts[c.join("__")]=this.get(c)+d},getClassTotal:function(b){if(!this.totals){this.totals={};Ext.Object.each(this.counts,function(a,f){var e=a.split("__");if(e[0]==="class"){this.totals[e[1]]=(this.totals[e[1]]||0)+f}},this)}return this.totals[b]}});Ext.define("Docs.CommentSubscriptions",{constructor:function(b){this.subscriptions={};Ext.Array.each(b,function(a){this.subscriptions[a.join("__")]=true},this)},has:function(b){return this.subscriptions[b.join("__")]},set:function(c,d){this.subscriptions[c.join("__")]=d}});Ext.define("Docs.Auth",{singleton:true,requires:["Ext.Ajax","Ext.util.Cookies"],init:function(c,d){Ext.Ajax.request({url:Docs.data.commentsUrl+"/session",params:{sid:this.getSid()},method:"GET",cors:true,callback:function(g,a,h){if(h&&h.responseText){var b=Ext.JSON.decode(h.responseText);if(b&&b.sessionID){this.setSid(b.sessionID)}if(b&&b.userName){this.currentUser=b}c.call(d,true)}else{c.call(d,false)}},scope:this})},login:function(b){Ext.Ajax.request({url:Docs.data.commentsUrl+"/login",method:"POST",cors:true,params:{username:b.username,password:b.password},callback:function(h,f,a){var g=Ext.JSON.decode(a.responseText);if(g.success){this.currentUser=g;this.setSid(g.sessionID,b.remember);b.success&&b.success.call(b.scope)}else{b.failure&&b.failure.call(b.scope,g.reason)}},scope:this})},logout:function(c,d){Ext.Ajax.request({url:Docs.data.commentsUrl+"/logout?sid="+this.getSid(),method:"POST",cors:true,callback:function(){this.currentUser=undefined;c&&c.call(d)},scope:this})},setSid:function(d,f){this.sid=d;if(d){var e=null;if(f){e=new Date();e.setTime(e.getTime()+(60*60*24*30*1000))}Ext.util.Cookies.set("sid",d,e)}else{Ext.util.Cookies.clear("sid")}},getSid:function(){if(!this.sid){this.sid=Ext.util.Cookies.get("sid")}return this.sid},getUser:function(){return this.currentUser},isLoggedIn:function(){return !!this.getUser()},isModerator:function(){return this.getUser()&&this.getUser().mod},getRegistrationUrl:function(){return Docs.data.commentsUrl+"/register"}});Ext.define("Docs.view.TabMenu",{extend:"Ext.menu.Menu",plain:true,componentCls:"tab-menu",initComponent:function(){this.addEvents("tabItemClick","closeAllTabs");this.items=[{text:"Close other tabs",iconCls:"close",cls:"close-all",handler:function(){this.fireEvent("closeAllTabs")},scope:this}];this.callParent()},addTab:function(c,d){this.insert(this.items.length-1,{text:c.text,iconCls:c.iconCls,origIcon:c.iconCls,href:c.href,cls:d,handler:this.onTabItemClick,scope:this})},onTabItemClick:function(b){this.fireEvent("tabItemClick",b)},addTabCls:function(c,d){this.items.each(function(a){if(a.href===c.href){a.addCls(d)}})}});Ext.define("Docs.LocalStore",{storeName:"",init:function(){this.localStorage=!!window.localStorage;this.store=Ext.create(this.storeName);if(this.localStorage){this.cleanup();this.store.load();if(window.addEventListener){window.addEventListener("storage",Ext.Function.bind(this.onStorageChange,this),false)}else{window.attachEvent("onstorage",Ext.Function.bind(this.onStorageChange,this))}}},onStorageChange:function(b){b=b||window.event;if(b.key===this.store.getProxy().id){this.store.load()}},syncStore:function(){this.localStorage&&this.store.sync()},cleanup:function(){var f=/-settings/;for(var d=0;d<window.localStorage.length;d++){var e=window.localStorage.key(d);if(!f.test(e)){window.localStorage.removeItem(e)}}}});Ext.define("Docs.ClassRegistry",{singleton:true,canonicalName:function(b){if(!this.altNames){this.altNames={};Ext.each(Docs.data.search,function(a){if(a.type==="class"&&!/:/.test(a.cls)){this.altNames[a.cls]=a.id}},this)}return this.altNames[b]||b},search:function(M){var r=5;var N=4;var R=3;var G=new Array(r*N*R);for(var D=0;D<G.length;D++){G[D]=[]}var J=r*N*0;var T=r*N*1;var L=r*N*2;var O=r*0;var A=r*1;var Q=r*2;var E=r*3;var H=/[.:]/.test(M);var F=Ext.escapeRe(M);var z=new RegExp("^"+F+"$","i");var S=new RegExp("^"+F,"i");var I=new RegExp(F,"i");var P=Docs.data.search;for(var D=0,B=P.length;D<B;D++){var K=P[D];var i=H?K.fullName:K.name;var C=K.meta.removed?E:(K.meta["private"]?Q:(K.meta.deprecated?A:O));if(z.test(i)){G[K.sort+C+J].push(this.highlightMatch(K,z))}else{if(S.test(i)){G[K.sort+C+T].push(this.highlightMatch(K,S))}else{if(I.test(i)){G[K.sort+C+L].push(this.highlightMatch(K,I))}}}}return Ext.Array.flatten(G)},highlightMatch:function(c,d){c=Ext.apply({},c);c.name=c.name.replace(d,"<strong>$&</strong>");c.fullName=c.fullName.replace(d,"<strong>$&</strong>");return c}});Ext.define("Docs.store.Search",{extend:"Ext.data.Store",fields:["name","fullName","icon","url","meta","sort"],proxy:{type:"memory",reader:{type:"json"}}});Ext.define("Docs.view.search.Dropdown",{extend:"Ext.view.View",alias:"widget.searchdropdown",floating:true,autoShow:false,autoRender:true,toFrontOnShow:true,focusOnToFront:false,store:"Search",id:"search-dropdown",overItemCls:"x-view-over",trackOver:true,itemSelector:"div.item",singleSelect:true,pageStart:0,pageSize:10,initComponent:function(){this.addEvents("changePage","footerClick");this.tpl=new Ext.XTemplate('<tpl for=".">','<div class="item">','<div class="icon {icon}"></div>','<div class="meta">{[this.getMetaTags(values.meta)]}</div>','<div class="title {[this.getCls(values.meta)]}">{name}</div>','<div class="class">{fullName}</div>',"</div>","</tpl>",'<div class="footer">','<tpl if="this.getTotal()">','<a href="#" class="prev"><</a>','<span class="total">{[this.getStart()+1]}-{[this.getEnd()]} of {[this.getTotal()]}</span>','<a href="#" class="next">></a>',"<tpl else>",'<span class="total">Nothing found</span>',"</tpl>","</div>",{getCls:function(b){return b["private"]?"private":(b.removed?"removed":"")},getMetaTags:function(b){return Ext.Array.map(Docs.data.signatures,function(a){return b[a.key]?'<span class="signature '+a.key+'">'+(a["short"])+"</span>":""}).join(" ")},getTotal:Ext.bind(this.getTotal,this),getStart:Ext.bind(this.getStart,this),getEnd:Ext.bind(this.getEnd,this)});this.on("afterrender",function(){this.el.addListener("click",function(){this.fireEvent("changePage",this,-1)},this,{preventDefault:true,delegate:".prev"});this.el.addListener("click",function(){this.fireEvent("changePage",this,+1)},this,{preventDefault:true,delegate:".next"});this.el.addListener("click",function(){this.fireEvent("footerClick",this)},this,{delegate:".footer"})},this);this.callParent(arguments)},setTotal:function(b){this.total=b},getTotal:function(){return this.total},setStart:function(b){this.pageStart=b},getStart:function(b){return this.pageStart},getEnd:function(c){var d=this.pageStart+this.pageSize;return d>this.total?this.total:d}});Ext.define("Docs.Syntax",{singleton:true,highlight:function(b){Ext.Array.forEach(Ext.query("pre",b.dom||b),function(a){a=Ext.get(a);if(a.child("code")){if(!(a.hasCls("inline-example")&&a.hasCls("preview"))){a.addCls("prettyprint")}}else{if(!a.parent(".CodeMirror")&&!a.hasCls("hierarchy")){a.addCls("notpretty")}}});prettyPrint()}});Ext.define("Docs.view.cls.Header",{extend:"Ext.container.Container",padding:"10 0 17 0",height:55,alias:"widget.classheader",cls:"classheader",initComponent:function(){this.tpl=Ext.create("Ext.XTemplate",'<h1 class="{[this.getClass(values)]}">','<tpl if="Docs.data.source">','<a href="#" class="class-source-link">{name}','<span class="class-source-tip">View source...</span>',"</a>","<tpl else>",'<strong class="class-source-link">{name}</strong>',"</tpl>",'<tpl if="singleton">',"<span>singleton</span>","</tpl>","<tpl if=\"values['enum']\">",'<span>enum of <b>{[values["enum"].type]}</b></span>',"</tpl>","{[this.renderAliases(values.aliases)]}","{[this.renderMetaTags(values.meta)]}","</h1>",'<tpl if="Docs.data.showPrintButton">','<a class="print" href="?print=/api/{name}" target="_blank">Print</a>',"</tpl>",{getClass:function(b){if(b.singleton){return"singleton"}else{if(b.component){return"component"}else{return"class"}}},renderAliases:function(e){var f={widget:"xtype",plugin:"ptype",feature:"ftype"};var d=[];e&&Ext.Object.each(e,function(a,b){d.push((f[a]||a)+": "+b.join(", "))});if(d.length>0){return"<span>"+d.join(", ")+"</span>"}else{return""}},renderMetaTags:function(b){return" "+Ext.Array.map(Docs.data.signatures,function(a){return b[a.key]?'<span class="signature '+a.key+'">'+(a["long"])+"</span>":""}).join(" ")}});if(Docs.data.source){this.on("render",this.initSourceLink,this)}this.callParent()},initSourceLink:function(){this.classLinkEvent("click",function(){var d=this.loadedCls.files;if(d.length===1){window.open("source/"+d[0].href)}else{var c=this.createFileMenu(d);c.showBy(this,undefined,[58,-20])}},this);this.classLinkEvent("mouseover",function(){this.el.down(".class-source-tip").addCls("hover")},this);this.classLinkEvent("mouseout",function(){this.el.down(".class-source-tip").removeCls("hover")},this)},classLinkEvent:function(d,e,f){this.el.on(d,e,f,{preventDefault:true,delegate:"a.class-source-link"})},createFileMenu:function(b){return new Ext.menu.Menu({items:Ext.Array.map(b,function(a){return{text:a.filename,handler:function(){window.open("source/"+a.href)}}},this)})},load:function(b){this.loadedCls=b;this.update(this.tpl.apply(b))}});Ext.define("Docs.view.Scrolling",{onClassMixedIn:function(b){Ext.Function.interceptBefore(b.prototype,"initComponent",this.prototype.initScrolling)},initScrolling:function(){this.scrollContext="index";this.scrollState={};this.on("afterrender",function(){this.getScrollEl().addListener("scroll",this.saveScrollState,this)},this)},setScrollContext:function(b){this.scrollContext=b},eraseScrollContext:function(b){delete this.scrollState[b]},saveScrollState:function(){this.scrollState[this.scrollContext]=this.getScrollTop()},restoreScrollState:function(){this.setScrollTop(this.scrollState[this.scrollContext]||0)},scrollToView:function(d,c){d=Ext.get(d);c=c||{};if(d){this.setScrollTop(this.getScrollTop()+d.getY()+(c.offset||0));c.highlight&&d.highlight()}},getScrollTop:function(){return this.getScrollEl().getScroll()["top"]},setScrollTop:function(b){return this.getScrollEl().scrollTo("top",b)},scrollToTop:function(){this.getScrollEl().scrollTo("top")},getScrollEl:function(){return this.body||this.el}});Ext.define("Docs.ContentGrabber",{singleton:true,get:function(f){var e;var d=Ext.get(f);if(d){e=d.dom.innerHTML;d.remove()}return e}});Ext.define("Docs.view.comments.HeaderMenu",{extend:"Ext.container.Container",alias:"widget.commentsHeaderMenu",componentCls:"comments-header-menu",html:["<h1>",' <a href="#" class="users selected">Users</a>',' <a href="#" class="targets">Topics</a>',' <a href="#" class="tags">Tags</a>',"</h1>"].join(""),afterRender:function(){this.callParent(arguments);Ext.Array.forEach(["users","targets","tags"],function(d){var c=this.getEl().down("a."+d);c.on("click",function(b,a){this.getEl().select("a",true).removeCls("selected");c.addCls("selected");this.fireEvent("select",d)},this,{preventDefault:true})},this)}});Ext.define("Docs.view.examples.Device",{config:{url:"",id:undefined,device:"phone",orientation:"landscape"},constructor:function(b){this.initConfig(b);Ext.apply(this,this.getIframeSize());this.id=this.id||Ext.id();this.tpl=new Ext.XTemplate('<div class="touchExample {device} {orientation}">','<iframe id={id} style="width: {width}; height: {height}; border: 0;" ','src="{[this.deviceUrl(values)]}"></iframe>',"</div>",{deviceUrl:function(a){return a.url+"?deviceType="+(a.device==="tablet"?"Tablet":"Phone")}})},toHtml:function(){return this.tpl.apply(this)},setDevice:function(b){this.device=b;Ext.apply(this,this.getIframeSize())},setOrientation:function(b){this.orientation=b;Ext.apply(this,this.getIframeSize())},getIframeSize:function(){var b={phone:{width:"481px",height:"320px"},miniphone:{width:"320px",height:"219px"},tablet:{width:"717px",height:"538px"}}[this.device];if(this.orientation==="landscape"){return b}else{return{width:b.height,height:b.width}}}});Ext.define("Docs.model.Test",{extend:"Ext.data.Model",fields:["id","name","href","code","options",{name:"status",defaultValue:"ready"},"message"]});Ext.define("Docs.model.Setting",{fields:["id","key","value"],extend:"Ext.data.Model",requires:["Ext.data.proxy.LocalStorage"],proxy:{type:window.localStorage?"localstorage":"memory",id:Docs.data.localStorageDb+"-settings"}});Ext.define("Docs.view.DocTree",{extend:"Ext.tree.Panel",alias:"widget.doctree",cls:"doc-tree iScroll",useArrows:true,rootVisible:false,border:false,bodyBorder:false,initComponent:function(){this.addEvents("urlclick");this.root.expanded=true;this.on("itemclick",this.onItemClick,this);this.on("beforeitemcollapse",this.handleBeforeExpandCollapse,this);this.on("beforeitemexpand",this.handleBeforeExpandCollapse,this);this.callParent();this.nodeTpl=new Ext.XTemplate('<a href="{url}" rel="{url}">{text}</a>');this.initNodeLinks()},initNodeLinks:function(){this.getRootNode().cascadeBy(this.applyNodeTpl,this)},applyNodeTpl:function(b){if(b.get("leaf")){b.set("text",this.nodeTpl.apply({text:b.get("text"),url:b.raw.url}));b.commit()}},onItemClick:function(h,j,k,l,i){var e=j.raw?j.raw.url:j.data.url;if(e){this.fireEvent("urlclick",e,i)}else{if(!j.isLeaf()){if(j.isExpanded()){j.collapse(false)}else{j.expand(false)}}}},selectUrl:function(d){var c=this.findNodeByUrl(d);if(c){c.bubble(function(a){a.expand()});this.getSelectionModel().select(c)}else{this.getSelectionModel().deselectAll()}},findNodeByUrl:function(b){return this.getRootNode().findChildBy(function(a){return b===a.raw.url},this,true)},findRecordByUrl:function(d){var c=this.findNodeByUrl(d);return c?c.raw:undefined},handleBeforeExpandCollapse:function(b){if(this.getView().isAnimating(b)){return false}}});Ext.define("Docs.view.cls.MemberWrap",{constructor:function(b){Ext.apply(this,b);this.el=Ext.get(b.el)},setExpanded:function(b){if(b){if(!this.isExpanded()){this.el.addCls("open")}}else{this.el.removeCls("open")}},isExpanded:function(){return this.el.hasCls("open")},getDefinedIn:function(){return this.el.down(".meta .defined-in").getAttribute("rel")},getMemberId:function(){return this.el.getAttribute("id")}});Ext.define("Docs.view.comments.Pager",{extend:"Ext.Component",alias:"widget.commentsPager",componentCls:"recent-comments-pager",afterRender:function(){this.callParent(arguments);this.getEl().on("click",function(){this.fireEvent("loadMore",this.offset+this.limit)},this,{preventDefault:true,delegate:"a.fetchMoreComments"})},configure:function(b){Ext.apply(this,b);this.update(this.getPagerHtml())},reset:function(){this.update("<span></span>No comments found.")},getPagerHtml:function(){var d=this.total_rows||0;var e=this.offset+this.limit;var f=Math.min(this.limit,d-e);if(d>e){return["<span></span>",'<a href="#" class="fetchMoreComments" rel="'+e+'">',"Showing comments 1-"+e+" of "+d+". ","Click to load "+f+" more...","</a>"].join("")}else{return"<span></span>That's all. Total "+d+" comments."}}});Ext.define("Docs.view.comments.FilterField",{extend:"Ext.form.field.Trigger",alias:"widget.commentsFilterField",triggerCls:"reset",componentCls:"comments-filter-field",hideTrigger:true,enableKeyEvents:true,initComponent:function(){this.callParent(arguments);this.on({keyup:this.onKeyUp,specialkey:this.onSpecialKey,scope:this})},onKeyUp:function(){this.fireEvent("filter",this.getValue());this.setHideTrigger(this.getValue().length===0)},onSpecialKey:function(c,d){if(d.keyCode===Ext.EventObject.ESC){this.reset();this.fireEvent("filter","")}},onTriggerClick:function(){this.reset();this.focus();this.fireEvent("filter","");this.setHideTrigger(true)}});Ext.define("Docs.Tip",{singleton:true,show:function(g,e,f){f=f||"right";this.tips=this.tips||{};if(this.tips[f]){var h=this.tips[f];h.update(g);h.setTarget(e);h.show()}else{var h=this.tips[f]=Ext.create("Ext.tip.ToolTip",{anchor:f,target:e,html:g});h.show()}}});Ext.define("Docs.view.examples.InlineToolbar",{extend:"Ext.toolbar.Toolbar",componentCls:"inline-example-tb",height:30,initComponent:function(){this.addEvents("buttonclick");this.items=[{iconCls:"code",padding:"0 2 0 0",margin:"0 3 0 0",text:"Code Editor",handler:this.createEventFirerer("code")},{padding:0,margin:"0 3 0 0",iconCls:"preview",text:"Live Preview",handler:this.createEventFirerer("preview")},"->",{padding:0,margin:0,iconCls:"copy",text:"Select Code",handler:this.createEventFirerer("copy")}];this.callParent(arguments)},createEventFirerer:function(b){return Ext.Function.bind(function(){this.fireEvent("buttonclick",b)},this)},activateButton:function(b){Ext.Array.each(this.query("button"),function(a){a.removeCls("active")});Ext.Array.each(this.query("button[iconCls="+b+"]"),function(a){a.addCls("active")})}});Ext.define("Docs.view.Header",{extend:"Ext.container.Container",alias:"widget.docheader",contentEl:"header-content",initComponent:function(){if(Docs.otherProducts){this.style="cursor: pointer;",this.cls="dropdown";this.menu=Ext.create("Ext.menu.Menu",{renderTo:Ext.getBody(),plain:true,items:Docs.otherProducts})}this.callParent()},listeners:{afterrender:function(b){if(this.menu){b.el.addListener("click",function(d,a){this.menu.showBy(this.el,"bl",[120,0])},this)}}}});Ext.define("Docs.view.examples.InlineEditor",{extend:"Ext.Panel",bodyPadding:2,autoScroll:true,componentCls:"inline-example-editor",initComponent:function(){this.addEvents("init","change");this.on("afterlayout",this.initCodeMirror,this);this.callParent(arguments)},initCodeMirror:function(b){if(!this.codemirror){this.codemirror=CodeMirror(this.body,{mode:"javascript",indentUnit:4,value:this.value,extraKeys:{Tab:"indentMore","Shift-Tab":"indentLess"},onChange:Ext.Function.bind(function(a){this.fireEvent("change")},this)});this.fireEvent("init")}},refresh:function(){this.codemirror.refresh()},getValue:function(){return this.codemirror?this.codemirror.getValue():this.value},getHeight:function(){var b=this.el.down(".CodeMirror-lines");return b?b.getHeight():undefined},selectAll:function(){var d=this.codemirror.lineCount()-1;var c=this.codemirror.getLine(d).length;this.codemirror.setSelection({line:0,ch:0},{line:d,ch:c})}});Ext.define("Docs.view.comments.Form",{extend:"Ext.Component",alias:"widget.commentsForm",requires:["Docs.Tip"],tpl:['<form class="commentForm <tpl if="!updateComment">newComment</tpl>">','<tpl if="title">',"<p>{title}</p>","</tpl>","<textarea>{content}</textarea>",'<div class="com-meta">',"{[Docs.Comments.avatar(values.user.emailHash)]}",'<div class="form-author">Logged in as {user.userName}</div>','<tpl if="!updateComment">','<label class="subscribe">','Email updates? <input type="checkbox" class="subscriptionCheckbox" <tpl if="userSubscribed">checked="checked"</tpl> />','<span class="sep"> | </span>',"</label>","</tpl>",'<a href="#" class="toggleCommentGuide">Show help ↓</a>','<input type="submit" class="sub submitComment" value="{[values.updateComment ? "Update" : "Post"]} comment" />','<tpl if="updateComment">',' or <a href="#" class="cancelUpdateComment">cancel</a>',"</tpl>","</div>",'<div class="commentGuideTxt" style="display: none;">',"<ul>",'<li>Use <strong><a href="http://daringfireball.net/projects/markdown/syntax" target="_blank">Markdown</a></strong>'," for formatting:</li>","</ul>",'<div class="markdown preview">',"<h4>Markdown</h4>","<pre>","**Bold**, _italic_\n","and `monospaced font`.\n","\n"," Indent with 4 spaces\n"," for a code block.\n","\n","1. numbered lists\n","2. are cool\n","\n","- bulleted lists\n","- make your point\n","\n","[External link](http//example.com)\n","\n","Leave a blank line\n","between paragraphs.\n","</pre>","</div>",'<div class="markdown result">',"<h4>Result</h4>","<strong>Bold</strong>, <em>italic</em> and<br/>","<code>monospaced font</code>.<br/>",'<pre class="prettyprint">',"Indent with 4 spaces\n","for a code block.","</pre>","<ol>","<li>numbered lists</li>","<li>are cool</li>","</ol>","<ul>","<li>bulleted lists</li>","<li>make your point</li>","</ul>",'<a href="http://example.com">External link</a><br/>',"<br/>","Leave a blank line between paragraphs.<br/><br/>","</div>","<ul>","<li>Use comments to:","<ul>","<li>Inform us about <strong>bugs in documentation.</strong></li>","<li>Give <strong>useful tips</strong> to other developers.</li>","<li><strong>Warn about bugs</strong> and problems that might bite.</li>","</ul>","</li>","<li>Don't post comments for:","<ul>","<li><strong>Questions about code or usage</strong>",' - use the <a href="http://www.sencha.com/forum" target="_blank">Sencha Forum</a>.</li>',"<li><strong>SDK bugs</strong>",' - use the <a href="http://www.sencha.com/forum" target="_blank">Sencha Forum</a>.</li>',"<li><strong>Docs App bugs</strong>",' - use the <a href="https://github.com/senchalabs/jsduck/issues" target="_blank">GitHub Issue tracker</a>.</li>',"</ul></li>","<li>Comments may be edited or deleted at any time by a moderator.</li>",'<li>Avatars can be managed at <a href="http://www.gravatar.com" target="_blank">Gravatar</a> (use your forum email address).</li>',"<li>To write a reply use <strong><code>@username</code></strong> syntax – the user will get notified.</li>","</ul>","</div>","</form>"],initComponent:function(){this.data={title:this.title,updateComment:(this.content!==undefined),content:this.content,userSubscribed:this.userSubscribed,user:this.user};this.callParent(arguments)},setValue:function(b){this.codeMirror.setValue(b)},afterRender:function(){this.callParent(arguments);this.makeCodeMirror(this.getEl().down("textarea").dom);this.bindEvents()},makeCodeMirror:function(d){var c=true;this.codeMirror=CodeMirror.fromTextArea(d,{mode:"markdown",lineWrapping:true,indentUnit:4,extraKeys:{Tab:"indentMore","Shift-Tab":"indentLess"},onFocus:Ext.Function.bind(function(){if(c&&this.codeMirror.getValue()===""){this.toggleGuide(true)}c=false},this)})},bindEvents:function(){this.getEl().on("click",function(){this.toggleGuide()},this,{preventDefault:true,delegate:"a.toggleCommentGuide"});this.getEl().on("click",function(){this.fireEvent("cancel")},this,{preventDefault:true,delegate:"a.cancelUpdateComment"});this.getEl().on("click",function(){this.fireEvent("submit",this.codeMirror.getValue())},this,{preventDefault:true,delegate:"input.submitComment"});this.getEl().on("click",function(c,d){this.fireEvent("subscriptionChange",Ext.get(d).dom.checked)},this,{delegate:"input.subscriptionCheckbox"})},toggleGuide:function(f){var d=this.getEl().down(".commentGuideTxt");d.setVisibilityMode(Ext.dom.Element.DISPLAY);var e=this.getEl().down(".toggleCommentGuide");if(!d.isVisible()||f===true){d.show(true);e.update("Hide help ↑")}else{d.hide(true);e.update("Show help ↓")}},showSubscriptionMessage:function(d){var e=this.getEl().down("input.subscriptionCheckbox");var f=d?"Updates to this thread will be e-mailed to you":"You have unsubscribed from this thread";Docs.Tip.show(f,e,"bottom")}});Ext.define("Docs.view.SimpleSelectBehavior",{mixins:{observable:"Ext.util.Observable"},constructor:function(c,d){this.mixins.observable.constructor.call(this,{listeners:d});c.on({select:this.onSelect,deselect:this.onDeselect,scope:this})},onSelect:function(c,d){this.selectedItem=d;this.fireEvent("select",d)},onDeselect:function(c,d){this.selectedItem=undefined;Ext.Function.defer(function(){if(!this.selectedItem){this.fireEvent("deselect",d)}},10,this)}});Ext.define("Docs.view.examples.InlinePreview",{extend:"Ext.Panel",requires:["Docs.view.examples.Device"],bodyPadding:"0 10",statics:{iframeCounter:0,getNextIframeId:function(){this.iframeCounter++;return this.iframeCounter.toString()}},options:{},constructor:function(b){b=b||{};b.iframeId=this.self.getNextIframeId();b.id="inline-preview-"+b.iframeId;this.callParent([b]);this.addEvents(["previewsuccess","previewfailure"])},initComponent:function(){this.html=this.getHtml();this.callParent(arguments)},getHtml:function(){if(Docs.data.touchExamplesUi){return Ext.create("Docs.view.examples.Device",{url:"eg-iframe.html",id:this.iframeId,device:this.options.device,orientation:this.options.orientation}).toHtml()}else{var b=new Ext.XTemplate('<iframe id="{id}" style="width: 100%; height: 100%; border: 0" frameBorder="0"></iframe>');return b.apply({id:this.iframeId})}},update:function(h){var f=this.options;var e=Ext.get(this.iframeId);var g=Ext.Function.bind(this.iframeCallback,this);if(e){e.on("load",function(){Ext.Function.defer(function(){e.dom.contentWindow.loadInlineExample(h+"\n",f,g)},100)},this,{single:true});e.dom.src="eg-iframe.html"}},iframeCallback:function(c,d){if(c){this.fireEvent("previewsuccess",this)}else{this.fireEvent("previewfailure",this,d)}},getHeight:function(){return document.getElementById(this.iframeId).parentNode.clientHeight}});Ext.define("Docs.view.cls.Logic",{showPrivateClasses:false,constructor:function(b){Ext.apply(this,b)}});Ext.define("Docs.view.comments.TopLevelDropZone",{extend:"Ext.dd.DropZone",getTargetFromEvent:function(b){return b.getTarget("a.side.toggleComments",10)},onNodeEnter:function(g,f,h,e){if(this.isValidDropTarget(e)){Ext.fly(g).addCls("drop-target-hover")}},onNodeOut:function(g,f,h,e){Ext.fly(g).removeCls("drop-target-hover")},onNodeOver:function(g,f,h,e){if(this.isValidDropTarget(e)){return this.dropAllowed}else{return false}},isValidDropTarget:function(b){return !!b.comment.get("parentId")},onNodeDrop:function(g,f,h,e){if(this.isValidDropTarget(e)){this.onValidDrop(e.comment,undefined);return true}return false},onValidDrop:Ext.emptyFn});Ext.define("Docs.view.comments.DragZone",{extend:"Ext.dd.DragZone",constructor:function(d,c){this.view=d;this.callParent([d.getEl(),c])},getDragData:function(f){var d=f.getTarget("img.drag-handle",10);if(d){var e=Ext.fly(d).up(this.view.itemSelector).dom;return{sourceEl:e,repairXY:Ext.fly(e).getXY(),ddel:this.cloneCommentEl(e),comment:this.view.getRecord(e)}}return false},cloneCommentEl:function(e){var f=e.cloneNode(true);var d=Ext.fly(f).down(".comments-list-with-form");d&&d.remove();f.id=Ext.id();return f},getRepairXY:function(){return this.dragData.repairXY}});Ext.define("Docs.view.comments.DropZone",{extend:"Ext.dd.DropZone",constructor:function(d,c){this.view=d;this.callParent([d.getEl(),c])},getTargetFromEvent:function(b){return b.getTarget(this.view.itemSelector,10)},onNodeEnter:function(g,f,h,e){if(this.isValidDropTarget(g,e)){Ext.fly(g).addCls("drop-target-hover")}},onNodeOut:function(g,f,h,e){Ext.fly(g).removeCls("drop-target-hover")},onNodeOver:function(g,f,h,e){if(this.isValidDropTarget(g,e)){return this.dropAllowed}else{return false}},isValidDropTarget:function(d,e){var f=this.view.getRecord(d);return f&&f.get("id")!==e.comment.get("id")},onNodeDrop:function(g,f,h,e){if(this.isValidDropTarget(g,e)){this.onValidDrop(e.comment,this.view.getRecord(g));return true}return false},onValidDrop:Ext.emptyFn});Ext.define("Docs.controller.Welcome",{extend:"Docs.controller.Content",baseUrl:"#",refs:[{ref:"viewport",selector:"#viewport"},{ref:"index",selector:"#welcomeindex"}],init:function(){this.addEvents("loadIndex")},loadIndex:function(){this.fireEvent("loadIndex");Ext.getCmp("treecontainer").hide();this.callParent([true])},isActive:function(){return !!this.getIndex().getTab()}});Ext.define("Docs.Comments",{extend:"Ext.util.Observable",singleton:true,requires:["Docs.Auth","Docs.CommentCounts","Docs.CommentSubscriptions","Ext.data.JsonP","Ext.Ajax"],init:function(c,d){if(!(Docs.data.commentsUrl&&Docs.data.commentsDomain&&this.isBrowserSupported())){c.call(d);return}Docs.Auth.init(function(a){if(a){this.enabled=true;this.fetchCountsAndSubscriptions(function(f,b){this.counts=new Docs.CommentCounts(f);this.subscriptions=new Docs.CommentSubscriptions(b);c.call(d)},this)}else{c.call(d)}},this)},isBrowserSupported:function(){return("withCredentials" in new XMLHttpRequest())||(Ext.ieVersion>=8)},fetchCountsAndSubscriptions:function(c,d){this.request("jsonp",{url:"/comments_meta",method:"GET",success:function(a){c.call(d,a.comments,a.subscriptions)},scope:this})},loadSubscriptions:function(c,d){this.fetchSubscriptions(function(a){this.subscriptions=new Docs.CommentSubscriptions(a);c.call(d)},this)},clearSubscriptions:function(){this.subscriptions=new Docs.CommentSubscriptions([])},fetchSubscriptions:function(c,d){this.request("jsonp",{url:"/subscriptions",method:"GET",success:function(a){c.call(d,a.subscriptions)},scope:this})},isEnabled:function(){return this.enabled},getCount:function(b){return this.enabled?this.counts.get(b):0},changeCount:function(f,e){var d=this.counts.change(f,e);this.fireEvent("countChange",f,d)},hasSubscription:function(b){return this.subscriptions.has(b)},getClassTotalCount:function(b){return this.counts.getClassTotal(b)},load:function(d,f,e){this.request("jsonp",{url:"/comments",method:"GET",params:{startkey:Ext.JSON.encode(d)},success:f,scope:e})},loadReplies:function(f,d,e){this.request("jsonp",{url:"/replies",method:"GET",params:{parentId:f},success:d,scope:e})},post:function(b){this.request("ajax",{url:"/comments",method:"POST",params:{target:Ext.JSON.encode(b.target),parentId:b.parentId,comment:b.content,url:this.buildPostUrl(b.target)},callback:function(h,f,a){var g=Ext.JSON.decode(a.responseText);if(f&&g.success){this.changeCount(b.target,+1);b.callback&&b.callback.call(b.scope,g.comment)}},scope:this})},buildPostUrl:function(i){var f=i[0];var g=i[1];var h=i[2];if(f=="video"){var j="#!/video/"+g}else{if(f=="guide"){var j="#!/guide/"+g}else{var j="#!/api/"+g+(h?"-"+h:"")}}return"http://"+window.location.host+window.location.pathname+j},subscribe:function(h,e,g,f){this.request("ajax",{url:"/subscribe",method:"POST",params:{target:Ext.JSON.encode(h),subscribed:e},callback:function(c,a,d){var b=Ext.JSON.decode(d.responseText);if(a&&b.success){this.subscriptions.set(h,e);g&&g.call(f)}},scope:this})},request:function(c,d){d.url=this.buildRequestUrl(d.url);if(c==="jsonp"){Ext.data.JsonP.request(d)}else{d.cors=true;Ext.Ajax.request(d)}},buildRequestUrl:function(b){b=Docs.data.commentsUrl+"/"+Docs.data.commentsDomain+b;return b+(b.match(/\?/)?"&":"?")+"sid="+Docs.Auth.getSid()},avatar:function(c,d){return'<img class="avatar '+(d||"")+'" width="25" height="25" src="http://www.gravatar.com/avatar/'+c+'?s=25&r=PG&d=identicon">'},counterHtml:function(b){return b>0?'<span class="comment-counter-small">'+b+"</span>":""}});Ext.define("Docs.controller.Auth",{extend:"Ext.app.Controller",requires:["Docs.Auth","Docs.Comments"],refs:[{ref:"authHeaderForm",selector:"authHeaderForm"}],init:function(){this.control({"authHeaderForm, authForm":{login:this.login,logout:this.logout}});var b=this.getController("Tabs");b.onLaunch=Ext.Function.createSequence(b.onLaunch,this.afterTabsLaunch,this)},afterTabsLaunch:function(){if(Docs.Comments.isEnabled()){if(Docs.Auth.isLoggedIn()){this.setLoggedIn()}else{this.setLoggedOut()}}},login:function(e,g,f,h){Docs.Auth.login({username:g,password:f,remember:h,success:this.setLoggedIn,failure:function(a){e.showMessage(a)},scope:this})},logout:function(b){Docs.Auth.logout(this.setLoggedOut,this)},setLoggedIn:function(){Docs.Comments.loadSubscriptions(function(){this.getAuthHeaderForm().showLoggedIn(Docs.Auth.getUser());this.eachCmp("commentsListWithForm",function(b){b.showCommentingForm()});this.eachCmp("commentsList",function(b){b.refresh()});this.getController("Tabs").showCommentsTab()},this)},setLoggedOut:function(){Docs.Comments.clearSubscriptions();this.getAuthHeaderForm().showLoggedOut();this.eachCmp("commentsListWithForm",function(b){b.showAuthForm()});this.eachCmp("commentsList",function(b){b.refresh()});this.getController("Tabs").hideCommentsTab()},eachCmp:function(e,f,d){Ext.Array.forEach(Ext.ComponentQuery.query(e),f,d)}});Ext.define("Docs.controller.Failure",{extend:"Docs.controller.Content",baseUrl:"#",refs:[{ref:"viewport",selector:"#viewport"},{ref:"index",selector:"#failure"}],show404:function(c){var d=new Ext.XTemplate("<h1>Oops...</h1>","<p>{msg}</p>","<p>Maybe it was renamed to something else?<br> Or maybe your internet connection has failed?<br> ","This would be sad. Hopefully it's just a bug on our side.</p>","<p>Most likely you just followed a broken link inside this very documentation. ","Go and report it to the authors of the docs.</p>","<p>But if you think it's a bug in JSDuck documentation-generator itself, feel free to open ","an issue at the <a href='https://github.com/senchalabs/jsduck/issues'>JSDuck issue tracker</a>.</p>","<p>Sorry for all this :(</p>");Ext.getCmp("failure").update(d.apply({msg:c}));Ext.getCmp("card-panel").layout.setActiveItem("failure")}});Ext.define("Docs.controller.Search",{extend:"Ext.app.Controller",requires:["Docs.ClassRegistry","Docs.store.Search","Docs.History"],stores:["Search"],refs:[{ref:"field",selector:"#search-field"}],pageIndex:0,pageSize:10,init:function(){this.control({"#search-dropdown":{itemclick:function(c,d){this.loadRecord(d)},changePage:function(c,d){this.pageIndex+=d;this.search(this.getField().getValue());this.keepDropdown()},footerClick:function(b){this.keepDropdown()}},"#search-field":{keyup:function(m,l){var j=this.getDropdown();m.setHideTrigger(m.getValue().length===0);if(l.keyCode===Ext.EventObject.ESC||!m.value){j.hide();m.setValue("");return}else{j.show()}var h=j.getSelectionModel();var i=h.getLastSelected();var n=j.store.indexOf(i);var k=j.store.getCount()-1;if(l.keyCode===Ext.EventObject.UP){if(n===undefined){h.select(0)}else{h.select(n===0?k:(n-1))}}else{if(l.keyCode===Ext.EventObject.DOWN){if(n===undefined){h.select(0)}else{h.select(n===k?0:n+1)}}else{if(l.keyCode===Ext.EventObject.ENTER){l.preventDefault();i&&this.loadRecord(i)}else{this.pageIndex=0;clearTimeout(this.searchTimeout);this.searchTimeout=Ext.Function.defer(function(){this.search(m.value)},50,this)}}}},focus:function(b){if(b.value&&this.getDropdown().store.getCount()>0){this.getDropdown().show()}},blur:function(){var b=this.getDropdown();this.hideTimeout=Ext.Function.defer(b.hide,500,b)}}})},getDropdown:function(){return this.dropdown||(this.dropdown=Ext.getCmp("search-dropdown"))},keepDropdown:function(){clearTimeout(this.hideTimeout);this.getField().focus()},loadRecord:function(b){Docs.History.navigate(b.get("url"));this.getDropdown().hide()},search:function(h){var e=Docs.ClassRegistry.search(h);if(this.pageIndex<0){this.pageIndex=0}else{if(this.pageIndex>Math.floor(e.length/this.pageSize)){this.pageIndex=Math.floor(e.length/this.pageSize)}}var g=this.pageIndex*this.pageSize;var f=g+this.pageSize;this.getDropdown().setTotal(e.length);this.getDropdown().setStart(g);this.getDropdown().getStore().loadData(e.slice(g,f));this.getDropdown().alignTo("search-field","bl",[-12,-2]);if(e.length>0){this.getDropdown().getSelectionModel().select(0)}}});Ext.define("Docs.controller.CommentCounts",{extend:"Ext.app.Controller",requires:["Docs.Comments"],refs:[{ref:"class",selector:"classoverview"},{ref:"classIndex",selector:"#classindex"},{ref:"guide",selector:"#guide"},{ref:"guideIndex",selector:"#guideindex"},{ref:"video",selector:"#video"},{ref:"videoIndex",selector:"#videoindex"}],init:function(){Docs.Comments.on("countChange",this.updateCounts,this)},updateCounts:function(c,d){this.getClass().updateCommentCounts();this.getClassIndex().updateCommentCounts();this.getGuide().updateCommentCounts();this.getGuideIndex().updateCommentCounts();this.getVideo().updateCommentCounts();this.getVideoIndex().updateCommentCounts()}});Ext.define("Docs.controller.Videos",{extend:"Docs.controller.Content",baseUrl:"#!/video",title:"Videos",refs:[{ref:"viewport",selector:"#viewport"},{ref:"index",selector:"#videoindex"},{ref:"tree",selector:"#videotree"}],init:function(){this.addEvents("showVideo");this.control({"#videotree":{urlclick:function(b){this.loadVideo(b)}},"videoindex > thumblist":{urlclick:function(b){this.loadVideo(b)}}})},loadIndex:function(){Ext.getCmp("treecontainer").showTree("videotree");this.callParent()},loadVideo:function(j,h){var f=false;Ext.getCmp("card-panel").layout.setActiveItem("video");Ext.getCmp("treecontainer").showTree("videotree");var g=j.match(/^#!\/video\/(.*)$/)[1];var i=this.getVideo(g);if(!i){this.getController("Failure").show404("Video <b>"+g+"</b> was not found.");return}this.getViewport().setPageTitle(i.title);if(this.activeUrl!==j){Ext.getCmp("video").load(i);f=true}h||Docs.History.push(j);this.fireEvent("showVideo",g,{reRendered:f});this.getTree().selectUrl(j);this.activeUrl=j},getVideo:function(b){if(!this.map){this.map={};Ext.Array.forEach(Docs.data.videos,function(a){Ext.Array.forEach(a.items,function(d){this.map[d.name]=d},this)},this)}return this.map[b]}});Ext.define("Docs.controller.Guides",{extend:"Docs.controller.Content",baseUrl:"#!/guide",title:"Guides",refs:[{ref:"viewport",selector:"#viewport"},{ref:"index",selector:"#guideindex"},{ref:"tree",selector:"#guidetree"},{ref:"guide",selector:"#guide"}],cache:{},init:function(){this.addEvents("showGuide");this.control({"#guidetree":{urlclick:function(d,c){this.handleUrlClick(d,c,this.getTree())}},"guideindex > thumblist":{urlclick:function(b){this.loadGuide(b)}},indexcontainer:{afterrender:function(b){b.el.addListener("click",function(d,a){this.handleUrlClick(a.href,d)},this,{preventDefault:true,delegate:".guide"})}},doctabs:{tabClose:function(b){this.getGuide().eraseScrollContext(b)}}})},handleUrlClick:function(d,f,e){d=d.replace(/.*#!?/,"#!");if(this.opensNewWindow(f)){window.open(d);e&&e.selectUrl(this.activeUrl?this.activeUrl:"")}else{this.loadGuide(d)}},loadIndex:function(){Ext.getCmp("treecontainer").showTree("guidetree");this.callParent()},loadGuide:function(j,h){Ext.getCmp("card-panel").layout.setActiveItem("guide");Ext.getCmp("treecontainer").showTree("guidetree");var g=j.match(/^#!\/guide\/(.*?)(-section-[0-9]+)?$/);var f=g[1];var i=g[2];j="#!/guide/"+f;h||Docs.History.push(j);if(this.cache[f]){this.showGuide(this.cache[f],j,f,i)}else{this.cache[f]="in-progress";Ext.data.JsonP.request({url:this.getBaseUrl()+"/guides/"+f+"/README.js",callbackName:f,success:function(a){this.cache[f]=a;this.showGuide(a,j,f,i)},failure:function(b,a){this.cache[f]=false;this.getController("Failure").show404("Guide <b>"+f+"</b> was not found.")},scope:this})}},showGuide:function(i,j,f,h){var g=false;if(i==="in-progress"){return}this.getViewport().setPageTitle(i.title);if(this.activeUrl!==j){Ext.getCmp("guide").load({name:f,content:i.guide});g=true}this.activeUrl=j;this.getGuide().setScrollContext(this.activeUrl);if(h){this.getGuide().scrollToEl(f+h)}else{this.getGuide().restoreScrollState()}this.fireEvent("showGuide",f,{reRendered:g});this.getTree().selectUrl(j)}});Ext.define("Docs.view.search.Container",{extend:"Ext.container.Container",alias:"widget.searchcontainer",requires:"Docs.view.search.Dropdown",initComponent:function(){if(Docs.data.search.length){this.cls="search";this.items=[{xtype:"triggerfield",triggerCls:"reset",emptyText:"Search",width:170,id:"search-field",enableKeyEvents:true,hideTrigger:true,onTriggerClick:function(){this.reset();this.focus();this.setHideTrigger(true);Ext.getCmp("search-dropdown").hide()}},{xtype:"searchdropdown"}]}this.callParent()}});Ext.define("Docs.controller.Examples",{extend:"Docs.controller.Content",baseUrl:"#!/example",title:"Examples",refs:[{ref:"viewport",selector:"#viewport"},{ref:"index",selector:"#exampleindex"},{ref:"tree",selector:"#exampletree"},{ref:"page",selector:"#example"}],init:function(){this.addEvents("showExample");this.control({"#exampletree":{urlclick:function(d,c){this.loadExample(d)}},"exampleindex > thumblist":{urlclick:function(b){this.loadExample(b)}},touchexamplecontainer:{afterrender:function(b){b.el.addListener("click",function(d,a){this.changeDevice("tablet")},this,{delegate:"button.tablet"});b.el.addListener("click",function(d,a){this.changeDevice("phone")},this,{delegate:"button.phone"});b.el.addListener("click",function(d,a){this.changeOrientation("portrait")},this,{delegate:"button.portrait"});b.el.addListener("click",function(d,a){this.changeOrientation("landscape")},this,{delegate:"button.landscape"});b.el.addListener("click",function(d,a){this.openInNewWindow()},this,{delegate:"button.new-window"})}}})},loadIndex:function(){Ext.getCmp("treecontainer").showTree("exampletree");this.callParent()},loadExample:function(d,f){var e=this.getExample(d);if(!e){this.getController("Failure").show404("Example <b>"+d+"</b> was not found.");return}this.getViewport().setPageTitle(e.text);if(this.activeUrl!==d){this.getPage().clear();this.activateExampleCard();this.getPage().load(e)}else{this.activateExampleCard()}f||Docs.History.push(d);this.fireEvent("showExample",d);this.getTree().selectUrl(d);this.activeUrl=d},activateExampleCard:function(){Ext.getCmp("card-panel").layout.setActiveItem("example");Ext.getCmp("treecontainer").showTree("exampletree")},getExample:function(b){if(!this.map){this.map={};Ext.Array.forEach(Docs.data.examples,function(a){Ext.Array.forEach(a.items,function(d){this.map["#!/example/"+d.name]=d},this)},this)}return this.map[b]},changeOrientation:function(b){this.getPage().setOrientation(b)},changeDevice:function(b){this.getPage().setDevice(b)},openInNewWindow:function(){window.open(this.getExample(this.activeUrl).url)}});Ext.define("Docs.view.Tabs",{extend:"Ext.container.Container",alias:"widget.doctabs",id:"doctabs",componentCls:"doctabs",requires:["Docs.History","Docs.view.TabMenu"],minTabWidth:80,maxTabWidth:160,animDuration:150,tabs:[],tabsInBar:[],tabCache:{},staticTabs:[],initComponent:function(){this.addEvents("tabActivate","tabClose");this.tpl=Ext.create("Ext.XTemplate",'<tpl for=".">','<div class="doctab overview {cls}{active}">','<div class="l"></div>','<div class="m">','<tpl if="text">','<a class="tabUrl ov-tab-text" href="{href}">{text}</a>',"<tpl else>",'<a class="tabUrl ov-tab" href="{href}"> </a>',"</tpl>","</div>",'<div class="r"></div>',"</div>","</tpl>",'<div style="float: left; width: 8px"> </div>','<div class="tab-overflow"></div>');this.html=this.tpl.applyTemplate(this.staticTabs);this.tabTpl=Ext.create("Ext.XTemplate",'<div class="doctab','{[values.active ? (" active") : ""]}','" style="','{[values.width ? ("width: " + values.width + "px;") : ""]}','{[values.visible ? "" : "visibility: hidden;"]}">','<div class="l"></div>','<div class="m">','<span class="icn {iconCls}"> </span>','<a class="tabUrl main-tab" href="{href}">{text}</a>',"</div>",'<div class="r"><a class="close" href="#"> </a></div>',"</div>");this.on("afterrender",this.initListeners,this);this.on("resize",this.refresh,this);this.callParent()},initListeners:function(){this.el.on("mouseover",function(c,d){Ext.get(d).addCls("ovr")},this,{delegate:".close"});this.el.on("mouseout",function(c,d){Ext.get(d).removeCls("ovr")},this,{delegate:".close"});this.el.on("click",function(f,d){var e=Ext.get(d).up(".doctab").down(".tabUrl").getAttribute("href");e=Docs.History.cleanUrl(e);this.removeTab(e);this.fireEvent("tabClose",e)},this,{delegate:".close",preventDefault:true});this.el.on("click",function(f,d){if(Ext.fly(f.getTarget()).hasCls("close")){return}var e=Ext.get(d).down(".tabUrl").getAttribute("href");this.fireEvent("tabActivate",e,{navigate:true})},this,{delegate:".doctab"});this.el.on("contextmenu",function(c,d){if(!Ext.get(d).hasCls("overview")){this.createMenu().showBy(d)}},this,{delegate:".doctab",preventDefault:true});this.el.on("click",Ext.emptyFn,this,{delegate:".tabUrl",preventDefault:true});this.el.on("mouseleave",function(){if(this.shouldResize){this.resizeTabs({animate:true})}},this)},setStaticTabs:function(b){this.staticTabs=b;this.refresh()},getStaticTabs:function(b){return this.staticTabs},addTab:function(d,c){this.tabCache[d.href]=d;if(!this.hasTab(d.href)){this.tabs.push(d.href);if(this.roomForNewTab()){this.addTabToBar(d,c)}this.addTabToMenu(this.overflowButton.menu,d)}if(c.activate){this.activateTab(d.href)}this.saveTabs()},removeTab:function(d){if(!this.hasTab(d)){return}this.removeFromArray(this.tabs,d);var e=this.removeFromArray(this.tabsInBar,d);var f=this.tabs[this.tabsInBar.length];if(f){this.tabsInBar.push(f)}if(this.activeTab===d){if(this.tabs.length===0){Docs.App.getController(this.getControllerName(d)).loadIndex()}else{if(e===this.tabs.length){e-=1}this.activateTab(this.tabs[e]);this.fireEvent("tabActivate",this.tabs[e])}}if(this.tabs.length>=this.maxTabsInBar()){this.refresh()}else{this.removeTabFromBar(d)}this.saveTabs()},removeFromArray:function(f,d){var e=Ext.Array.indexOf(f,d);if(e!==-1){Ext.Array.erase(f,e,1)}return e},activateTab:function(d){this.activeTab=d;if(!this.inTabs(d)){this.swapLastTabWith(d)}Ext.Array.each(Ext.query(".doctab a.tabUrl"),function(a){Ext.get(a).up(".doctab").removeCls(["active","highlight"])});var e=Ext.query('.doctab a[href="'+d+'"]')[0];if(e){var f=Ext.get(e).up(".doctab");f.addCls("active")}this.highlightOverviewTab(d)},refresh:function(){var i=this.tpl.applyTemplate(this.staticTabs);var f=this.maxTabsInBar()<this.tabs.length?this.maxTabsInBar():this.tabs.length;this.tabsInBar=this.tabs.slice(0,f);for(var j=0;j<f;j++){var h=this.tabCache[this.tabs[j]];var g=Ext.apply(h,{visible:true,active:this.activeTab===h.href,width:this.tabWidth()});i+=this.tabTpl.applyTemplate(g)}this.el.dom.innerHTML=i;if(this.activeTab&&this.activeTab!==this.tabs[f-1]){this.activateTab(this.activeTab);this.fireEvent("tabActivate",this.activeTab)}this.highlightOverviewTab(this.activeTab);this.createOverflowButton();this.addToolTips()},closeAllTabs:function(){if(this.inTabBar(this.activeTab)){this.tabs=this.tabsInBar=[this.activeTab]}else{this.tabs=this.tabsInBar=[]}this.refresh();this.saveTabs()},tabData:function(){return Ext.Array.map(this.tabs,function(b){return this.tabCache[b]},this)},roomForNewTab:function(){return this.tabsInBar.length<this.maxTabsInBar()},hasTab:function(b){return Ext.Array.contains(this.tabs,b)},addTabToBar:function(e,d){this.tabsInBar.push(e.href);var f=Ext.get(this.tabTpl.append(this.el.dom,e));if(d.animate&&!Ext.isIE){f.setStyle("width","10px");f.setStyle({visibility:"visible"});f.animate({to:{width:this.tabWidth()}})}else{f.setStyle({visibility:"visible"})}this.resizeTabs(d)},inTabBar:function(b){return Ext.Array.contains(this.tabsInBar,b)},inTabs:function(d){var c=Ext.Array.pluck(this.staticTabs,"href").concat(this.tabsInBar);return Ext.Array.contains(c,d)},removeTabFromBar:function(d){var c=this.getTabEl(d);c.dom.removed=true;if(Ext.isIE){c.remove();this.createOverflowButton()}else{c.animate({to:{top:30},duration:this.animDuration}).animate({to:{width:10},duration:this.animDuration,listeners:{afteranimate:function(){c.remove();this.shouldResize=true;this.createOverflowButton()},scope:this}})}},swapLastTabWith:function(d){var e=this.getTabEl(this.tabsInBar[this.tabsInBar.length-1]);if(e){var f=this.tabTpl.append(document.body,this.tabCache[d]);e.dom.parentNode.replaceChild(f,e.dom);this.tabsInBar[this.tabsInBar.length-1]=d;Ext.get(f).setStyle({visibility:"visible",width:String(this.tabWidth())+"px"})}},highlightOverviewTab:function(d){var c=Ext.query(".doctab."+this.getControllerName(d).toLowerCase());if(c&&c[0]){Ext.get(c[0]).addCls("highlight")}},maxTabsInBar:function(){return Math.floor(this.tabBarWidth()/this.minTabWidth)},tabWidth:function(){var b=Math.floor(this.tabBarWidth()/this.tabsInBar.length)+6;if(b>this.maxTabWidth){return this.maxTabWidth}else{if(b<this.minTabWidth){return this.minTabWidth}else{return b}}},tabBarWidth:function(){return this.getWidth()-(this.staticTabs.length*50)-15},resizeTabs:function(b){this.shouldResize=false;Ext.Array.each(Ext.query(".doctab"),function(a){var d=Ext.get(a);if(!d.dom.removed&&!d.hasCls("overview")){if(b&&b.animate&&!Ext.isIE){d.animate({to:{width:this.tabWidth()}})}else{d.setWidth(this.tabWidth())}}},this)},getTabEl:function(c){var d=Ext.query('.doctab a[href="'+c+'"]');if(d&&d[0]){return Ext.get(d[0]).up(".doctab")}},createOverflowButton:function(){if(this.overflowButton){this.overflowButton.destroy()}this.overflowButton=Ext.create("Ext.button.Button",{baseCls:"",renderTo:this.getEl().down(".tab-overflow"),menu:this.createMenu()})},createMenu:function(){var b=new Docs.view.TabMenu({listeners:{closeAllTabs:this.closeAllTabs,tabItemClick:function(a){this.fireEvent("tabActivate",a.href,{navigate:true})},scope:this}});Ext.Array.each(this.tabs,function(a){this.addTabToMenu(b,this.tabCache[a])},this);return b},addTabToMenu:function(g,h){var f=Ext.Array.indexOf(this.tabs,h.href);if(this.tabs.length>this.tabsInBar.length&&f===this.maxTabsInBar()){g.addTabCls(h,"overflow")}var e=this.inTabBar(h.href);g.addTab(h,e?"":"overflow")},addToolTips:function(){Ext.Array.each(this.staticTabs,function(c){var d=Ext.get(Ext.query(".doctab."+c.cls)[0]);if(d){Ext.create("Ext.tip.ToolTip",{target:d,html:c.tooltip})}})},saveTabs:function(){Docs.Settings.set("tabs",this.tabs)},getControllerName:function(b){if(/#!?\/api/.test(b)){return"Classes"}else{if(/#!?\/guide/.test(b)){return"Guides"}else{if(/#!?\/video/.test(b)){return"Videos"}else{if(/#!?\/example/.test(b)){return"Examples"}else{if(/#!?\/tests/.test(b)){return"Tests"}else{if(/#!?\/comment/.test(b)){return"Comments"}else{return"Index"}}}}}}}});Ext.define("Docs.controller.Tests",{extend:"Docs.controller.Content",baseUrl:"#!/tests",refs:[{ref:"viewport",selector:"#viewport"},{ref:"index",selector:"#testsindex"}],init:function(){this.addEvents("loadIndex");this.control({"#testsgrid":{afterrender:this.loadExamples}})},loadIndex:function(){this.fireEvent("loadIndex");Ext.getCmp("treecontainer").hide();this.callParent([true])},isActive:function(){return !!this.getIndex().getTab()},loadExamples:function(){this.getIndex().disable();Ext.data.JsonP.request({url:this.getBaseUrl()+"/inline-examples.js",callbackName:"__inline_examples__",success:function(b){this.getIndex().addExamples(b);this.getIndex().enable()},scope:this})}});Ext.define("Docs.controller.Classes",{extend:"Docs.controller.Content",baseUrl:"#!/api",title:"API Documentation",requires:["Docs.History","Docs.Syntax","Docs.ClassRegistry"],refs:[{ref:"viewport",selector:"#viewport"},{ref:"index",selector:"#classindex"},{ref:"header",selector:"classheader"},{ref:"overview",selector:"classoverview"},{ref:"tabPanel",selector:"classtabpanel"},{ref:"tree",selector:"#classtree"},{ref:"favoritesGrid",selector:"#favorites-grid"}],cache:{},init:function(){this.addEvents("showIndex","showClass","showMember");Ext.getBody().addListener("click",function(c,d){this.handleUrlClick(decodeURI(d.href),c)},this,{preventDefault:true,delegate:".docClass"});this.control({classtree:{urlclick:function(d,c){this.handleUrlClick(d,c,this.getTree())}},toolbar:{toggleExpanded:function(b){this.getOverview().setAllMembersExpanded(b)}},classoverview:{afterrender:function(b){b.el.addListener("click",function(i,k){var h=Ext.get(k).up(".member"),l=h.down(".meta .defined-in"),j=l.getAttribute("rel"),a=h.getAttribute("id");if(this.getOverview().isMemberExpanded(a)){this.setExpanded(a,false)}else{this.setExpanded(a,true);this.fireEvent("showMember",j,a)}},this,{preventDefault:true,delegate:".expandable"});b.el.addListener("click",Ext.emptyFn,this,{preventDefault:true,delegate:".not-expandable"})}},treecontainer:{afterrender:function(b){b.el.addListener("dblclick",function(){if(b.getWidth()<30){b.setWidth(b.expandedWidth)}else{b.expandedWidth=b.getWidth();b.setWidth(20)}},this,{delegate:".x-resizable-handle"})}},doctabs:{tabClose:function(b){this.getOverview().eraseScrollContext(b)}}})},setExpanded:function(f,d){var e=this.currentCls;if(!e.expanded){e.expanded={}}this.getOverview().setMemberExpanded(f,d);if(d){e.expanded[f]=d}else{delete e.expanded[f]}},applyExpanded:function(b){Ext.Object.each(b.expanded||{},function(a){Ext.get(a).addCls("open")},this)},handleUrlClick:function(d,f,e){d=Docs.History.cleanUrl(d);if(this.opensNewWindow(f)){window.open(d);e&&e.selectUrl(this.currentCls?"#!/api/"+this.currentCls.name:"")}else{this.loadClass(d)}},loadIndex:function(b){Ext.getCmp("treecontainer").showTree("classtree");this.callParent(arguments);this.fireEvent("showIndex")},loadClass:function(f,i){Ext.getCmp("card-panel").layout.setActiveItem("classcontainer");Ext.getCmp("treecontainer").showTree("classtree");i||Docs.History.push(f);var j=f.match(/^#!\/api\/(.*?)(?:-(.*))?$/);var g=Docs.ClassRegistry.canonicalName(j[1]);var h=j[2];if(this.getOverview()){this.getOverview().setLoading(true)}if(this.cache[g]){this.showClass(this.cache[g],h)}else{this.cache[g]="in-progress";Ext.data.JsonP.request({url:this.getBaseUrl()+"/output/"+g+".js",callbackName:g.replace(/\./g,"_"),success:function(b,a){this.cache[g]=b;this.showClass(b,h)},failure:function(b,a){this.cache[g]=false;this.getOverview().setLoading(false);this.getController("Failure").show404("Class <b>"+g+"</b> was not found.")},scope:this})}},showClass:function(e,f){var d=false;if(e==="in-progress"){return}this.getOverview().setLoading(false);this.getViewport().setPageTitle(e.name);if(this.currentCls!==e){this.currentCls=e;this.getHeader().load(e);this.getOverview().load(e);this.applyExpanded(e);d=true}this.currentCls=e;this.getOverview().setScrollContext("#!/api/"+e.name);if(f){this.getOverview().scrollToEl("#"+f);this.fireEvent("showMember",e.name,f)}else{this.getOverview().restoreScrollState()}this.getTree().selectUrl("#!/api/"+e.name);this.fireEvent("showClass",e.name,{reRendered:d})}});Ext.define("Docs.view.welcome.Index",{extend:"Ext.container.Container",alias:"widget.welcomeindex",mixins:["Docs.view.Scrolling"],requires:["Docs.ContentGrabber"],cls:"welcome iScroll",initComponent:function(){this.html=Docs.ContentGrabber.get("welcome-content");this.hasContent=!!this.html;this.callParent(arguments)},getTab:function(){return this.hasContent?{cls:"index",href:"#",tooltip:"Home"}:false}});Ext.define("Docs.view.cls.Index",{extend:"Ext.container.Container",alias:"widget.classindex",requires:["Docs.ContentGrabber","Docs.Comments"],mixins:["Docs.view.Scrolling"],cls:"class-categories iScroll",margin:"15 10",autoScroll:true,initComponent:function(){this.tpl=new Ext.XTemplate('<h1 class="top" style="padding-bottom: 10px">API Documentation</h1>','<tpl if="notice">','<div class="notice">{notice}</div>',"</tpl>","{categories}");this.data={notice:Docs.ContentGrabber.get("notice-text"),categories:Docs.ContentGrabber.get("categories-content")};this.callParent(arguments)},afterRender:function(){this.callParent(arguments);if(!Docs.Comments.isEnabled()){return}this.initComments()},initComments:function(){this.getEl().select("a.docClass").each(function(a){var f=a.getHTML();var e=Docs.Comments.getClassTotalCount(f);if(e){Ext.DomHelper.append(a,Docs.Comments.counterHtml(e))}},this)},updateCommentCounts:function(){if(!this.getEl()){return}this.getEl().select(".comment-counter-small").remove();this.initComments()},getTab:function(){var b=(Docs.data.classes||[]).length>0;return b?{cls:"classes",href:"#!/api",tooltip:"API Documentation"}:false}});Ext.define("Docs.view.examples.TouchContainer",{extend:"Ext.panel.Panel",alias:"widget.touchexamplecontainer",requires:["Docs.view.examples.Device"],layout:"fit",cls:"example-container iScroll",autoScroll:true,bodyPadding:"10 0 5 0",initComponent:function(){this.dockedItems=[{xtype:"container",dock:"top",html:['<h1 class="example-title">Example</h1>','<div class="cls-grouping example-toolbar">','<div class="devices">','<button class="phone selected">Phone</button>','<button class="tablet">Tablet</button>',"</div>",'<span class="separator"> </span>','<div class="orientations">','<button class="landscape selected">Landscape</button>','<button class="portrait">Portrait</button>',"</div>",'<span class="separator"> </span>',"<div>",'<button class="new-window">Open in new window</button>',"</div>","</div>"].join("")}];this.callParent(arguments)},load:function(b){this.title=b.title+" Example";this.device=Ext.create("Docs.view.examples.Device",{url:b.url,device:b.device||"phone",orientation:b.orientation||"landscape"});this.refresh()},refresh:function(){this.update(this.device.toHtml());this.updateScale();this.updateTitle();this.updateButtons()},setDevice:function(b){this.device.setDevice(b);this.refresh()},setOrientation:function(b){this.device.setOrientation(b);this.refresh()},updateScale:function(){var b=Ext.query("iframe",this.el.dom)[0];if(b){b.onload=Ext.Function.bind(function(){var d=document.createElement("style");var a="html { overflow: hidden }";if(this.device.getDevice()==="tablet"){a+="body { font-size: 79.8% !important; }"}d.innerHTML=a;b.contentWindow.document.body.appendChild(d)},this)}},updateTitle:function(){Ext.get(Ext.query(".example-title")).update(this.title)},updateButtons:function(){Ext.Array.each(Ext.query(".example-toolbar .orientations button"),function(b){Ext.get(b).removeCls("selected")});Ext.get(Ext.query(".example-toolbar .orientations button."+this.device.getOrientation())).addCls("selected");Ext.Array.each(Ext.query(".example-toolbar .devices button"),function(b){Ext.get(b).removeCls("selected")});Ext.get(Ext.query(".example-toolbar .devices button."+this.device.getDevice())).addCls("selected")},clear:function(){this.update("")}});Ext.define("Docs.store.Settings",{extend:"Ext.data.Store",requires:["Docs.model.Setting"],model:"Docs.model.Setting"});Ext.define("Docs.Settings",{extend:"Docs.LocalStore",singleton:true,requires:"Docs.store.Settings",storeName:"Docs.store.Settings",defaults:{show:{"public":true,"protected":false,"private":false,deprecated:false,removed:false,inherited:true,accessor:true},comments:{hideRead:false},showPrivateClasses:false,classTreeLogic:"PackageLogic"},set:function(d,f){var e=this.store.findExact("key",d);if(e>-1){this.store.removeAt(e)}this.store.add({key:d,value:f});this.syncStore()},get:function(c){var d=this.store.findExact("key",c);return d>-1?this.store.getAt(d).get("value"):this.defaults[c]}});Ext.define("Docs.controller.Tabs",{extend:"Ext.app.Controller",requires:["Docs.History","Docs.Settings"],refs:[{ref:"welcomeIndex",selector:"#welcomeindex"},{ref:"classIndex",selector:"#classindex"},{ref:"guideIndex",selector:"#guideindex"},{ref:"videoIndex",selector:"#videoindex"},{ref:"exampleIndex",selector:"#exampleindex"},{ref:"testsIndex",selector:"#testsindex"},{ref:"commentIndex",selector:"#commentindex"},{ref:"classTree",selector:"#classtree"},{ref:"guideTree",selector:"#guidetree"},{ref:"exampleTree",selector:"#exampletree"},{ref:"videoTree",selector:"#videotree"},{ref:"doctabs",selector:"#doctabs"}],init:function(){this.getController("Classes").addListener({showClass:function(b){this.addTabFromTree("#!/api/"+b)},scope:this});this.getController("Guides").addListener({showGuide:function(b){this.addTabFromTree("#!/guide/"+b)},scope:this});this.getController("Examples").addListener({showExample:function(b){this.addTabFromTree(b)},scope:this});this.getController("Videos").addListener({showVideo:function(b){this.addTabFromTree("#!/video/"+b)},scope:this});this.control({"[componentCls=doctabs]":{tabActivate:function(d,c){Docs.History.push(d,c)},scope:this}})},onLaunch:function(){this.getDoctabs().setStaticTabs(Ext.Array.filter([this.getWelcomeIndex().getTab(),this.getClassIndex().getTab(),this.getGuideIndex().getTab(),this.getVideoIndex().getTab(),this.getExampleIndex().getTab(),this.getTestsIndex().getTab()],function(a){return a}));this.commentsTab=this.getCommentIndex().getTab();var b=Docs.Settings.get("tabs");if(b){Ext.Array.forEach(b,function(a){this.addTabFromTree(a,{animate:false})},this)}Docs.History.notifyTabsLoaded()},showCommentsTab:function(){var b=this.getDoctabs().getStaticTabs();this.getDoctabs().setStaticTabs(b.concat(this.commentsTab))},hideCommentsTab:function(){var b=this.getDoctabs().getStaticTabs();this.getDoctabs().setStaticTabs(Ext.Array.remove(b,this.commentsTab))},addTabFromTree:function(h,g){var e=this.getTree(h);var f=e.findRecordByUrl(h);if(f){this.addTab(f,g)}},addTab:function(d,c){c=c||{animate:true,activate:true};this.getDoctabs().addTab({href:d.url,text:d.text,iconCls:d.iconCls},c)},getTree:function(b){if(/#!?\/api/.test(b)){return this.getClassTree()}else{if(/#!?\/guide/.test(b)){return this.getGuideTree()}else{if(/#!?\/video/.test(b)){return this.getVideoTree()}else{if(/#!?\/example/.test(b)){return this.getExampleTree()}else{return this.getClassTree()}}}}}});Ext.define("Docs.controller.Comments",{extend:"Docs.controller.Content",baseUrl:"#!/comment",title:"Comments",requires:["Docs.Settings","Docs.Comments"],refs:[{ref:"viewport",selector:"#viewport"},{ref:"index",selector:"#commentindex"},{ref:"commentsFullList",selector:"commentsFullList"}],recentCommentsSettings:{},init:function(){this.control({commentsFullList:{hideReadChange:function(){this.fetchRecentComments()},sortOrderChange:function(b){this.recentCommentsSettings.sortByScore=(b==="votes");this.fetchRecentComments()}},commentsPager:{loadMore:function(b){this.fetchRecentComments(b)}},commentsUsers:{select:function(b){this.recentCommentsSettings.username=b;this.fetchRecentComments()}},commentsTargets:{select:function(b){this.recentCommentsSettings.targetId=b&&b.get("id");this.fetchRecentComments()}},commentsTags:{select:function(b){this.recentCommentsSettings.tagname=b&&b.get("tagname");this.fetchRecentComments()}}})},loadIndex:function(){this.fireEvent("loadIndex");Ext.getCmp("treecontainer").hide();if(!this.recentComments){this.fetchRecentComments();this.recentComments=true}this.callParent([true])},fetchRecentComments:function(f){var e=Docs.Settings.get("comments");var d={offset:f||0,limit:100,hideRead:e.hideRead?1:undefined,sortByScore:this.recentCommentsSettings.sortByScore?1:undefined,username:this.recentCommentsSettings.username,targetId:this.recentCommentsSettings.targetId,tagname:this.recentCommentsSettings.tagname};this.getCommentsFullList().setMasked(true);Docs.Comments.request("jsonp",{url:"/comments_recent",method:"GET",params:d,success:function(a){this.getCommentsFullList().setMasked(false);var b=f>0;this.getCommentsFullList().load(a,b)},scope:this})}});Ext.define("Docs.view.GroupTree",{extend:"Docs.view.DocTree",alias:"widget.grouptree",initComponent:function(){this.root={text:"Root",children:this.buildTree(this.data)};this.callParent()},buildTree:function(b){return Ext.Array.map(b,function(a){if(a.items){return{text:a.title,expanded:true,iconCls:"icon-pkg",children:this.buildTree(a.items)}}else{return this.convert(a)}},this)}});Ext.define("Docs.view.auth.BaseForm",{extend:"Ext.Component",requires:["Docs.Tip","Docs.Auth"],createLoginFormHtml:function(){return['<form class="loginForm">','<input class="username" type="text" name="username" placeholder="Username" />','<input class="password" type="password" name="password" placeholder="Password" />','<label><input type="checkbox" name="remember" /> Remember Me</label>','<input class="submit" type="submit" value="Sign in" />'," or ",'<a class="register" href="'+Docs.Auth.getRegistrationUrl()+'" target="_blank">Register</a>',"</form>"].join("")},bindFormSubmitEvent:function(){this.getEl().down("form").on("submit",this.submitLogin,this,{preventDefault:true})},submitLogin:function(m,h){var n=Ext.get(h);var j=n.down("input[name=username]").getValue();var i=n.down("input[name=password]").getValue();var l=n.down("input[name=remember]");var k=l?!!(l.getAttribute("checked")):false;this.fireEvent("login",this,j,i,k)},showMessage:function(c){var d=this.getEl().down("input[type=submit]");Docs.Tip.show(c,d,"bottom")}});Ext.define("Docs.view.auth.HeaderForm",{extend:"Docs.view.auth.BaseForm",alias:"widget.authHeaderForm",requires:["Docs.Comments"],afterRender:function(){this.callParent(arguments);this.getEl().addListener("click",this.showLoginForm,this,{preventDefault:true,delegate:".login"});this.getEl().addListener("click",function(){this.fireEvent("logout",this)},this,{preventDefault:true,delegate:".logout"})},showLoginForm:function(){this.update(this.createLoginFormHtml());this.bindFormSubmitEvent()},showLoggedIn:function(d){var c=Docs.Comments.avatar(d.emailHash);this.update(c+"<div><span>"+d.userName+'</span> | <a href="#" class="logout">Logout</a></div>')},showLoggedOut:function(){this.update('<a href="#" class="login">Sign in / Register</a>')}});Ext.define("Docs.view.ThumbList",{extend:"Ext.view.View",alias:"widget.thumblist",requires:["Docs.Comments"],cls:"thumb-list",itemSelector:"dl",urlField:"url",commentType:"",itemTpl:[],initComponent:function(){this.addEvents("urlclick");Ext.Array.forEach(this.data,function(c,d){c.id="sample-"+d});this.store=Ext.create("Ext.data.JsonStore",{fields:["id","title","items"]});this.store.loadData(this.flattenSubgroups(this.data));this.tpl=new Ext.XTemplate(Ext.Array.flatten(["<div>",'<tpl for=".">','<div><a name="{id}"></a><h2><div>{title}</div></h2>',"<dl>",'<tpl for="items">',this.itemTpl,"</tpl>",'<div style="clear:left"></div></dl></div>',"</tpl>","</div>"]));this.itemTpl=undefined;this.data=undefined;this.on("viewready",function(){this.initHover();if(Docs.Comments.isEnabled()){this.initComments()}},this);this.callParent(arguments)},initHover:function(){this.getEl().on("mouseover",function(c,d){Ext.get(d).addCls("over")},this,{delegate:"dd"});this.getEl().on("mouseout",function(c,d){Ext.get(d).removeCls("over")},this,{delegate:"dd"})},initComments:function(){this.getEl().select("dd").each(function(e){var d=e.getAttributeNS("ext",this.urlField).replace(/^.*\//,"");var f=Docs.Comments.getCount([this.commentType,d,""]);if(f){Ext.DomHelper.append(e.down("p"),Docs.Comments.counterHtml(f))}},this)},updateCommentCounts:function(){if(!this.getEl()){return}this.getEl().select(".comment-counter-small").remove();this.initComments()},flattenSubgroups:function(c){function d(a){if(a.items){return Ext.Array.map(a.items,d)}else{return a}}return Ext.Array.map(c,function(a){return{id:a.id,title:a.title,items:Ext.Array.map(a.items,function(b){if(b.items){var f=Ext.apply({},d(b)[0]);f.title=b.title;return f}else{return b}})}})},onContainerClick:function(c){var d=c.getTarget("h2",3,true);if(d){d.up("div").toggleCls("collapsed")}},onItemClick:function(h,j,l,i){var k=i.getTarget("dd",5,true);if(k&&!i.getTarget("a",2)){var e=k.getAttributeNS("ext",this.urlField);this.fireEvent("urlclick",e)}return this.callParent(arguments)}});Ext.define("Docs.view.guides.Index",{extend:"Ext.container.Container",alias:"widget.guideindex",requires:["Docs.view.ThumbList"],mixins:["Docs.view.Scrolling"],cls:"iScroll",margin:"10 0 0 0",autoScroll:true,initComponent:function(){this.items=[{xtype:"container",html:'<h1 class="eg">Guides</h1>'},Ext.create("Docs.view.ThumbList",{commentType:"guide",itemTpl:['<dd ext:url="#!/guide/{name}"><div class="thumb"><img src="guides/{name}/icon.png"/></div>',"<div><h4>{title}</h4><p>{description}</p></div>","</dd>"],data:Docs.data.guides})];this.callParent(arguments)},getTab:function(){var b=(Docs.data.guides||[]).length>0;return b?{cls:"guides",href:"#!/guide",tooltip:"Guides"}:false},updateCommentCounts:function(){this.down("thumblist").updateCommentCounts()}});Ext.define("Docs.view.videos.Index",{extend:"Ext.container.Container",alias:"widget.videoindex",requires:["Docs.view.ThumbList"],mixins:["Docs.view.Scrolling"],cls:"iScroll",margin:"10 0 0 0",autoScroll:true,initComponent:function(){this.items=[{xtype:"container",html:'<h1 class="eg">Videos</h1>'},Ext.create("Docs.view.ThumbList",{commentType:"video",itemTpl:['<dd ext:url="#!/video/{name}"><div class="thumb"><img src="{thumb}"/></div>',"<div><h4>{title}","</h4><p>{[values.description.substr(0,80)]}...</p></div>","</dd>"],data:Docs.data.videos})];this.callParent(arguments)},getTab:function(){var b=(Docs.data.videos||[]).length>0;return b?{cls:"videos",href:"#!/video",tooltip:"Videos"}:false},updateCommentCounts:function(){this.down("thumblist").updateCommentCounts()}});Ext.define("Docs.view.examples.Index",{extend:"Ext.container.Container",alias:"widget.exampleindex",requires:["Docs.view.ThumbList"],mixins:["Docs.view.Scrolling"],cls:"iScroll",margin:"10 0 0 0",autoScroll:true,initComponent:function(){this.cls+=Docs.data.touchExamplesUi?" touch-examples-ui":"";this.items=[{xtype:"container",html:'<h1 class="eg">Examples</h1>'},Ext.create("Docs.view.ThumbList",{itemTpl:['<dd ext:url="#!/example/{name}">','<div class="thumb"><img src="{icon}"/></div>',"<div><h4>{title}","<tpl if=\"status === 'new'\">",'<span class="new-sample"> (New)</span>',"</tpl>","<tpl if=\"status === 'updated'\">",'<span class="updated-sample"> (Updated)</span>',"</tpl>","<tpl if=\"status === 'experimental'\">",'<span class="new-sample"> (Experimental)</span>',"</tpl>","</h4><p>{description}</p></div>","</dd>"],data:Docs.data.examples})];this.callParent(arguments)},getTab:function(){var b=(Docs.data.examples||[]).length>0;return b?{cls:"examples",href:"#!/example",tooltip:"Examples"}:false}});Ext.define("Docs.view.comments.Users",{alias:"widget.commentsUsers",extend:"Ext.panel.Panel",componentCls:"comments-users",requires:["Docs.Comments","Docs.view.SimpleSelectBehavior","Docs.view.comments.FilterField"],layout:"border",initComponent:function(){this.items=[this.tabpanel=Ext.widget("tabpanel",{plain:true,region:"north",height:50,items:[{title:"Votes"},{title:"Comments"}],dockedItems:[{dock:"bottom",items:[{xtype:"commentsFilterField",emptyText:"Filter users by name...",width:320,height:20,listeners:{filter:this.onFilter,scope:this}}]}],listeners:{tabchange:this.onTabChange,scope:this}}),this.list=Ext.widget("dataview",{region:"center",cls:"iScroll users-list",autoScroll:true,store:Ext.create("Ext.data.Store",{fields:["userName","score","emailHash","mod"]}),allowDeselect:true,tpl:["<ul>",'<tpl for=".">',"<li>",'<span class="score">{score}</span>',"{[Docs.Comments.avatar(values.emailHash)]}",'<span class="username <tpl if="mod">moderator</tpl>">{userName}</span>',"</li>","</tpl>","</ul>"],itemSelector:"li"})];new Docs.view.SimpleSelectBehavior(this.list,{select:this.onSelect,deselect:this.onDeselect,scope:this});this.callParent(arguments)},afterRender:function(){this.callParent(arguments);this.fetchUsers("votes")},onTabChange:function(d,c){if(c.title==="Votes"){this.fetchUsers("votes")}else{this.fetchUsers("comments")}},onFilter:function(b){this.list.getSelectionModel().deselectAll();this.list.getStore().clearFilter(true);this.list.getStore().filter({property:"userName",value:b,anyMatch:true})},deselectAll:function(){this.list.getSelectionModel().deselectAll()},onSelect:function(b){this.selectedUser=b;this.fireEvent("select",b.get("userName"))},onDeselect:function(){this.selectedUser=undefined;this.fireEvent("select",undefined)},fetchUsers:function(b){Docs.Comments.request("jsonp",{url:"/users",method:"GET",params:{sortBy:b},success:this.loadUsers,scope:this})},loadUsers:function(c){this.list.getStore().loadData(c.data);if(this.selectedUser){var d=this.list.getStore().findExact("userName",this.selectedUser.get("userName"));this.list.getSelectionModel().select(d,false,true)}}});Ext.define("Docs.view.examples.Inline",{extend:"Ext.Panel",alias:"widget.inlineexample",requires:["Docs.view.examples.InlineEditor","Docs.view.examples.InlinePreview"],componentCls:"inline-example-cmp",layout:"card",border:0,resizable:{transparent:true,handles:"s",constrainTo:false},maxCodeHeight:400,options:{},constructor:function(){this.callParent(arguments);this.addEvents("previewsuccess","previewfailure")},initComponent:function(){this.options=Ext.apply({device:"phone",orientation:"landscape"},this.options);this.items=[this.editor=Ext.create("Docs.view.examples.InlineEditor",{cmpName:"code",value:this.value,listeners:{init:this.updateHeight,change:this.updateHeight,scope:this}}),this.preview=Ext.create("Docs.view.examples.InlinePreview",{cmpName:"preview",options:this.options})];this.relayEvents(this.preview,["previewsuccess","previewfailure"]);if(this.options.preview){this.activeItem=1;if(this.toolbar){this.toolbar.activateButton("preview")}}else{this.activeItem=0;if(this.toolbar){this.toolbar.activateButton("code")}}this.on("afterrender",this.init,this);this.callParent(arguments)},init:function(){var b=this.layout.getActiveItem();if(b.cmpName==="preview"){this.showPreview()}this.updateHeight();if(this.toolbar){this.initToolbarEvents()}},initToolbarEvents:function(){this.toolbar.on("buttonclick",function(b){if(b==="code"){this.showCode()}else{if(b==="preview"){this.showPreview()}else{if(b==="copy"){this.showCode();this.editor.selectAll()}}}},this)},showCode:function(){this.layout.setActiveItem(0);this.updateHeight();if(this.toolbar){this.toolbar.activateButton("code")}},showPreview:function(){this.preview.update(this.editor.getValue());this.layout.setActiveItem(1);this.updateHeight();if(this.toolbar){this.toolbar.activateButton("preview")}},updateHeight:function(){var d=this.preview.getHeight();var e=this.editor.getHeight();var f=30;if(Docs.data.touchExamplesUi&&d>0){this.setHeight(d+f)}else{if(e>0){this.setHeight(Ext.Number.constrain(e+f,0,this.maxCodeHeight))}}}});Ext.define("Docs.view.examples.InlineWrap",{requires:["Docs.view.examples.Inline","Docs.view.examples.InlineToolbar"],constructor:function(c){this.pre=c;var d=this.parseOptions(c.className);this.initToolbar();if(d.preview){this.replacePre(d)}else{this.tb.on("buttonclick",function(a){d.preview=(a==="preview");this.replacePre(d)},this,{single:true})}},parseOptions:function(c){var d={};Ext.Array.forEach(c.split(/ +/),function(a){if(a==="phone"||a==="miniphone"||a==="tablet"){d.device=a}else{if(a==="ladscape"||a==="portrait"){d.orientation=a}else{d[a]=true}}});return d},initToolbar:function(){var b=document.createElement("div");this.pre.parentNode.insertBefore(b,this.pre);this.tb=Ext.create("Docs.view.examples.InlineToolbar",{renderTo:b})},replacePre:function(d){var c=document.createElement("div");this.pre.parentNode.replaceChild(c,this.pre);Ext.create("Docs.view.examples.Inline",{height:200,renderTo:c,value:Ext.String.htmlDecode(Ext.util.Format.stripTags(this.pre.innerHTML)),options:d,toolbar:this.tb})}});Ext.define("Docs.controller.InlineExamples",{extend:"Ext.app.Controller",requires:["Docs.view.examples.InlineWrap"],init:function(){this.control({classoverview:{resize:this.createResizer(".class-overview"),afterload:this.replaceExampleDivs},guidecontainer:{resize:this.createResizer(".guide-container"),afterload:this.replaceExampleDivs}})},createResizer:function(b){return function(){Ext.Array.each(Ext.ComponentQuery.query(b+" .inlineexample"),function(a){if(a.editor&&a.isVisible()){a.doLayout()}})}},replaceExampleDivs:function(){Ext.Array.each(Ext.query(".inline-example"),function(b){Ext.create("Docs.view.examples.InlineWrap",b)},this)}});Ext.define("Docs.view.tests.BatchRunner",{extend:"Ext.container.Container",requires:["Docs.view.examples.Inline"],initComponent:function(){this.addEvents("start","finish","statuschange");this.callParent(arguments)},run:function(b){this.fireEvent("start");this.runNext({pass:0,fail:0,total:b.length,remaining:b})},runNext:function(h){this.fireEvent("statuschange",h);if(!h.remaining||h.remaining.length<1){this.fireEvent("finish");return}var j=h.remaining.shift();var i=j.get("options");i.preview=false;var f="var alert = function(){};\n";var g=Ext.create("Docs.view.examples.Inline",{cls:"doc-test-preview",height:0,value:f+j.get("code"),options:i,listeners:{previewsuccess:function(a){this.onSuccess(j,h)},previewfailure:function(a,b){this.onFailure(j,h,b)},scope:this}});this.removeAll();this.add(g);g.showPreview()},onSuccess:function(d,c){d.set("status","success");d.commit();c.pass++;this.runNext(c)},onFailure:function(e,f,d){e.set("status","failure");e.set("message",d.toString());e.commit();f.fail++;this.runNext(f)}});Ext.define("Docs.view.tests.Index",{extend:"Ext.container.Container",requires:["Docs.model.Test","Docs.view.tests.BatchRunner"],mixins:["Docs.view.Scrolling"],alias:"widget.testsindex",layout:{type:"vbox",align:"stretch",shrinkToFit:true},padding:10,initComponent:function(){this.store=Ext.create("Ext.data.Store",{model:"Docs.model.Test",data:[]});this.grid=Ext.create("Ext.grid.Panel",{itemId:"testsgrid",padding:"5 0 5 0",autoScroll:true,flex:1,store:this.store,selModel:{mode:"MULTI"},columns:[{xtype:"templatecolumn",text:"Name",width:300,tpl:'<a href="{href}">{name}</a>'},{xtype:"templatecolumn",text:"Status",width:80,tpl:'<span class="doc-test-{status}">{status}</span>'},{text:"Message",flex:1,dataIndex:"message"}],listeners:{itemdblclick:function(c,d){this.batchRunner.run([d])},scope:this}});this.batchRunner=Ext.create("Docs.view.tests.BatchRunner",{height:0,listeners:{start:this.disable,finish:this.enable,statuschange:this.updateTestStatus,scope:this}});this.items=[{html:"<h1>Inline examples test page</h1>",height:30},{itemId:"testcontainer",layout:{type:"vbox",align:"stretch",shrinkToFit:true},flex:1,items:[{itemId:"testcontrols",layout:"hbox",items:[{html:"<b>Double-click</b> to run an example, or",margin:"5 5 5 0"},{xtype:"button",itemId:"run-selected-button",text:"Run Selected",margin:5,handler:function(){this.batchRunner.run(this.grid.getSelectionModel().getSelection())},scope:this},{html:"or",margin:5},{xtype:"button",itemId:"run-all-button",text:"Run All Examples",margin:5,handler:function(){this.batchRunner.run(this.store.getRange())},scope:this},{itemId:"testStatus",margin:"5 5 5 15"}]},this.grid]},this.batchRunner];this.callParent(arguments)},getTab:function(){return Docs.data.tests?{cls:"tests",href:"#!/tests",tooltip:"Tests",text:"Tests"}:false},addExamples:function(b){this.store.add(b);this.setStatus(true,this.store.getCount()+" examples loaded.")},updateTestStatus:function(d){var c=d.pass+d.fail;this.setStatus(d.fail===0,c+"/"+d.total+" examples tested, "+d.fail+" failures")},setStatus:function(d,f){var e=d?"doc-test-success":"doc-test-failure";this.down("#testStatus").update('<span class="'+e+'">'+f+"</span>")}});Ext.define("Docs.view.cls.InheritanceLogic",{extend:"Docs.view.cls.Logic",create:function(){this.root={children:[],text:"Root"};this.privates=[];this.subclasses=this.buildLookupTable(this.classes);Ext.Array.forEach(this.classes,this.addClass,this);if(!this.showPrivateClasses){this.stripPrivateClasses(this.root)}this.sortTree(this.root);return{root:this.root,privates:this.privates}},sortTree:function(b){b.children.sort(Ext.bind(this.compare,this));Ext.Array.forEach(b.children,this.sortTree,this)},compare:function(g,h){var b=g.text.toLowerCase();var a=h.text.toLowerCase();return b>a?1:(b<a?-1:0)},buildLookupTable:function(d){var c={};Ext.Array.forEach(d,function(b){var a=b["extends"];if(a&&a!=="Object"){if(!c[a]){c[a]=[]}c[a].push(b)}},this);return c},classNode:function(b){return{text:b.name,url:"#!/api/"+b.name,iconCls:b.icon,cls:b["private"]?"private":""}},addClass:function(e){var d=e["extends"];if(!d||d==="Object"){var f=this.classNode(e);this.root.children.push(f);f.children=this.getSubclasses(e.name);f.leaf=f.children.length===0}},getSubclasses:function(b){if(!this.subclasses[b]){return[]}return Ext.Array.map(this.subclasses[b],function(a){var d=this.classNode(a);d.children=this.getSubclasses(a.name);d.leaf=d.children.length===0;return d},this)},stripPrivateClasses:function(b){b.children=Ext.Array.filter(b.children,function(a){this.stripPrivateClasses(a);if(a.cls==="private"&&a.children.length===0){this.privates.push(a);return false}else{return true}},this)}});Ext.define("Docs.view.cls.PackageLogic",{extend:"Docs.view.cls.Logic",create:function(){this.root={children:[],text:"Root"};this.packages={"":this.root};this.privates=[];Ext.Array.forEach(this.classes,this.addClass,this);this.sortTree(this.root);return{root:this.root,privates:this.privates}},sortTree:function(b){b.children.sort(this.compare);Ext.Array.forEach(b.children,this.sortTree,this)},compare:function(g,h){if(g.leaf===h.leaf){var b=g.text.toLowerCase();var a=h.text.toLowerCase();return b>a?1:(b<a?-1:0)}else{return g.leaf?1:-1}},addClass:function(g){if(g["private"]&&!this.showPrivateClasses){this.privates.push(this.classNode(g));return}if(this.packages[g.name]){var f=this.packages[g.name];var i=this.classNode(g);f.iconCls=i.iconCls;f.url=i.url}else{var h=this.packageName(g.name);var j=this.packages[h]||this.addPackage(h);var i=this.classNode(g);this.addChild(j,i);this.packages[g.name]=i}},addPackage:function(e){var g=this.packageName(e);var h=this.packages[g]||this.addPackage(g);var f=this.packageNode(e);this.addChild(h,f);this.packages[e]=f;return f},addChild:function(d,c){d.children.push(c);if(d.leaf){d.leaf=false}},classNode:function(b){return{text:this.shortName(b.name),url:"#!/api/"+b.name,iconCls:b.icon,cls:b["private"]?"private":"",leaf:true,children:[]}},packageNode:function(b){return{text:this.shortName(b),iconCls:"icon-pkg",leaf:false,children:[]}},packageName:function(b){return b.slice(0,-this.shortName(b).length-1)||""},shortName:function(d){var c=d.split(/\./);return c.pop()}});Ext.define("Docs.view.cls.Tree",{extend:"Docs.view.DocTree",alias:"widget.classtree",requires:["Docs.view.cls.PackageLogic","Docs.view.cls.InheritanceLogic","Docs.Settings"],initComponent:function(){this.setLogic(Docs.Settings.get("classTreeLogic"),Docs.Settings.get("showPrivateClasses"));this.dockedItems=[{xtype:"container",dock:"bottom",layout:"hbox",items:[{width:34},{xtype:"checkbox",boxLabel:"Show private classes",cls:"cls-private-cb",checked:Docs.Settings.get("showPrivateClasses"),listeners:{change:function(d,c){this.setLogic(Docs.Settings.get("classTreeLogic"),c)},scope:this}}]},{xtype:"container",dock:"bottom",cls:"cls-grouping",html:[this.makeButtonHtml("PackageLogic","By Package"),this.makeButtonHtml("InheritanceLogic","By Inheritance")].join("")}];this.on("afterrender",this.setupButtonClickHandler,this);this.callParent()},makeButtonHtml:function(d,c){return Ext.String.format('<button class="{0} {1}">{2}</button>',d,Docs.Settings.get("classTreeLogic")===d?"selected":"",c)},setupButtonClickHandler:function(){this.el.addListener("click",function(g,h){var f=Ext.get(h),e=Ext.get(Ext.query(".cls-grouping button.selected")[0]);if(e.dom===f.dom){return}e.removeCls("selected");f.addCls("selected");if(f.hasCls("PackageLogic")){this.setLogic("PackageLogic",Docs.Settings.get("showPrivateClasses"))}else{this.setLogic("InheritanceLogic",Docs.Settings.get("showPrivateClasses"))}},this,{delegate:"button"})},setLogic:function(i,f){Docs.Settings.set("classTreeLogic",i);Docs.Settings.set("showPrivateClasses",f);var g=new Docs.view.cls[i]({classes:this.data,showPrivateClasses:f});if(this.root){var h=this.getSelectionModel().getLastSelected();var j=g.create();this.expandLonelyNode(j.root);this.setRootNode(j.root);this.initNodeLinks();h&&this.selectUrl(h.raw.url)}else{var j=g.create();this.root=j.root;this.expandLonelyNode(this.root)}this.privates=j.privates},expandLonelyNode:function(d){var c=Ext.Array.filter(d.children,function(a){return a.children.length>0});if(c.length==1){c[0].expanded=true}},findRecordByUrl:function(b){return this.callParent([b])||this.findPrivateRecordByUrl(b)},findPrivateRecordByUrl:function(e){var f=this.privates;for(var d=0;d<f.length;d++){if(f[d].url===e){return f[d]}}return undefined}});Ext.define("Docs.view.TreeContainer",{extend:"Ext.panel.Panel",alias:"widget.treecontainer",requires:["Docs.view.cls.Tree","Docs.view.GroupTree"],cls:"iScroll",layout:"card",resizable:true,resizeHandles:"e",collapsible:true,hideCollapseTool:true,animCollapse:true,header:false,initComponent:function(){this.items=[{},{xtype:"classtree",id:"classtree",data:Docs.data.classes},{xtype:"grouptree",id:"exampletree",data:Docs.data.examples,convert:function(b){return{leaf:true,text:b.title,url:"#!/example/"+b.name,iconCls:"icon-example"}}},{xtype:"grouptree",id:"guidetree",data:Docs.data.guides,convert:function(b){return{leaf:true,text:b.title,url:"#!/guide/"+b.name,iconCls:"icon-guide"}}},{xtype:"grouptree",id:"videotree",data:Docs.data.videos,convert:function(b){return{leaf:true,text:b.title,url:"#!/video/"+b.name,iconCls:"icon-video"}}}];this.callParent()},showTree:function(b){this.show();this.layout.setActiveItem(b)}});Ext.define("Docs.view.comments.Expander",{alias:"widget.commentsExpander",extend:"Ext.Component",requires:["Docs.Comments","Docs.view.comments.TopLevelDropZone"],uses:["Docs.view.comments.ListWithForm"],componentCls:"comments-expander",initComponent:function(){this.tpl=new Ext.XTemplate('<a href="#" class="side toggleComments"><span></span></a>','<a href="#" class="name toggleComments">',"{[this.renderCount(values.count)]}","</a>",{renderCount:this.renderCount});this.data={count:this.count};this.callParent(arguments)},renderCount:function(b){if(b===1){return"View 1 comment."}else{if(b>1){return"View "+b+" comments."}else{return"No comments. Click to add."}}},afterRender:function(){this.callParent(arguments);this.getEl().select(".toggleComments").each(function(b){b.on("click",this.toggle,this,{preventDefault:true})},this);new Docs.view.comments.TopLevelDropZone(this.getEl().down(".side.toggleComments"),{onValidDrop:Ext.Function.bind(this.setParent,this)})},setParent:function(c,d){c.setParent(d,this.reload,this)},toggle:function(){this.expanded?this.collapse():this.expand()},expand:function(){this.expanded=true;this.getEl().addCls("open");this.getEl().down(".name").setStyle("display","none");if(this.list){this.list.show()}else{this.loadComments()}},collapse:function(){this.expanded=false;this.getEl().removeCls("open");this.getEl().down(".name").setStyle("display","block");if(this.list){this.list.hide()}},loadComments:function(){this.list=new Docs.view.comments.ListWithForm({target:this.target,newCommentTitle:this.newCommentTitle,renderTo:this.getEl(),listeners:{reorder:this.reload,scope:this}});this.reload()},reload:function(){Docs.Comments.load(this.target,function(b){this.list.load(b)},this)},setCount:function(b){this.getEl().down(".name").update(this.renderCount(b))}});Ext.define("Docs.view.comments.LargeExpander",{requires:["Docs.Comments","Docs.view.comments.Expander"],html:['<div class="comments-large-expander">','<h3 class="icon-comment">Comments</h3>',"<div></div>","</div>"].join(""),type:"class",constructor:function(e){Ext.apply(this,e);this.el=Ext.get(e.el);var d=Ext.DomHelper.append(this.el,this.html,true).down("div");var f=[this.type,this.name,""];this.expander=new Docs.view.comments.Expander({count:Docs.Comments.getCount(f),target:f,renderTo:d,onCountUpdated:this.onCountUpdated})},getExpander:function(){return this.expander}});Ext.define("Docs.view.guides.Container",{extend:"Ext.panel.Panel",alias:"widget.guidecontainer",componentCls:"guide-container",mixins:["Docs.view.Scrolling"],requires:["Docs.Comments","Docs.view.comments.LargeExpander"],initComponent:function(){this.addEvents("afterload");this.callParent(arguments)},scrollToEl:function(b){this.scrollToView(b,{highlight:true,offset:-100})},load:function(b){this.guide=b;this.tpl=this.tpl||new Ext.XTemplate(Docs.data.showPrintButton?'<a class="print guide" href="?print=/guide/{name}" target="_blank">Print</a>':"","{content}");this.update(this.tpl.apply(b));Docs.Syntax.highlight(this.getEl());if(Docs.Comments.isEnabled()){this.initComments()}this.fireEvent("afterload")},initComments:function(){this.expander=new Docs.view.comments.LargeExpander({type:"guide",name:this.guide.name,el:this.getEl().down(".x-panel-body")})},updateCommentCounts:function(){if(!this.expander){return}this.expander.getExpander().setCount(Docs.Comments.getCount(["guide",this.guide.name,""]))}});Ext.define("Docs.view.videos.Container",{extend:"Ext.panel.Panel",alias:"widget.videocontainer",componentCls:"video-container",requires:["Docs.Comments","Docs.view.comments.LargeExpander"],initComponent:function(){this.callParent(arguments);this.on("hide",this.pauseVideo,this)},pauseVideo:function(){var b=document.getElementById("video_player");if(b&&b.api_pause){b.api_pause()}},load:function(b){this.video=b;this.tpl=this.tpl||new Ext.XTemplate('<object width="640" height="360" id="video_player">','<param name="allowfullscreen" value="true" />','<param name="allowscriptaccess" value="always" />','<param name="flashvars" value="api=1" />','<param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id={id}&server=vimeo.com&color=4CC208&fullscreen=1" />','<embed src="http://vimeo.com/moogaloop.swf?clip_id={id}&server=vimeo.com&color=4CC208&fullscreen=1" ','type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="640" height="360"></embed>',"</object>","<h1>{title}</h1>","<p>{[this.linkify(values.description)]}</p>",{linkify:function(a){return a.replace(/(\bhttps?:\/\/\S+)/ig,"<a href='$1'>$1</a>")}});this.update(this.tpl.apply(b));if(Docs.Comments.isEnabled()){this.initComments()}},initComments:function(){this.expander=new Docs.view.comments.LargeExpander({type:"video",name:this.video.name,el:this.getEl().down(".x-panel-body")})},updateCommentCounts:function(){if(!this.expander){return}this.expander.getExpander().setCount(Docs.Comments.getCount(["video",this.video.name,""]))}});Ext.define("Docs.view.comments.MemberWrap",{extend:"Docs.view.cls.MemberWrap",requires:["Docs.Comments","Docs.view.comments.Expander"],constructor:function(d){this.callParent([d]);var c=Docs.Comments.getCount(this.getTarget());if(c>0){this.updateSignatureCommentCount(c)}},getTarget:function(){if(!this.target){this.target=["class",this.getDefinedIn(),this.getMemberId()]}return this.target},getExpander:function(){if(!this.expander){var b=Ext.DomHelper.append(this.el.down(".long"),"<div></div>");this.expander=new Docs.view.comments.Expander({count:Docs.Comments.getCount(this.getTarget()),target:this.getTarget(),newCommentTitle:this.getNewCommentTitle(),renderTo:b})}return this.expander},setCount:function(b){this.getExpander().setCount(b);this.updateSignatureCommentCount(b)},updateSignatureCommentCount:function(g){var e=this.el.down(".title");var f=e.down(".comment-counter-small");if(g>0){if(f){f.update(""+g)}else{var h=Ext.DomHelper.append(e,Docs.Comments.counterHtml(g),true);h.on("click",function(){this.el.addCls("open");this.getExpander().expand();this.parent.scrollToEl(this.getExpander().getEl())},this)}}else{if(f){f.remove()}}},getNewCommentTitle:function(){if(this.getDefinedIn()!==this.className){return["<b>Be aware.</b> This comment will be posted to <b>"+this.getDefinedIn()+"</b> class, ","from where this member is inherited from."].join("")}else{return undefined}},setExpanded:function(b){this.callParent([b]);if(b){this.getExpander().show()}}});Ext.define("Docs.view.comments.TopList",{extend:"Ext.panel.Panel",componentCls:"comments-toplist",requires:["Docs.view.SimpleSelectBehavior","Docs.view.comments.FilterField"],layout:"border",displayField:"text",scoreField:"score",filterEmptyText:"Filter by name...",initComponent:function(){this.items=[this.tabpanel=Ext.widget("tabpanel",{plain:true,region:"north",height:50,items:[{title:"By comment count"}],dockedItems:[{dock:"bottom",items:[{xtype:"commentsFilterField",emptyText:this.filterEmptyText,width:320,height:20,listeners:{filter:this.onFilter,scope:this}}]}]}),this.list=Ext.widget("dataview",{region:"center",cls:"iScroll top-list",autoScroll:true,store:new Ext.data.Store({model:this.model}),allowDeselect:true,tpl:["<ul>",'<tpl for=".">',"<li>",'<span class="score">{'+this.scoreField+"}</span>",'<span class="text">{'+this.displayField+"}</span>","</li>","</tpl>","</ul>"],itemSelector:"li"})];new Docs.view.SimpleSelectBehavior(this.list,{select:this.onSelect,deselect:this.onDeselect,scope:this});this.callParent(arguments)},afterRender:function(){this.callParent(arguments);this.list.getStore().load()},onFilter:function(b){this.list.getSelectionModel().deselectAll();this.list.getStore().clearFilter(true);this.list.getStore().filter({property:this.displayField,value:b,anyMatch:true})},deselectAll:function(){this.list.getSelectionModel().deselectAll()},onSelect:function(b){this.fireEvent("select",b)},onDeselect:function(){this.fireEvent("select",undefined)}});Ext.define("Docs.view.comments.Template",{extend:"Ext.XTemplate",requires:["Docs.Auth","Docs.Comments"],statics:{create:function(d){var c="tpl-"+Ext.JSON.encode(d);if(!this[c]){this[c]=new this();Ext.apply(this[c],d)}return this[c]}},constructor:function(){this.callParent(["<div>",'<tpl for=".">','<div class="comment" id="{id}">','<tpl if="deleted">','<div class="deleted-comment">Comment was deleted. <a href="#" class="undoDeleteComment">Undo</a>.</div>',"<tpl else>",'<div class="com-meta">',"{[this.avatar(values.emailHash)]}",'<div class="author<tpl if="moderator"> moderator" title="Sencha Engineer</tpl>">',"{author}",'<tpl if="this.isTargetVisible()">','<span class="target"> on {[this.target(values.target)]}</span>',"</tpl>","</div>",'<div class="top-right">','<tpl for="tags">','<span href="#" class="command tag">',"<b>{.}</b>",'<tpl if="this.isMod()"><a href="#" class="remove-tag" title="Delete tag">–</a></tpl>',"</span>","</tpl>",'<tpl if="this.isMod()">','<a href="#" class="command add-tag" title="Add new tag">+</a>',"</tpl>",'<tpl if="this.isMod()">','<a href="#" class="command readComment <tpl if="read">read</tpl>">Read</a>',"</tpl>",'<tpl if="this.isMod() || this.isAuthor(values.author)">','<a href="#" class="command editComment">Edit</a>','<a href="#" class="command deleteComment">Delete</a>',"</tpl>",'<span class="time" title="{[this.date(values.createdAt)]}">{[this.dateStr(values.createdAt)]}</span>',"</div>",'<div class="vote">','<a href="#" class="voteCommentUp{[values.upVote ? " selected" : ""]}" ','title="Vote Up"> </a>','<span class="score">{score}</span>','<a href="#" class="voteCommentDown{[values.downVote ? " selected" : ""]}" ','title="Vote Down"> </a>',"</div>","</div>",'<div class="content">{contentHtml}</div>',"</tpl>","</div>","</tpl>","</div>",this])},avatar:function(b){return Docs.Comments.avatar(b,this.isMod()&&this.enableDragDrop?"drag-handle":"")},isTargetVisible:function(){return this.showTarget},dateStr:function(e){try{var h=Math.ceil(Number(new Date())/1000);var i=Math.ceil(Number(new Date(e))/1000);var k=h-i;if(k<60){return"just now"}else{if(k<60*60){var j=String(Math.round(k/(60)));return j+(j=="1"?" minute":" minutes")+" ago"}else{if(k<60*60*24){var j=String(Math.round(k/(60*60)));return j+(j=="1"?" hour":" hours")+" ago"}else{if(k<60*60*24*31){var j=String(Math.round(k/(60*60*24)));return j+(j=="1"?" day":" days")+" ago"}else{return Ext.Date.format(new Date(e),"jS M 'y")}}}}}catch(l){return""}},date:function(d){try{return Ext.Date.format(new Date(d),"jS F Y g:ia")}catch(c){return""}},isMod:function(){return Docs.Auth.isModerator()},isAuthor:function(b){return Docs.Auth.getUser().userName==b},target:function(h){var e=h[1],g=h[1],f="#!/api/";if(h[0]=="video"){g="Video "+g;f="#!/video/"}else{if(h[0]=="guide"){g="Guide "+g;f="#!/guide/"}else{if(h[2]!=""){e+="-"+h[2];if(h[0]=="class"){g+="#"+h[2].replace(/^.*-/,"")}else{g+=" "+h[2]}}}}return'<a href="'+f+e+'">'+g+"</a>"}});Ext.define("Docs.view.comments.RepliesExpander",{alias:"widget.commentsRepliesExpander",extend:"Ext.Component",requires:["Docs.Comments"],uses:["Docs.view.comments.ListWithForm"],componentCls:"comments-replies-expander",initComponent:function(){this.tpl=new Ext.XTemplate('<a href="#" class="replies-button {[this.getCountCls(values.count)]}">',"{[this.renderCount(values.count)]}","</a>",{renderCount:this.renderCount,getCountCls:this.getCountCls});this.data={count:this.count};this.callParent(arguments)},renderCount:function(b){if(b===1){return"1 reply..."}else{if(b>1){return b+" replies..."}else{return"Write reply..."}}},getCountCls:function(b){return(b>0)?"with-replies":""},afterRender:function(){this.callParent(arguments);this.getEl().down(".replies-button").on("click",this.toggle,this,{preventDefault:true})},toggle:function(){this.expanded?this.collapse():this.expand()},expand:function(){this.expanded=true;this.getEl().down(".replies-button").update("Hide replies.");if(this.list){this.list.show()}else{this.loadComments()}},collapse:function(){this.expanded=false;this.refreshRepliesButton();if(this.list){this.list.hide()}},refreshRepliesButton:function(){var b=this.getEl().down(".replies-button");b.update(this.renderCount(this.count));b.removeCls("with-replies");b.addCls(this.getCountCls(this.count))},loadComments:function(){this.list=new Docs.view.comments.ListWithForm({target:this.target,parentId:this.parentId,newCommentTitle:"<b>Reply to comment</b>",renderTo:this.getEl(),listeners:{countChange:this.setCount,scope:this}});Docs.Comments.loadReplies(this.parentId,function(b){this.list.load(b)},this)},setCount:function(b){this.count=b;if(!this.expanded){this.refreshRepliesButton()}}});Ext.define("Docs.model.Comment",{extend:"Ext.data.Model",requires:["Docs.Comments"],fields:[{name:"id",mapping:"_id"},"author","emailHash","moderator","createdAt","target","score","upVote","downVote","contentHtml","read","tags","deleted","parentId","replyCount"],proxy:{type:"ajax",reader:"json"},vote:function(c,d){this.request({method:"POST",url:"/comments/"+this.get("id"),params:{vote:c},success:function(a){this.set("upVote",a.direction==="up");this.set("downVote",a.direction==="down");this.set("score",a.total);this.commit()},failure:Ext.Function.bind(d.failure,d.scope),scope:this})},loadContent:function(c,d){this.request({url:"/comments/"+this.get("id"),method:"GET",success:function(a){c.call(d,a.content)},scope:this})},saveContent:function(b){this.request({url:"/comments/"+this.get("id"),method:"POST",params:{content:b},success:function(a){this.set("contentHtml",a.content);this.commit()},scope:this})},setDeleted:function(b){this.request({url:"/comments/"+this.get("id")+(b?"/delete":"/undo_delete"),method:"POST",success:function(){this.set("deleted",b);this.commit();Docs.Comments.changeCount(this.get("target"),b?-1:+1)},scope:this})},markRead:function(){this.request({url:"/comments/"+this.get("id")+"/read",method:"POST",success:function(){this.set("read",true);this.commit()},scope:this})},setParent:function(d,f,e){this.request({url:"/comments/"+this.get("id")+"/set_parent",method:"POST",params:d?{parentId:d.get("id")}:undefined,success:f,scope:e})},addTag:function(b){this.changeTag("add_tag",b,function(){this.get("tags").push(b)},this)},removeTag:function(b){this.changeTag("remove_tag",b,function(){Ext.Array.remove(this.get("tags"),b)},this)},changeTag:function(h,e,g,f){this.request({url:"/comments/"+this.get("id")+"/"+h,method:"POST",params:{tagname:e},success:function(){g.call(f);this.commit()},scope:this})},request:function(b){Docs.Comments.request("ajax",{url:b.url,method:b.method,params:b.params,callback:function(h,f,a){var g=Ext.JSON.decode(a.responseText);if(f&&g.success){b.success&&b.success.call(b.scope,g)}else{b.failure&&b.failure.call(b.scope,g.reason)}},scope:this})}});Ext.define("Docs.CommentsProxy",{extend:"Ext.data.proxy.JsonP",alias:"proxy.comments",requires:["Docs.Comments"],constructor:function(b){b.url=Docs.Comments.buildRequestUrl(b.url);this.callParent([b])}});Ext.define("Docs.model.Tag",{extend:"Ext.data.Model",requires:["Docs.CommentsProxy"],fields:["tagname","score"],proxy:{type:"comments",url:"/tags",reader:{type:"json",root:"data"}}});Ext.define("Docs.view.comments.Tags",{extend:"Docs.view.comments.TopList",alias:"widget.commentsTags",requires:["Docs.model.Tag"],model:"Docs.model.Tag",displayField:"tagname",filterEmptyText:"Filter tags by name..."});Ext.define("Docs.model.Target",{extend:"Ext.data.Model",requires:["Docs.CommentsProxy"],fields:["id","type","cls","member","score",{name:"text",convert:function(e,f){var d=f.data;if(d.type==="class"){return d.cls+(d.member?"#"+d.member.replace(/^.*-/,""):"")}else{return d.type+" "+d.cls}}}],proxy:{type:"comments",url:"/targets",reader:{type:"json",root:"data"}}});Ext.define("Docs.view.comments.Targets",{extend:"Docs.view.comments.TopList",alias:"widget.commentsTargets",requires:["Docs.model.Target"],model:"Docs.model.Target",displayField:"text",filterEmptyText:"Filter topics by name..."});Ext.define("Docs.view.comments.TagEditor",{extend:"Ext.container.Container",requires:["Docs.model.Tag"],floating:true,hidden:true,componentCls:"comments-tageditor",statics:{cachedStore:undefined,getStore:function(){if(!this.cachedStore){this.cachedStore=Ext.create("Ext.data.Store",{model:"Docs.model.Tag",listeners:{load:function(){this.cachedStore.sort("tagname","ASC")},scope:this}});this.cachedStore.load()}return this.cachedStore}},initComponent:function(){this.items=[{xtype:"combobox",listConfig:{cls:"comments-tageditor-boundlist"},store:this.statics().getStore(),queryMode:"local",displayField:"tagname",valueField:"tagname",enableKeyEvents:true,emptyText:"New tag name...",listeners:{select:this.handleSelect,blur:this.destroy,keyup:this.onKeyUp,scope:this}}];this.callParent(arguments)},popup:function(b){this.show();this.alignTo(b,"bl",[-12,-2]);this.down("combobox").focus(true,100)},onKeyUp:function(c,d){if(d.keyCode===Ext.EventObject.ENTER){this.handleSelect()}else{if(d.keyCode===Ext.EventObject.ESC){this.destroy()}}},handleSelect:function(){var c=Ext.String.trim(this.down("combobox").getValue()||"");if(c){var d=this.rememberNewTag(c);this.fireEvent("select",d)}this.destroy()},rememberNewTag:function(g){var f=this.statics().getStore();var e=new RegExp("^"+Ext.String.escapeRegex(g)+"$","i");var h=f.query("tagname",e);if(h.getCount()===0){f.add({tagname:g});f.sort("tagname","ASC");return g}else{return h.get(0).get("tagname")}}});Ext.define("Docs.view.comments.List",{extend:"Ext.view.View",alias:"widget.commentsList",requires:["Docs.Auth","Docs.Syntax","Docs.Comments","Docs.view.comments.Template","Docs.view.comments.Form","Docs.view.comments.TagEditor","Docs.view.comments.RepliesExpander","Docs.view.comments.DragZone","Docs.view.comments.DropZone","Docs.model.Comment","Docs.Tip"],componentCls:"comments-list",itemSelector:"div.comment",emptyText:'<div class="loading">Loading...</div>',deferEmptyText:false,initComponent:function(){this.store=Ext.create("Ext.data.Store",{model:"Docs.model.Comment",listeners:{update:this.fireChangeEvent,scope:this}});this.tpl=Docs.view.comments.Template.create({showTarget:this.showTarget,enableDragDrop:this.enableDragDrop});this.callParent(arguments);this.on("refresh",function(){Docs.Syntax.highlight(this.getEl());this.renderExpanders(this.store.getRange())},this);this.on("itemupdate",function(f,e,d){Docs.Syntax.highlight(d);this.renderExpanders([f])},this)},renderExpanders:function(b){if(b[0]&&b[0].get("parentId")){return}Ext.Array.forEach(b,function(a){if(a.get("deleted")){return}new Docs.view.comments.RepliesExpander({count:a.get("replyCount"),target:a.get("target"),parentId:a.get("id"),renderTo:this.getNode(a)})},this)},afterRender:function(){this.callParent(arguments);this.mun(this.getTargetEl(),"keydown");this.delegateClick("a.voteCommentUp",function(d,c){this.vote(d,c,"up")},this);this.delegateClick("a.voteCommentDown",function(d,c){this.vote(d,c,"down")},this);this.delegateClick("a.editComment",function(d,c){this.edit(d,c)},this);this.delegateClick("a.deleteComment",function(d,c){this.setDeleted(d,c,true)},this);this.delegateClick("a.undoDeleteComment",function(d,c){this.setDeleted(d,c,false)},this);this.delegateClick("a.readComment",this.markRead,this);this.delegateClick("a.add-tag",this.addTag,this);this.delegateClick("a.remove-tag",this.removeTag,this);if(this.enableDragDrop){new Docs.view.comments.DragZone(this);new Docs.view.comments.DropZone(this,{onValidDrop:Ext.Function.bind(this.setParent,this)})}},delegateClick:function(e,f,d){this.getEl().on("click",function(b,c){var a=this.getRecord(this.findItemByChild(c));if(a){f.call(d,c,a)}},this,{preventDefault:true,delegate:e})},vote:function(e,f,d){if(!Docs.Auth.isLoggedIn()){Docs.Tip.show("Please login to vote on this comment",e);return}if(f.get("upVote")&&d==="up"||f.get("downVote")&&d==="down"){Docs.Tip.show("You have already voted on this comment",e);return}f.vote(d,{failure:function(a){Docs.Tip.show(a,e)}})},edit:function(d,c){c.loadContent(function(a){var b=Ext.get(d).up(".comment").down(".content");b.update("");new Docs.view.comments.Form({renderTo:b,title:"<b>Edit comment</b>",user:Docs.Auth.getUser(),content:a,listeners:{submit:function(f){c.saveContent(f)},cancel:function(){this.refreshComment(c)},scope:this}})},this)},refreshComment:function(b){this.refreshNode(this.getStore().findExact("id",b.get("id")))},setDeleted:function(d,f,e){f.setDeleted(e)},markRead:function(d,c){c.markRead()},addTag:function(d,f){var e=new Docs.view.comments.TagEditor();e.on("select",f.addTag,f);e.popup(d)},removeTag:function(e,f){var d=Ext.get(e).up(".tag").down("b").getHTML();f.removeTag(d)},setParent:function(c,d){c.setParent(d,function(){this.fireEvent("reorder")},this)},load:function(f,e){if(f.length===0){this.emptyText=""}var d=this.store.getProxy().getReader().readRecords(f).records;this.store.loadData(d,e);this.fireChangeEvent()},fireChangeEvent:function(){var b=function(a){return !a.get("deleted")};this.fireEvent("countChange",this.getStore().queryBy(b).getCount())}});Ext.define("Docs.view.comments.FullList",{extend:"Ext.panel.Panel",alias:"widget.commentsFullList",requires:["Docs.Settings","Docs.Auth","Docs.Comments","Docs.view.comments.List","Docs.view.comments.Pager"],componentCls:"comments-full-list",dockedItems:[{xtype:"container",dock:"top",height:35,html:['<h1 style="float:left;">Comments</h1>','<p style="float:left; margin: 5px 0 0 25px">','<label style="padding-right: 10px;"><input type="checkbox" name="hideRead" id="hideRead" /> Hide read</label>',"</p>"].join(" ")}],layout:"border",items:[{xtype:"tabpanel",cls:"comments-tabpanel",plain:true,region:"north",height:25,items:[{title:"Recent"},{title:"Votes"}]},{region:"center",xtype:"container",autoScroll:true,cls:"iScroll",items:[{xtype:"commentsList",id:"recentcomments",showTarget:true},{xtype:"commentsPager"}]}],afterRender:function(){this.callParent(arguments);this.initCheckboxes();this.initTabs();this.setMasked(true)},load:function(f,e){this.down("commentsList").load(f,e);var d=f[f.length-1];if(d){this.down("commentsPager").configure(d)}else{this.down("commentsPager").reset()}},setMasked:function(c){var d=this.getEl();if(d){d[c?"mask":"unmask"]()}},initCheckboxes:function(){var f=Docs.Settings.get("comments");var e=Ext.get("hideRead");if(e){e.dom.checked=f.hideRead;e.on("change",function(){this.saveSetting("hideRead",e.dom.checked);this.fireEvent("hideReadChange")},this)}this.setHideReadVisibility();var d=Docs.App.getController("Auth");d.on("available",this.setHideReadVisibility,this);d.on("loggedIn",this.setHideReadVisibility,this);d.on("loggedOut",this.setHideReadVisibility,this)},setHideReadVisibility:function(){var b=Docs.Auth.isModerator();Ext.get("hideRead").up("label").setStyle("display",b?"inline":"none")},initTabs:function(){this.down("tabpanel[cls=comments-tabpanel]").on("tabchange",function(d,c){if(c.title==="Recent"){this.fireEvent("sortOrderChange","recent")}else{this.fireEvent("sortOrderChange","votes")}},this)},saveSetting:function(d,e){var f=Docs.Settings.get("comments");f[d]=e;Docs.Settings.set("comments",f)},getTab:function(){return Docs.Comments.isEnabled()?{cls:"comments",href:"#!/comment",tooltip:"Comments"}:false}});Ext.define("Docs.view.comments.Index",{extend:"Ext.panel.Panel",alias:"widget.commentindex",mixins:["Docs.view.Scrolling"],requires:["Docs.Comments","Docs.view.comments.FullList","Docs.view.comments.HeaderMenu","Docs.view.comments.Users","Docs.view.comments.Targets","Docs.view.comments.Tags"],componentCls:"comments-index",margin:"10 0 0 0",layout:"border",items:[{region:"center",xtype:"commentsFullList"},{region:"east",itemId:"cardPanel",layout:"border",width:300,margin:"0 0 0 20",layout:"card",dockedItems:[{xtype:"commentsHeaderMenu",dock:"top",height:35}],items:[{xtype:"commentsUsers"},{xtype:"commentsTargets"},{xtype:"commentsTags"}]}],initComponent:function(){this.callParent(arguments);var d=this.down("#cardPanel");var c={users:this.down("commentsUsers"),targets:this.down("commentsTargets"),tags:this.down("commentsTags")};this.down("commentsHeaderMenu").on("select",function(a){Ext.Object.each(c,function(b,f){if(b!==a){f.deselectAll()}});d.getLayout().setActiveItem(c[a])},this)},getTab:function(){return Docs.Comments.isEnabled()?{cls:"comments",href:"#!/comment",tooltip:"Comments"}:false}});Ext.define("Docs.view.HoverMenu",{extend:"Ext.view.View",requires:["Docs.Comments"],alias:"widget.hovermenu",componentCls:"hover-menu",itemSelector:"div.item",deferEmptyText:false,columnHeight:25,initComponent:function(){this.renderTo=Ext.getBody();this.tpl=new Ext.XTemplate("<table>","<tr>","<td>",'<tpl for=".">','<div class="item">',"{[this.renderLink(values)]}","</div>",'<tpl if="xindex % this.columnHeight === 0 && xcount > xindex">',"</td><td>","</tpl>","</tpl>","</td>","</tr>","</table>",{columnHeight:this.columnHeight,renderLink:function(e){var d=Ext.Array.map(Docs.data.signatures,function(a){return e.meta[a.key]?'<span class="signature '+a.key+'">'+(a["short"])+"</span>":""}).join(" ");var f=Docs.Comments.counterHtml(e.commentCount);return Ext.String.format('<a href="#!/api/{0}" rel="{0}" class="docClass">{1} {2} {3}</a>',e.url,e.label,d,f)}});this.callParent()}});Ext.define("Docs.view.HoverMenuButton",{extend:"Ext.toolbar.TextItem",alias:"widget.hovermenubutton",componentCls:"hover-menu-button",requires:["Docs.view.HoverMenu"],showCount:false,statics:{menus:[]},initComponent:function(){this.addEvents("click");if(this.showCount){this.initialText=this.text;this.text+=" <sup>"+this.store.getCount()+"</sup>";this.store.on("datachanged",function(){this.setText(this.initialText+" <sup>"+this.store.getCount()+"</sup>")},this)}this.callParent(arguments)},getColumnHeight:function(){var c=200;var d=18;return Math.floor((Ext.Element.getViewportHeight()-c)/d)},onRender:function(){this.callParent(arguments);this.getEl().on({click:function(){this.fireEvent("click")},mouseover:this.deferShowMenu,mouseout:this.deferHideMenu,scope:this})},onDestroy:function(){if(this.menu){this.menu.destroy();Ext.Array.remove(Docs.view.HoverMenuButton.menus,this.menu)}this.callParent(arguments)},renderMenu:function(){this.menu=Ext.create("Docs.view.HoverMenu",{store:this.store,columnHeight:this.getColumnHeight()});this.menu.getEl().on({click:function(b){this.menu.hide();b.preventDefault()},mouseover:function(){clearTimeout(this.hideTimeout)},mouseout:this.deferHideMenu,scope:this});Docs.view.HoverMenuButton.menus.push(this.menu)},deferHideMenu:function(){clearTimeout(Docs.view.HoverMenuButton.showTimeout);if(!this.menu){return}this.hideTimeout=Ext.Function.defer(function(){this.menu.hide()},200,this)},deferShowMenu:function(){clearTimeout(Docs.view.HoverMenuButton.showTimeout);Docs.view.HoverMenuButton.showTimeout=Ext.Function.defer(function(){if(!this.menu){this.renderMenu()}Ext.Array.forEach(Docs.view.HoverMenuButton.menus,function(a){if(a!==this.menu){a.hide()}},this);clearTimeout(this.hideTimeout);this.menu.show();var j=this.getEl().getXY(),n=Ext.ComponentQuery.query("classoverview toolbar")[0],k=j[0]-10,l=n.getEl().getXY(),i=n.getWidth(),m=this.menu.getEl().getWidth(),h=Ext.getCmp("doctabs").getWidth();if(m>h){k=0}else{if((k+m)>h){k=h-m-30}}if(k<l[0]){k=l[0]}this.menu.getEl().setStyle({left:k+"px",top:(j[1]+25)+"px"})},200,this)},getStore:function(){return this.store}});Ext.define("Docs.view.cls.Toolbar",{extend:"Ext.toolbar.Toolbar",requires:["Docs.view.HoverMenuButton","Docs.Settings","Docs.Comments","Ext.form.field.Checkbox"],dock:"top",cls:"member-links",docClass:{},accessors:{},initComponent:function(){this.addEvents("menubuttonclick","commentcountclick","filter","toggleExpanded");this.items=[];this.memberButtons={};var h={cfg:"Configs",property:"Properties",method:"Methods",event:"Events",css_var:"CSS Vars",css_mixin:"CSS Mixins"};for(var i in h){var f=this.docClass.members[i].concat(this.docClass.statics[i]);f.sort(function(a,b){if(a.name==="constructor"&&a.tagname==="method"){return -1}return a.name<b.name?-1:(a.name>b.name?1:0)});if(f.length>0){var j=this.createMemberButton({text:h[i],type:i,members:f});this.memberButtons[i]=j;this.items.push(j)}}this.checkItems={"public":this.createCb("Public","public"),"protected":this.createCb("Protected","protected"),"private":this.createCb("Private","private"),inherited:this.createCb("Inherited","inherited"),accessor:this.createCb("Accessor","accessor"),deprecated:this.createCb("Deprecated","deprecated"),removed:this.createCb("Removed","removed")};var g=this;this.items=this.items.concat([{xtype:"tbfill"},this.filterField=Ext.widget("triggerfield",{triggerCls:"reset",cls:"member-filter",hideTrigger:true,emptyText:"Filter class members",enableKeyEvents:true,width:150,listeners:{keyup:function(a){this.fireEvent("filter",a.getValue(),this.getShowFlags());a.setHideTrigger(a.getValue().length===0)},specialkey:function(a,b){if(b.keyCode===Ext.EventObject.ESC){a.reset();this.fireEvent("filter","",this.getShowFlags())}},scope:this},onTriggerClick:function(){this.reset();this.focus();g.fireEvent("filter","",g.getShowFlags());this.setHideTrigger(true)}}),{xtype:"tbspacer",width:10},this.commentCount=this.createCommentCount(),{xtype:"button",text:"Show",menu:[this.checkItems["public"],this.checkItems["protected"],this.checkItems["private"],"-",this.checkItems.inherited,this.checkItems.accessor,this.checkItems.deprecated,this.checkItems.removed]},{xtype:"button",iconCls:"expand-all-members",tooltip:"Expand all",enableToggle:true,toggleHandler:function(b,a){b.setIconCls(a?"collapse-all-members":"expand-all-members");this.fireEvent("toggleExpanded",a)},scope:this}]);this.callParent(arguments)},getShowFlags:function(){var d={};for(var c in this.checkItems){d[c]=this.checkItems[c].checked}return d},createCb:function(c,d){return Ext.widget("menucheckitem",{text:c,checked:Docs.Settings.get("show")[d],listeners:{checkchange:function(){this.fireEvent("filter",this.filterField.getValue(),this.getShowFlags())},scope:this}})},createMemberButton:function(d){var c=Ext.Array.map(d.members,function(a){return this.createLinkRecord(this.docClass.name,a)},this);return Ext.create("Docs.view.HoverMenuButton",{text:d.text,cls:"icon-"+d.type,store:this.createStore(c),showCount:true,listeners:{click:function(){this.fireEvent("menubuttonclick",d.type)},scope:this}})},createStore:function(c){var d=Ext.create("Ext.data.Store",{fields:["id","url","label","inherited","accessor","meta","commentCount"]});d.add(c);return d},createLinkRecord:function(d,c){return{id:c.id,url:d+"-"+c.id,label:(c.tagname==="method"&&c.name==="constructor")?"new "+d:c.name,inherited:c.owner!==d,accessor:c.tagname==="method"&&this.accessors.hasOwnProperty(c.name),meta:c.meta,commentCount:Docs.Comments.getCount(["class",d,c.id])}},showMenuItems:function(d,e,f){Ext.Array.forEach(["cfg","property","method","event"],function(b){if(this.memberButtons[b]){var c=this.memberButtons[b].getStore();c.filterBy(function(h){return !(!d["public"]&&!(h.get("meta")["private"]||h.get("meta")["protected"])||!d["protected"]&&h.get("meta")["protected"]||!d["private"]&&h.get("meta")["private"]||!d.inherited&&h.get("inherited")||!d.accessor&&h.get("accessor")||!d.deprecated&&h.get("meta")["deprecated"]||!d.removed&&h.get("meta")["removed"]||e&&!f.test(h.get("label")))});var a=this.memberButtons[b].menu;if(a&&Ext.getVersion().version>="4.1.0"){a.show();a.hide()}}},this)},getFilterValue:function(){return this.filterField.getValue()},createCommentCount:function(){return Ext.create("Ext.container.Container",{width:24,margin:"0 4 0 0",cls:"comment-btn",html:"0",hidden:true,listeners:{afterrender:function(b){b.el.addListener("click",function(){this.fireEvent("commentcountclick")},this)},scope:this}})},showCommentCount:function(){this.commentCount.show()},setCommentCount:function(b){this.commentCount.update(""+(b||0));this.refreshMenuCommentCounts()},refreshMenuCommentCounts:function(){Ext.Object.each(this.memberButtons,function(c,d){d.getStore().each(function(a){a.set("commentCount",Docs.Comments.getCount(["class",this.docClass.name,a.get("id")]))},this)},this)}});Ext.define("Docs.view.cls.Overview",{extend:"Ext.panel.Panel",alias:"widget.classoverview",requires:["Docs.view.cls.Toolbar","Docs.view.examples.Inline","Docs.view.comments.LargeExpander","Docs.view.cls.MemberWrap","Docs.view.comments.MemberWrap","Docs.Syntax","Docs.Settings","Docs.Comments"],mixins:["Docs.view.Scrolling"],cls:"class-overview iScroll",autoScroll:true,border:false,bodyPadding:"20 8 20 5",initComponent:function(){this.addEvents("afterload");this.callParent(arguments)},scrollToEl:function(j,h){var g=(typeof j=="string")?Ext.get(Ext.query(j)[0]):j;if(g){var f=g.hasCls("member");g.show();if(!g.isVisible(true)){g.up(".subsection").show();g.up(".members-section").show()}if(f&&g.down(".expandable")){this.setMemberExpanded(j.replace(/#/,""),true)}var i=this.body.getBox().y;this.scrollToView(g,{highlight:true,offset:(h||0)-(f?i:i-10)})}},load:function(b){this.docClass=b;this.accessors=this.buildAccessorsMap();if(this.toolbar){this.removeDocked(this.toolbar,false);this.toolbar.destroy()}this.toolbar=Ext.create("Docs.view.cls.Toolbar",{docClass:this.docClass,accessors:this.accessors,listeners:{filter:function(d,a){this.filterMembers(d,a)},menubuttonclick:function(a){this.scrollToEl("h3.members-title.icon-"+a,-20)},commentcountclick:this.expandClassComments,scope:this}});this.addDocked(this.toolbar);this.update(b.html);Docs.Syntax.highlight(this.getEl());this.filterMembers("",Docs.Settings.get("show"));if(Docs.Comments.isEnabled()){this.initComments()}else{this.initBasicMemberWrappers()}this.fireEvent("afterload")},initComments:function(){this.toolbar.showCommentCount();this.toolbar.setCommentCount(Docs.Comments.getCount(["class",this.docClass.name,""]));this.clsExpander=new Docs.view.comments.LargeExpander({name:this.docClass.name,el:Ext.query(".doc-contents")[0]});this.memberWrappers={};Ext.Array.forEach(Ext.query(".member"),function(c){var d=new Docs.view.comments.MemberWrap({parent:this,className:this.docClass.name,el:c});this.memberWrappers[d.getMemberId()]=d},this)},initBasicMemberWrappers:function(){this.memberWrappers={};Ext.Array.forEach(Ext.query(".member"),function(c){var d=new Docs.view.cls.MemberWrap({el:c});this.memberWrappers[d.getMemberId()]=d},this)},updateCommentCounts:function(){if(!this.docClass){return}var b=Docs.Comments.getCount(["class",this.docClass.name,""]);this.toolbar.setCommentCount(b);this.clsExpander.getExpander().setCount(b);Ext.Object.each(this.memberWrappers,function(a,d){d.setCount(Docs.Comments.getCount(d.getTarget()))},this)},expandClassComments:function(){var b=this.clsExpander.getExpander();b.expand();this.scrollToEl(b.getEl(),-40)},setMemberExpanded:function(c,d){this.memberWrappers[c].setExpanded(d)},isMemberExpanded:function(b){return this.memberWrappers[b].isExpanded()},setAllMembersExpanded:function(b){if(Docs.Comments.isEnabled()){Ext.Object.each(this.memberWrappers,function(a,d){d.getExpander().show()},this)}Ext.Object.each(this.memberWrappers,function(a,d){d.setExpanded(b)},this)},filterMembers:function(h,e){Docs.Settings.set("show",e);var f=h.length>0;Ext.Array.forEach(Ext.query(".doc-contents, .hierarchy"),function(a){Ext.get(a).setStyle({display:f?"none":"block"})});var g=new RegExp(Ext.String.escapeRegex(h),"i");this.eachMember(function(c){var b=Ext.get(c.id);var a=!(!e["public"]&&!(c.meta["private"]||c.meta["protected"])||!e["protected"]&&c.meta["protected"]||!e["private"]&&c.meta["private"]||!e.inherited&&(c.owner!==this.docClass.name)||!e.accessor&&c.tagname==="method"&&this.accessors.hasOwnProperty(c.name)||!e.deprecated&&c.meta.deprecated||!e.removed&&c.meta.removed||f&&!g.test(c.name));if(a){b.setStyle({display:"block"})}else{b.setStyle({display:"none"})}},this);Ext.Array.forEach(Ext.query(".member.first-child"),function(a){Ext.get(a).removeCls("first-child")});Ext.Array.forEach(Ext.query(".members-section"),function(b){var a=this.getVisibleElements(".member",b);Ext.get(b).setStyle({display:a.length>0?"block":"none"});Ext.Array.forEach(Ext.query(".subsection",b),function(d){var c=this.getVisibleElements(".member",d);if(c.length>0){c[0].addCls("first-child");Ext.get(d).setStyle({display:"block"})}else{Ext.get(d).setStyle({display:"none"})}},this)},this);this.toolbar.showMenuItems(e,f,g)},buildAccessorsMap:function(c){var d={};Ext.Array.forEach(this.docClass.members.cfg,function(b){var a=Ext.String.capitalize(b.name);d["get"+a]=true;d["set"+a]=true});return d},getVisibleElements:function(e,d){var f=Ext.Array.map(Ext.query(e,d),function(a){return Ext.get(a)});return Ext.Array.filter(f,function(a){return a.isVisible()})},eachMember:function(c,d){Ext.Array.forEach(["members","statics"],function(a){Ext.Object.each(this.docClass[a],function(b,f){Ext.Array.forEach(f,c,d)},this)},this)}});Ext.define("Docs.view.cls.Container",{extend:"Ext.container.Container",alias:"widget.classcontainer",requires:["Docs.view.cls.Header","Docs.view.cls.Overview"],layout:"border",padding:"5 10 0 10",initComponent:function(){this.items=[Ext.create("Docs.view.cls.Header",{region:"north"}),Ext.create("Docs.view.cls.Overview",{region:"center"})];this.callParent(arguments)}});Ext.define("Docs.view.Viewport",{extend:"Ext.container.Viewport",requires:["Docs.view.search.Container","Docs.view.Header","Docs.view.Tabs","Docs.view.TreeContainer","Docs.view.welcome.Index","Docs.view.auth.HeaderForm","Docs.view.comments.Index","Docs.view.cls.Index","Docs.view.cls.Container","Docs.view.guides.Index","Docs.view.guides.Container","Docs.view.videos.Index","Docs.view.videos.Container","Docs.view.examples.Index","Docs.view.examples.Container","Docs.view.examples.TouchContainer","Docs.view.tests.Index"],id:"viewport",layout:"border",defaults:{xtype:"container"},initComponent:function(){this.items=[{region:"north",id:"north-region",height:65,layout:{type:"vbox",align:"stretch"},items:[{height:37,xtype:"container",layout:"hbox",items:[{xtype:"docheader"},{xtype:"container",flex:1},{id:"loginContainer",xtype:"authHeaderForm",padding:"10 20 0 0"},{xtype:"searchcontainer",id:"search-container",width:230,margin:"4 0 0 0"}]},{xtype:"doctabs"}]},{region:"center",layout:"border",items:[{region:"west",xtype:"treecontainer",id:"treecontainer",border:1,bodyPadding:"10 9 4 9",width:240},{region:"center",id:"center-container",layout:"fit",border:false,padding:"5 10",items:{id:"card-panel",cls:"card-panel",xtype:"container",layout:{type:"card",deferredRender:true},items:[{autoScroll:true,xtype:"welcomeindex",id:"welcomeindex"},{xtype:"container",id:"failure"},{autoScroll:true,xtype:"classindex",id:"classindex"},{xtype:"classcontainer",id:"classcontainer"},{autoScroll:true,xtype:"guideindex",id:"guideindex"},{autoScroll:true,xtype:"guidecontainer",id:"guide",cls:"iScroll"},{xtype:"videoindex",id:"videoindex"},{autoScroll:true,xtype:"videocontainer",id:"video",cls:"iScroll"},{xtype:"exampleindex",id:"exampleindex"},{xtype:Docs.data.touchExamplesUi?"touchexamplecontainer":"examplecontainer",id:"example"},{xtype:"testsindex",id:"testsindex"},{xtype:"commentindex",id:"commentindex"}]}}]},{region:"south",id:"footer",height:20,contentEl:"footer-content"}];this.callParent(arguments)},setPageTitle:function(b){b=Ext.util.Format.stripTags(b);if(!this.origTitle){this.origTitle=document.title}document.title=b?(b+" - "+this.origTitle):this.origTitle}});Ext.define("Docs.Application",{requires:["Ext.app.Application","Docs.History","Docs.Comments","Docs.Settings","Docs.view.Viewport","Docs.controller.Auth","Docs.controller.Welcome","Docs.controller.Failure","Docs.controller.Classes","Docs.controller.Search","Docs.controller.InlineExamples","Docs.controller.Examples","Docs.controller.Guides","Docs.controller.Videos","Docs.controller.Tabs","Docs.controller.Comments","Docs.controller.CommentCounts","Docs.controller.Tests"],constructor:function(){Docs.Comments.init(this.createApp,this)},createApp:function(){new Ext.app.Application({name:"Docs",controllers:["Auth","Welcome","Failure","Classes","Search","InlineExamples","Examples","Guides","Videos","Tabs","Comments","CommentCounts","Tests"],launch:this.launch})},launch:function(){Docs.App=this;Docs.Settings.init();Ext.create("Docs.view.Viewport");Docs.History.init();if(Docs.initEventTracking){Docs.initEventTracking()}Ext.get("loading").remove()}});Ext.define("Docs.view.auth.Form",{extend:"Docs.view.auth.BaseForm",alias:"widget.authForm",componentCls:"auth-form",initComponent:function(){this.html=['<span class="before-text">Sign in to post a comment:</span>',this.createLoginFormHtml()];this.callParent(arguments)},afterRender:function(){this.callParent(arguments);this.bindFormSubmitEvent()}});Ext.define("Docs.view.comments.ListWithForm",{extend:"Ext.container.Container",alias:"widget.commentsListWithForm",requires:["Docs.view.comments.List","Docs.view.comments.Form","Docs.view.auth.Form","Docs.Comments","Docs.Auth"],componentCls:"comments-list-with-form",initComponent:function(){this.items=[this.list=new Docs.view.comments.List({enableDragDrop:true})];this.relayEvents(this.list,["countChange","reorder"]);this.callParent(arguments)},load:function(c,d){this.list.load(c,d);if(Docs.Auth.isLoggedIn()){this.showCommentingForm()}else{this.showAuthForm()}},showAuthForm:function(){if(this.commentingForm){this.remove(this.commentingForm);delete this.commentingForm}if(!this.authForm){this.authForm=new Docs.view.auth.Form();this.add(this.authForm)}},showCommentingForm:function(){if(this.authForm){this.remove(this.authForm);delete this.authForm}if(!this.commentingForm){this.commentingForm=new Docs.view.comments.Form({title:this.newCommentTitle,user:Docs.Auth.getUser(),userSubscribed:Docs.Comments.hasSubscription(this.target),listeners:{submit:this.postComment,subscriptionChange:this.subscribe,scope:this}});this.add(this.commentingForm)}},postComment:function(b){Docs.Comments.post({target:this.target,parentId:this.parentId,content:b,callback:function(a){this.commentingForm.setValue("");this.list.load([a],true)},scope:this})},subscribe:function(b){Docs.Comments.subscribe(this.target,b,function(){this.commentingForm.showSubscriptionMessage(b)},this)}});Ext.ns("Docs");Ext.Loader.setConfig({enabled:true,paths:{Docs:"app"}});Ext.require("Ext.form.field.Trigger");Ext.require("Ext.tab.Panel");Ext.require("Ext.grid.column.Action");Ext.require("Ext.grid.plugin.DragDrop");Ext.require("Ext.layout.container.Border");Ext.require("Ext.data.TreeStore");Ext.require("Ext.toolbar.Spacer");Ext.require("Docs.Application");Ext.onReady(function(){Ext.create("Docs.Application")});var q=null;window.PR_SHOULD_USE_CONTINUATION=!0;(function(){function d(F){function w(J){var K=J.charCodeAt(0);if(K!==92){return K}var I=J.charAt(1);return(K=k[I])?K:"0"<=I&&I<="7"?parseInt(J.substring(1),8):I==="u"||I==="x"?parseInt(J.substring(2),16):J.charCodeAt(1)}function C(I){if(I<32){return(I<16?"\\x0":"\\x")+I.toString(16)}I=String.fromCharCode(I);if(I==="\\"||I==="-"||I==="["||I==="]"){I="\\"+I}return I}function A(J){for(var M=J.substring(1,J.length-1).match(/\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\[0-3][0-7]{0,2}|\\[0-7]{1,2}|\\[\S\s]|[^\\]/g),J=[],I=[],O=M[0]==="^",P=O?1:0,L=M.length;P<L;++P){var K=M[P];if(/\\[bdsw]/i.test(K)){J.push(K)}else{var K=w(K),N;P+2<L&&"-"===M[P+1]?(N=w(M[P+2]),P+=2):N=K;I.push([K,N]);N<65||K>122||(N<65||K>90||I.push([Math.max(65,K)|32,Math.min(N,90)|32]),N<97||K>122||I.push([Math.max(97,K)&-33,Math.min(N,122)&-33]))}}I.sort(function(Q,R){return Q[0]-R[0]||R[1]-Q[1]});M=[];K=[NaN,NaN];for(P=0;P<I.length;++P){L=I[P],L[0]<=K[1]+1?K[1]=Math.max(K[1],L[1]):M.push(K=L)}I=["["];O&&I.push("^");I.push.apply(I,J);for(P=0;P<M.length;++P){L=M[P],I.push(C(L[0])),L[1]>L[0]&&(L[1]+1>L[0]&&I.push("-"),I.push(C(L[1])))}I.push("]");return I.join("")}function E(J){for(var M=J.source.match(/\[(?:[^\\\]]|\\[\S\s])*]|\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\\d+|\\[^\dux]|\(\?[!:=]|[()^]|[^()[\\^]+/g),I=M.length,N=[],O=0,L=0;O<I;++O){var K=M[O];K==="("?++L:"\\"===K.charAt(0)&&(K=+K.substring(1))&&K<=L&&(N[K]=-1)}for(O=1;O<N.length;++O){-1===N[O]&&(N[O]=++G)}for(L=O=0;O<I;++O){K=M[O],K==="("?(++L,N[L]===void 0&&(M[O]="(?:")):"\\"===K.charAt(0)&&(K=+K.substring(1))&&K<=L&&(M[O]="\\"+N[L])}for(L=O=0;O<I;++O){"^"===M[O]&&"^"!==M[O+1]&&(M[O]="")}if(J.ignoreCase&&H){for(O=0;O<I;++O){K=M[O],J=K.charAt(0),K.length>=2&&J==="["?M[O]=A(K):J!=="\\"&&(M[O]=K.replace(/[A-Za-z]/g,function(P){P=P.charCodeAt(0);return"["+String.fromCharCode(P&-33,P|32)+"]"}))}}return M.join("")}for(var G=0,H=!1,x=!1,u=0,D=F.length;u<D;++u){var B=F[u];if(B.ignoreCase){x=!0}else{if(/[a-z]/i.test(B.source.replace(/\\u[\da-f]{4}|\\x[\da-f]{2}|\\[^UXux]/gi,""))){H=!0;x=!1;break}}}for(var k={b:8,t:9,n:10,v:11,f:12,r:13},v=[],u=0,D=F.length;u<D;++u){B=F[u];if(B.global||B.multiline){throw Error(""+B)}v.push("(?:"+E(B)+")")}return RegExp(v.join("|"),x?"gi":"g")}function c(B){function u(E){switch(E.nodeType){case 1:if(x.test(E.className)){break}for(var F=E.firstChild;F;F=F.nextSibling){u(F)}F=E.nodeName;if("BR"===F||"LI"===F){w[D]="\n",C[D<<1]=A++,C[D++<<1|1]=E}break;case 3:case 4:F=E.nodeValue,F.length&&(F=k?F.replace(/\r\n?/g,"\n"):F.replace(/[\t\n\r ]+/g," "),w[D]=F,C[D<<1]=A,A+=F.length,C[D++<<1|1]=E)}}var x=/(?:^|\s)nocode(?:\s|$)/,w=[],A=0,C=[],D=0,v;B.currentStyle?v=B.currentStyle.whiteSpace:window.getComputedStyle&&(v=document.defaultView.getComputedStyle(B,q).getPropertyValue("white-space"));var k=v&&"pre"===v.substring(0,3);u(B);return{a:w.join("").replace(/\n$/,""),c:C}}function t(u,k,w,v){k&&(u={a:k,d:u},w(u),v.push.apply(v,u.e))}function h(u,k){function x(P){for(var F=P.d,C=[F,"pln"],L=0,J=P.a.match(A)||[],B={},E=0,N=J.length;E<N;++E){var K=J[E],O=B[K],D=void 0,M;if(typeof O==="string"){M=!1}else{var I=w[K.charAt(0)];if(I){D=K.match(I[1]),O=I[0]}else{for(M=0;M<v;++M){if(I=k[M],D=K.match(I[1])){O=I[0];break}}D||(O="pln")}if((M=O.length>=5&&"lang-"===O.substring(0,5))&&!(D&&typeof D[1]==="string")){M=!1,O="src"}M||(B[K]=O)}I=L;L+=K.length;if(M){M=D[1];var H=K.indexOf(M),G=H+M.length;D[2]&&(G=K.length-D[2].length,H=G-M.length);O=O.substring(5);t(F+I,K.substring(0,H),x,C);t(F+I+H,M,s(O,M),C);t(F+I+G,K.substring(G),x,C)}else{C.push(F+I,O)}}P.e=C}var w={},A;(function(){for(var G=u.concat(k),B=[],F={},H=0,E=G.length;H<E;++H){var D=G[H],I=D[3];if(I){for(var C=I.length;--C>=0;){w[I.charAt(C)]=D}}D=D[1];I=""+D;F.hasOwnProperty(I)||(B.push(D),F[I]=q)}B.push(/[\S\s]/);A=d(B)})();var v=k.length;return x}function o(u){var k=[],w=[];u.tripleQuotedStrings?k.push(["str",/^(?:'''(?:[^'\\]|\\[\S\s]|''?(?=[^']))*(?:'''|$)|"""(?:[^"\\]|\\[\S\s]|""?(?=[^"]))*(?:"""|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$))/,q,"'\""]):u.multiLineStrings?k.push(["str",/^(?:'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$)|`(?:[^\\`]|\\[\S\s])*(?:`|$))/,q,"'\"`"]):k.push(["str",/^(?:'(?:[^\n\r'\\]|\\.)*(?:'|$)|"(?:[^\n\r"\\]|\\.)*(?:"|$))/,q,"\"'"]);u.verbatimStrings&&w.push(["str",/^@"(?:[^"]|"")*(?:"|$)/,q]);var v=u.hashComments;v&&(u.cStyleComments?(v>1?k.push(["com",/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,q,"#"]):k.push(["com",/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\n\r]*)/,q,"#"]),w.push(["str",/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,q])):k.push(["com",/^#[^\n\r]*/,q,"#"]));u.cStyleComments&&(w.push(["com",/^\/\/[^\n\r]*/,q]),w.push(["com",/^\/\*[\S\s]*?(?:\*\/|$)/,q]));u.regexLiterals&&w.push(["lang-regex",/^(?:^^\.?|[!+-]|!=|!==|#|%|%=|&|&&|&&=|&=|\(|\*|\*=|\+=|,|-=|->|\/|\/=|:|::|;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|[?@[^]|\^=|\^\^|\^\^=|{|\||\|=|\|\||\|\|=|~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\s*(\/(?=[^*/])(?:[^/[\\]|\\[\S\s]|\[(?:[^\\\]]|\\[\S\s])*(?:]|$))+\/)/]);(v=u.types)&&w.push(["typ",v]);u=(""+u.keywords).replace(/^ | $/g,"");u.length&&w.push(["kwd",RegExp("^(?:"+u.replace(/[\s,]+/g,"|")+")\\b"),q]);k.push(["pln",/^\s+/,q," \r\n\t\xa0"]);w.push(["lit",/^@[$_a-z][\w$@]*/i,q],["typ",/^(?:[@_]?[A-Z]+[a-z][\w$@]*|\w+_t\b)/,q],["pln",/^[$_a-z][\w$@]*/i,q],["lit",/^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i,q,"0123456789"],["pln",/^\\[\S\s]?/,q],["pun",/^.[^\s\w"-$'./@\\`]*/,q]);return h(k,w)}function r(H,x){function E(K){switch(K.nodeType){case 1:if(B.test(K.className)){break}if("BR"===K.nodeName){C(K),K.parentNode&&K.parentNode.removeChild(K)}else{for(K=K.firstChild;K;K=K.nextSibling){E(K)}}break;case 3:case 4:if(v){var k=K.nodeValue,L=k.match(I);if(L){var M=k.substring(0,L.index);K.nodeValue=M;(k=k.substring(L.index+L[0].length))&&K.parentNode.insertBefore(J.createTextNode(k),K.nextSibling);C(K);M||K.parentNode.removeChild(K)}}}}function C(K){function k(M,R){var Q=R?M.cloneNode(!1):M,P=M.parentNode;if(P){var P=k(P,1),O=M.nextSibling;P.appendChild(Q);for(var N=O;N;N=O){O=N.nextSibling,P.appendChild(N)}}return Q}for(;!K.nextSibling;){if(K=K.parentNode,!K){return}}for(var K=k(K.nextSibling,0),L;(L=K.parentNode)&&L.nodeType===1;){K=L}F.push(K)}var B=/(?:^|\s)nocode(?:\s|$)/,I=/\r\n?|\n/,J=H.ownerDocument,A;H.currentStyle?A=H.currentStyle.whiteSpace:window.getComputedStyle&&(A=J.defaultView.getComputedStyle(H,q).getPropertyValue("white-space"));var v=A&&"pre"===A.substring(0,3);for(A=J.createElement("LI");H.firstChild;){A.appendChild(H.firstChild)}for(var F=[A],D=0;D<F.length;++D){E(F[D])}x===(x|0)&&F[0].setAttribute("value",x);var u=J.createElement("OL");u.className="linenums";for(var w=Math.max(0,x-1|0)||0,D=0,G=F.length;D<G;++D){A=F[D],A.className="L"+(D+w)%10,A.firstChild||A.appendChild(J.createTextNode("\xa0")),u.appendChild(A)}H.appendChild(u)}function z(u,k){for(var w=k.length;--w>=0;){var v=k[w];y.hasOwnProperty(v)?window.console&&console.warn("cannot override language handler %s",v):y[v]=u}}function s(u,k){if(!u||!y.hasOwnProperty(u)){u=/^\s*</.test(k)?"default-markup":"default-code"}return y[u]}function p(X){var L=X.g;try{var T=c(X.h),Q=T.a;X.a=Q;X.c=T.c;X.d=0;s(L,Q)(X);var N=/\bMSIE\b/.test(navigator.userAgent),L=/\n/g,F=X.a,G=F.length,T=0,M=X.c,I=M.length,Q=0,U=X.e,R=U.length,X=0;U[R]=G;var H,K;for(K=H=0;K<R;){U[K]!==U[K+2]?(U[H++]=U[K++],U[H++]=U[K++]):K+=2}R=H;for(K=H=0;K<R;){for(var A=U[K],S=U[K+1],W=K+2;W+2<=R&&U[W+1]===S;){W+=2}U[H++]=A;U[H++]=S;K=W}for(U.length=H;Q<I;){var J=M[Q+2]||G,V=U[X+2]||G,W=Math.min(J,V),P=M[Q+1],O;if(P.nodeType!==1&&(O=F.substring(T,W))){N&&(O=O.replace(L,"\r"));P.nodeValue=O;var E=P.ownerDocument,D=E.createElement("SPAN");D.className=U[X+1];var B=P.parentNode;B.replaceChild(D,P);D.appendChild(P);T<J&&(M[Q+1]=P=E.createTextNode(F.substring(W,J)),B.insertBefore(P,D.nextSibling))}T=W;T>=J&&(Q+=2);T>=V&&(X+=2)}}catch(C){"console" in window&&console.log(C&&C.stack?C.stack:C)}}var m=["break,continue,do,else,for,if,return,while"],j=[[m,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"],"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],n=[j,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"],l=[j,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"],i=[l,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"],j=[j,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"],g=[m,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"],f=[m,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],m=[m,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"],e=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/,b=/\S/,a=o({keywords:[n,i,j,"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END"+g,f,m],hashComments:!0,cStyleComments:!0,multiLineStrings:!0,regexLiterals:!0}),y={};z(a,["default-code"]);z(h([],[["pln",/^[^<?]+/],["dec",/^<!\w[^>]*(?:>|$)/],["com",/^<\!--[\S\s]*?(?:--\>|$)/],["lang-",/^<\?([\S\s]+?)(?:\?>|$)/],["lang-",/^<%([\S\s]+?)(?:%>|$)/],["pun",/^(?:<[%?]|[%?]>)/],["lang-",/^<xmp\b[^>]*>([\S\s]+?)<\/xmp\b[^>]*>/i],["lang-js",/^<script\b[^>]*>([\S\s]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\S\s]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);z(h([["pln",/^\s+/,q," \t\r\n"],["atv",/^(?:"[^"]*"?|'[^']*'?)/,q,"\"'"]],[["tag",/^^<\/?[a-z](?:[\w-.:]*\w)?|\/?>$/i],["atn",/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^\s"'>]*(?:[^\s"'/>]|\/(?=\s)))/],["pun",/^[/<->]+/],["lang-js",/^on\w+\s*=\s*"([^"]+)"/i],["lang-js",/^on\w+\s*=\s*'([^']+)'/i],["lang-js",/^on\w+\s*=\s*([^\s"'>]+)/i],["lang-css",/^style\s*=\s*"([^"]+)"/i],["lang-css",/^style\s*=\s*'([^']+)'/i],["lang-css",/^style\s*=\s*([^\s"'>]+)/i]]),["in.tag"]);z(h([],[["atv",/^[\S\s]+/]]),["uq.val"]);z(o({keywords:n,hashComments:!0,cStyleComments:!0,types:e}),["c","cc","cpp","cxx","cyc","m"]);z(o({keywords:"null,true,false"}),["json"]);z(o({keywords:i,hashComments:!0,cStyleComments:!0,verbatimStrings:!0,types:e}),["cs"]);z(o({keywords:l,cStyleComments:!0}),["java"]);z(o({keywords:m,hashComments:!0,multiLineStrings:!0}),["bsh","csh","sh"]);z(o({keywords:g,hashComments:!0,multiLineStrings:!0,tripleQuotedStrings:!0}),["cv","py"]);z(o({keywords:"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["perl","pl","pm"]);z(o({keywords:f,hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["rb"]);z(o({keywords:j,cStyleComments:!0,regexLiterals:!0}),["js"]);z(o({keywords:"all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes",hashComments:3,cStyleComments:!0,multilineStrings:!0,tripleQuotedStrings:!0,regexLiterals:!0}),["coffee"]);z(h([],[["str",/^[\S\s]+/]]),["regex"]);window.prettyPrintOne=function(u,k,w){var v=document.createElement("PRE");v.innerHTML=u;w&&r(v,w);p({g:k,i:w,h:v});return v.innerHTML};window.prettyPrint=function(E){function v(){for(var L=window.PR_SHOULD_USE_CONTINUATION?w.now()+250:Infinity;u<A.length&&w.now()<L;u++){var O=A[u],I=O.className;if(I.indexOf("prettyprint")>=0){var I=I.match(B),K,H;if(H=!I){H=O;for(var M=void 0,N=H.firstChild;N;N=N.nextSibling){var J=N.nodeType,M=J===1?M?H:N:J===3?b.test(N.nodeValue)?H:M:M}H=(K=M===H?void 0:M)&&"CODE"===K.tagName}H&&(I=K.className.match(B));I&&(I=I[1]);H=!1;for(M=O.parentNode;M;M=M.parentNode){if((M.tagName==="pre"||M.tagName==="code"||M.tagName==="xmp")&&M.className&&M.className.indexOf("prettyprint")>=0){H=!0;break}}H||((H=(H=O.className.match(/\blinenums\b(?::(\d+))?/))?H[1]&&H[1].length?+H[1]:!0:!1)&&r(O,H),D={g:I,h:O,i:H},p(D))}}u<A.length?setTimeout(v,250):E&&E()}for(var C=[document.getElementsByTagName("pre"),document.getElementsByTagName("code"),document.getElementsByTagName("xmp")],A=[],x=0;x<C.length;++x){for(var F=0,G=C[x].length;F<G;++F){A.push(C[x][F])}}var C=q,w=Date;w.now||(w={now:function(){return +new Date}});var u=0,D,B=/\blang(?:uage)?-([\w.]+)(?!\S)/;v()};window.PR={createSimpleLexer:h,registerLangHandler:z,sourceDecorator:o,PR_ATTRIB_NAME:"atn",PR_ATTRIB_VALUE:"atv",PR_COMMENT:"com",PR_DECLARATION:"dec",PR_KEYWORD:"kwd",PR_LITERAL:"lit",PR_NOCODE:"nocode",PR_PLAIN:"pln",PR_PUNCTUATION:"pun",PR_SOURCE:"src",PR_STRING:"str",PR_TAG:"tag",PR_TYPE:"typ"}})(); \ No newline at end of file diff --git a/docs/bg.png b/docs/bg.png deleted file mode 100644 index f65b22a06eac3348e4839b5b6b00a76aaa06fb07..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8401 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 diff --git a/docs/data-7123939d7aa281aafe53073d4dfed19f.js b/docs/data-7123939d7aa281aafe53073d4dfed19f.js new file mode 100644 index 0000000..00524bd --- /dev/null +++ b/docs/data-7123939d7aa281aafe53073d4dfed19f.js @@ -0,0 +1 @@ +Docs = {"data":{"touchExamplesUi":false,"search":[{"url":"#!/api/Frame","icon":"icon-class","fullName":"Frame","sort":1,"name":"Frame","meta":{}},{"url":"#!/api/Frame-method-buildFrame","icon":"icon-method","fullName":"Frame.buildFrame","sort":3,"name":"buildFrame","meta":{"chainable":true}},{"url":"#!/api/Frame-method-asString","icon":"icon-method","fullName":"Frame.asString","sort":3,"name":"asString","meta":{}},{"url":"#!/api/Stomp","icon":"icon-class","fullName":"Stomp","sort":1,"name":"Stomp","meta":{}},{"url":"#!/api/Stomp-method-Client","icon":"icon-method","fullName":"Stomp.Client","sort":3,"name":"Client","meta":{}},{"url":"#!/api/Stomp-method-isInitialized","icon":"icon-method","fullName":"Stomp.isInitialized","sort":3,"name":"isInitialized","meta":{}},{"url":"#!/api/Stomp-method-isConnected","icon":"icon-method","fullName":"Stomp.isConnected","sort":3,"name":"isConnected","meta":{}},{"url":"#!/api/Stomp-method-connect","icon":"icon-method","fullName":"Stomp.connect","sort":3,"name":"connect","meta":{}},{"url":"#!/api/Stomp-method-disconnect","icon":"icon-method","fullName":"Stomp.disconnect","sort":3,"name":"disconnect","meta":{}},{"url":"#!/api/Stomp-method-subscribe","icon":"icon-method","fullName":"Stomp.subscribe","sort":3,"name":"subscribe","meta":{}},{"url":"#!/api/Stomp-method-unsubscribe","icon":"icon-method","fullName":"Stomp.unsubscribe","sort":3,"name":"unsubscribe","meta":{}},{"url":"#!/api/Stomp-method-send","icon":"icon-method","fullName":"Stomp.send","sort":3,"name":"send","meta":{}},{"url":"#!/api/Stomp-method-ack","icon":"icon-method","fullName":"Stomp.ack","sort":3,"name":"ack","meta":{}},{"url":"#!/api/Stomp-method-begin","icon":"icon-method","fullName":"Stomp.begin","sort":3,"name":"begin","meta":{}},{"url":"#!/api/Stomp-method-commit","icon":"icon-method","fullName":"Stomp.commit","sort":3,"name":"commit","meta":{}},{"url":"#!/api/Stomp-method-abort","icon":"icon-method","fullName":"Stomp.abort","sort":3,"name":"abort","meta":{}},{"url":"#!/api/Stomp-method-handleNewFrame","icon":"icon-method","fullName":"Stomp.handleNewFrame","sort":3,"name":"handleNewFrame","meta":{"private":true}},{"url":"#!/api/Stomp-method-setupListeners","icon":"icon-method","fullName":"Stomp.setupListeners","sort":3,"name":"setupListeners","meta":{"private":true}},{"url":"#!/api/Stomp-method-stompConnect","icon":"icon-method","fullName":"Stomp.stompConnect","sort":3,"name":"stompConnect","meta":{"private":true}},{"url":"#!/api/Stomp-method-emitWrapper","icon":"icon-method","fullName":"Stomp.emitWrapper","sort":3,"name":"emitWrapper","meta":{"private":true}},{"url":"#!/api/Stomp-method-getOptions","icon":"icon-method","fullName":"Stomp.getOptions","sort":3,"name":"getOptions","meta":{"private":true}},{"url":"#!/api/Stomp-method-parseCommand","icon":"icon-method","fullName":"Stomp.parseCommand","sort":3,"name":"parseCommand","meta":{"private":true}},{"url":"#!/api/Stomp-method-parseHeaders","icon":"icon-method","fullName":"Stomp.parseHeaders","sort":3,"name":"parseHeaders","meta":{"private":true}},{"url":"#!/api/Stomp-method-parseFrame","icon":"icon-method","fullName":"Stomp.parseFrame","sort":3,"name":"parseFrame","meta":{"private":true}},{"url":"#!/api/Stomp-method-buildHeaders","icon":"icon-method","fullName":"Stomp.buildHeaders","sort":3,"name":"buildHeaders","meta":{"private":true}},{"url":"#!/api/Stomp-method-sendCommand","icon":"icon-method","fullName":"Stomp.sendCommand","sort":3,"name":"sendCommand","meta":{"private":true}},{"url":"#!/api/Stomp-method-sendFrame","icon":"icon-method","fullName":"Stomp.sendFrame","sort":3,"name":"sendFrame","meta":{"private":true}},{"url":"#!/api/Stomp-method-isMessage","icon":"icon-method","fullName":"Stomp.isMessage","sort":3,"name":"isMessage","meta":{"private":true}},{"url":"#!/api/Stomp-method-shouldRunMessageCallback","icon":"icon-method","fullName":"Stomp.shouldRunMessageCallback","sort":3,"name":"shouldRunMessageCallback","meta":{"private":true}},{"url":"#!/api/StompLogger","icon":"icon-class","fullName":"StompLogger","sort":1,"name":"StompLogger","meta":{}},{"url":"#!/api/StompLogger-method-debug","icon":"icon-method","fullName":"StompLogger.debug","sort":3,"name":"debug","meta":{}},{"url":"#!/api/StompLogger-method-info","icon":"icon-method","fullName":"StompLogger.info","sort":3,"name":"info","meta":{}},{"url":"#!/api/StompLogger-method-warn","icon":"icon-method","fullName":"StompLogger.warn","sort":3,"name":"warn","meta":{}},{"url":"#!/api/StompLogger-method-error","icon":"icon-method","fullName":"StompLogger.error","sort":3,"name":"error","meta":{}},{"url":"#!/api/StompLogger-method-die","icon":"icon-method","fullName":"StompLogger.die","sort":3,"name":"die","meta":{}},{"url":"#!/api/StompUtils","icon":"icon-class","fullName":"StompUtils","sort":1,"name":"StompUtils","meta":{}},{"url":"#!/api/StompUtils-method-isDefined","icon":"icon-method","fullName":"StompUtils.isDefined","sort":3,"name":"isDefined","meta":{}},{"url":"#!/api/StompUtils-method-extend","icon":"icon-method","fullName":"StompUtils.extend","sort":3,"name":"extend","meta":{}}],"classes":[{"icon":"icon-class","private":null,"extends":null,"name":"Frame"},{"icon":"icon-class","private":null,"extends":null,"name":"Stomp"},{"icon":"icon-class","private":null,"extends":null,"name":"StompLogger"},{"icon":"icon-class","private":null,"extends":null,"name":"StompUtils"}],"tests":false,"commentsUrl":null,"source":true,"localStorageDb":"docs","guides":[],"videos":[],"commentsDomain":null,"showPrintButton":false,"signatures":[{"key":"abstract","short":"ABS","long":"abstract"},{"key":"chainable","short":">","long":"chainable"},{"key":"deprecated","short":"DEP","long":"deprecated"},{"key":"new","short":"★","long":"★"},{"key":"preventable","short":"PREV","long":"preventable"},{"key":"private","short":"PRI","long":"private"},{"key":"protected","short":"PRO","long":"protected"},{"key":"readonly","short":"R O","long":"readonly"},{"key":"removed","short":"REM","long":"removed"},{"key":"required","short":"REQ","long":"required"},{"key":"static","short":"STA","long":"static"},{"key":"template","short":"TMP","long":"template"}],"examples":[]}}; diff --git a/docs/eg-iframe.html b/docs/eg-iframe.html new file mode 100644 index 0000000..022f929 --- /dev/null +++ b/docs/eg-iframe.html @@ -0,0 +1,26 @@ +<!DOCTYPE html> +<html> +<head> + <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> + <meta http-equiv="X-UA-Compatible" content="chrome=1"> + <title>Sencha Examples</title> + + <script type="text/javascript" src="extjs-build/ext-all.js"></script> + <link rel="stylesheet" type="text/css" href="extjs-build/resources/css/ext-all.css"> + + <script type="text/javascript"> + function loadInlineExample(code, options, callback) { + try { + document.body.innerHTML = ''; + eval(code); + callback && callback(true); + } catch (e) { + document.body.innerHTML = e; + callback && callback(false, e); + } + } + </script> +</head> +<body> +</body> +</html> diff --git a/docs/extjs/ext-all.js b/docs/extjs/ext-all.js new file mode 100644 index 0000000..46aeaa0 --- /dev/null +++ b/docs/extjs/ext-all.js @@ -0,0 +1,38 @@ +/* +Ext JS 4.1 - JavaScript Library +Copyright (c) 2006-2012, Sencha Inc. +All rights reserved. +licensing@sencha.com + +http://www.sencha.com/license + +Open Source License +------------------------------------------------------------------------------------------ +This version of Ext JS is licensed under the terms of the Open Source GPL 3.0 license. + +http://www.gnu.org/licenses/gpl.html + +There are several FLOSS exceptions available for use with this release for +open source applications that are distributed under a license other than GPL. + +* Open Source License Exception for Applications + + http://www.sencha.com/products/floss-exception.php + +* Open Source License Exception for Development + + http://www.sencha.com/products/ux-exception.php + + +Alternate Licensing +------------------------------------------------------------------------------------------ +Commercial and OEM Licenses are available for an alternate download of Ext JS. +This is the appropriate option if you are creating proprietary applications and you are +not prepared to distribute and share the source code of your application under the +GPL v3 license. Please visit http://www.sencha.com/license for more details. + +-- + +This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT OF THIRD-PARTY INTELLECTUAL PROPERTY RIGHTS. See the GNU General Public License for more details. +*/ +var Ext=Ext||{};Ext._startTime=new Date().getTime();(function(){var h=this,a=Object.prototype,j=a.toString,b=true,g={toString:1},e=function(){},d=function(){var i=d.caller.caller;return i.$owner.prototype[i.$name].apply(this,arguments)},c;Ext.global=h;for(c in g){b=null}if(b){b=["hasOwnProperty","valueOf","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","constructor"]}Ext.enumerables=b;Ext.apply=function(o,n,q){if(q){Ext.apply(o,q)}if(o&&n&&typeof n==="object"){var p,m,l;for(p in n){o[p]=n[p]}if(b){for(m=b.length;m--;){l=b[m];if(n.hasOwnProperty(l)){o[l]=n[l]}}}}return o};Ext.buildSettings=Ext.apply({baseCSSPrefix:"x-",scopeResetCSS:false},Ext.buildSettings||{});Ext.apply(Ext,{name:Ext.sandboxName||"Ext",emptyFn:e,emptyString:new String(),baseCSSPrefix:Ext.buildSettings.baseCSSPrefix,applyIf:function(k,i){var l;if(k){for(l in i){if(k[l]===undefined){k[l]=i[l]}}}return k},iterate:function(i,l,k){if(Ext.isEmpty(i)){return}if(k===undefined){k=i}if(Ext.isIterable(i)){Ext.Array.each.call(Ext.Array,i,l,k)}else{Ext.Object.each.call(Ext.Object,i,l,k)}}});Ext.apply(Ext,{extend:(function(){var i=a.constructor,k=function(n){for(var l in n){if(!n.hasOwnProperty(l)){continue}this[l]=n[l]}};return function(l,q,o){if(Ext.isObject(q)){o=q;q=l;l=o.constructor!==i?o.constructor:function(){q.apply(this,arguments)}}var n=function(){},m,p=q.prototype;n.prototype=p;m=l.prototype=new n();m.constructor=l;l.superclass=p;if(p.constructor===i){p.constructor=q}l.override=function(r){Ext.override(l,r)};m.override=k;m.proto=m;l.override(o);l.extend=function(r){return Ext.extend(l,r)};return l}}()),override:function(m,n){if(m.$isClass){m.override(n)}else{if(typeof m=="function"){Ext.apply(m.prototype,n)}else{var i=m.self,k,l;if(i&&i.$isClass){for(k in n){if(n.hasOwnProperty(k)){l=n[k];if(typeof l=="function"){l.$name=k;l.$owner=i;l.$previous=m.hasOwnProperty(k)?m[k]:d}m[k]=l}}}else{Ext.apply(m,n)}}}return m}});Ext.apply(Ext,{valueFrom:function(l,i,k){return Ext.isEmpty(l,k)?i:l},typeOf:function(k){var i,l;if(k===null){return"null"}i=typeof k;if(i==="undefined"||i==="string"||i==="number"||i==="boolean"){return i}l=j.call(k);switch(l){case"[object Array]":return"array";case"[object Date]":return"date";case"[object Boolean]":return"boolean";case"[object Number]":return"number";case"[object RegExp]":return"regexp"}if(i==="function"){return"function"}if(i==="object"){if(k.nodeType!==undefined){if(k.nodeType===3){return(/\S/).test(k.nodeValue)?"textnode":"whitespace"}else{return"element"}}return"object"}},isEmpty:function(i,k){return(i===null)||(i===undefined)||(!k?i==="":false)||(Ext.isArray(i)&&i.length===0)},isArray:("isArray" in Array)?Array.isArray:function(i){return j.call(i)==="[object Array]"},isDate:function(i){return j.call(i)==="[object Date]"},isObject:(j.call(null)==="[object Object]")?function(i){return i!==null&&i!==undefined&&j.call(i)==="[object Object]"&&i.ownerDocument===undefined}:function(i){return j.call(i)==="[object Object]"},isSimpleObject:function(i){return i instanceof Object&&i.constructor===Object},isPrimitive:function(k){var i=typeof k;return i==="string"||i==="number"||i==="boolean"},isFunction:(typeof document!=="undefined"&&typeof document.getElementsByTagName("body")==="function")?function(i){return j.call(i)==="[object Function]"}:function(i){return typeof i==="function"},isNumber:function(i){return typeof i==="number"&&isFinite(i)},isNumeric:function(i){return !isNaN(parseFloat(i))&&isFinite(i)},isString:function(i){return typeof i==="string"},isBoolean:function(i){return typeof i==="boolean"},isElement:function(i){return i?i.nodeType===1:false},isTextNode:function(i){return i?i.nodeName==="#text":false},isDefined:function(i){return typeof i!=="undefined"},isIterable:function(k){var i=typeof k,l=false;if(k&&i!="string"){if(i=="function"){if(Ext.isSafari){l=k instanceof NodeList||k instanceof HTMLCollection}}else{l=true}}return l?k.length!==undefined:false}});Ext.apply(Ext,{clone:function(q){var p,o,m,l,r,n;if(q===null||q===undefined){return q}if(q.nodeType&&q.cloneNode){return q.cloneNode(true)}p=j.call(q);if(p==="[object Date]"){return new Date(q.getTime())}if(p==="[object Array]"){o=q.length;r=[];while(o--){r[o]=Ext.clone(q[o])}}else{if(p==="[object Object]"&&q.constructor===Object){r={};for(n in q){r[n]=Ext.clone(q[n])}if(b){for(m=b.length;m--;){l=b[m];r[l]=q[l]}}}}return r||q},getUniqueGlobalNamespace:function(){var l=this.uniqueGlobalNamespace,k;if(l===undefined){k=0;do{l="ExtBox"+(++k)}while(Ext.global[l]!==undefined);Ext.global[l]=Ext;this.uniqueGlobalNamespace=l}return l},functionFactoryCache:{},cacheableFunctionFactory:function(){var o=this,l=Array.prototype.slice.call(arguments),k=o.functionFactoryCache,i,m,n;if(Ext.isSandboxed){n=l.length;if(n>0){n--;l[n]="var Ext=window."+Ext.name+";"+l[n]}}i=l.join("");m=k[i];if(!m){m=Function.prototype.constructor.apply(Function.prototype,l);k[i]=m}return m},functionFactory:function(){var l=this,i=Array.prototype.slice.call(arguments),k;if(Ext.isSandboxed){k=i.length;if(k>0){k--;i[k]="var Ext=window."+Ext.name+";"+i[k]}}return Function.prototype.constructor.apply(Function.prototype,i)},Logger:{verbose:e,log:e,info:e,warn:e,error:function(i){throw new Error(i)},deprecate:e}});Ext.type=Ext.typeOf}());Ext.globalEval=Ext.global.execScript?function(a){execScript(a)}:function($$code){(function(){eval($$code)}())};(function(){var a="4.1.1.1",b;Ext.Version=b=Ext.extend(Object,{constructor:function(c){var e,d;if(c instanceof b){return c}this.version=this.shortVersion=String(c).toLowerCase().replace(/_/g,".").replace(/[\-+]/g,"");d=this.version.search(/([^\d\.])/);if(d!==-1){this.release=this.version.substr(d,c.length);this.shortVersion=this.version.substr(0,d)}this.shortVersion=this.shortVersion.replace(/[^\d]/g,"");e=this.version.split(".");this.major=parseInt(e.shift()||0,10);this.minor=parseInt(e.shift()||0,10);this.patch=parseInt(e.shift()||0,10);this.build=parseInt(e.shift()||0,10);return this},toString:function(){return this.version},valueOf:function(){return this.version},getMajor:function(){return this.major||0},getMinor:function(){return this.minor||0},getPatch:function(){return this.patch||0},getBuild:function(){return this.build||0},getRelease:function(){return this.release||""},isGreaterThan:function(c){return b.compare(this.version,c)===1},isGreaterThanOrEqual:function(c){return b.compare(this.version,c)>=0},isLessThan:function(c){return b.compare(this.version,c)===-1},isLessThanOrEqual:function(c){return b.compare(this.version,c)<=0},equals:function(c){return b.compare(this.version,c)===0},match:function(c){c=String(c);return this.version.substr(0,c.length)===c},toArray:function(){return[this.getMajor(),this.getMinor(),this.getPatch(),this.getBuild(),this.getRelease()]},getShortVersion:function(){return this.shortVersion},gt:function(){return this.isGreaterThan.apply(this,arguments)},lt:function(){return this.isLessThan.apply(this,arguments)},gtEq:function(){return this.isGreaterThanOrEqual.apply(this,arguments)},ltEq:function(){return this.isLessThanOrEqual.apply(this,arguments)}});Ext.apply(b,{releaseValueMap:{dev:-6,alpha:-5,a:-5,beta:-4,b:-4,rc:-3,"#":-2,p:-1,pl:-1},getComponentValue:function(c){return !c?0:(isNaN(c)?this.releaseValueMap[c]||c:parseInt(c,10))},compare:function(h,g){var d,e,c;h=new b(h).toArray();g=new b(g).toArray();for(c=0;c<Math.max(h.length,g.length);c++){d=this.getComponentValue(h[c]);e=this.getComponentValue(g[c]);if(d<e){return -1}else{if(d>e){return 1}}}return 0}});Ext.apply(Ext,{versions:{},lastRegisteredVersion:null,setVersion:function(d,c){Ext.versions[d]=new b(c);Ext.lastRegisteredVersion=Ext.versions[d];return this},getVersion:function(c){if(c===undefined){return Ext.lastRegisteredVersion}return Ext.versions[c]},deprecate:function(c,e,g,d){if(b.compare(Ext.getVersion(c),e)<1){g.call(d)}}});Ext.setVersion("core",a)}());Ext.String=(function(){var i=/^[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u2028\u2029\u202f\u205f\u3000]+|[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u2028\u2029\u202f\u205f\u3000]+$/g,m=/('|\\)/g,h=/\{(\d+)\}/g,b=/([-.*+?\^${}()|\[\]\/\\])/g,n=/^\s+|\s+$/g,j=/\s+/,l=/(^[^a-z]*|[^\w])/gi,d,a,g,c,e=function(p,o){return d[o]},k=function(p,o){return(o in a)?a[o]:String.fromCharCode(parseInt(o.substr(2),10))};return{createVarName:function(o){return o.replace(l,"")},htmlEncode:function(o){return(!o)?o:String(o).replace(g,e)},htmlDecode:function(o){return(!o)?o:String(o).replace(c,k)},addCharacterEntities:function(p){var o=[],s=[],q,r;for(q in p){r=p[q];a[q]=r;d[r]=q;o.push(r);s.push(q)}g=new RegExp("("+o.join("|")+")","g");c=new RegExp("("+s.join("|")+"|&#[0-9]{1,5};)","g")},resetCharacterEntities:function(){d={};a={};this.addCharacterEntities({"&":"&",">":">","<":"<",""":'"',"'":"'"})},urlAppend:function(p,o){if(!Ext.isEmpty(o)){return p+(p.indexOf("?")===-1?"?":"&")+o}return p},trim:function(o){return o.replace(i,"")},capitalize:function(o){return o.charAt(0).toUpperCase()+o.substr(1)},uncapitalize:function(o){return o.charAt(0).toLowerCase()+o.substr(1)},ellipsis:function(q,o,r){if(q&&q.length>o){if(r){var s=q.substr(0,o-2),p=Math.max(s.lastIndexOf(" "),s.lastIndexOf("."),s.lastIndexOf("!"),s.lastIndexOf("?"));if(p!==-1&&p>=(o-15)){return s.substr(0,p)+"..."}}return q.substr(0,o-3)+"..."}return q},escapeRegex:function(o){return o.replace(b,"\\$1")},escape:function(o){return o.replace(m,"\\$1")},toggle:function(p,q,o){return p===q?o:q},leftPad:function(p,q,r){var o=String(p);r=r||" ";while(o.length<q){o=r+o}return o},format:function(p){var o=Ext.Array.toArray(arguments,1);return p.replace(h,function(q,r){return o[r]})},repeat:function(s,r,p){for(var o=[],q=r;q--;){o.push(s)}return o.join(p||"")},splitWords:function(o){if(o&&typeof o=="string"){return o.replace(n,"").split(j)}return o||[]}}}());Ext.String.resetCharacterEntities();Ext.htmlEncode=Ext.String.htmlEncode;Ext.htmlDecode=Ext.String.htmlDecode;Ext.urlAppend=Ext.String.urlAppend;Ext.Number=new function(){var b=this,c=(0.9).toFixed()!=="1",a=Math;Ext.apply(this,{constrain:function(h,g,e){var d=parseFloat(h);return(d<g)?g:((d>e)?e:d)},snap:function(h,e,g,i){var d;if(h===undefined||h<g){return g||0}if(e){d=h%e;if(d!==0){h-=d;if(d*2>=e){h+=e}else{if(d*2<-e){h-=e}}}}return b.constrain(h,g,i)},snapInRange:function(h,d,g,i){var e;g=(g||0);if(h===undefined||h<g){return g}if(d&&(e=((h-g)%d))){h-=e;e*=2;if(e>=d){h+=d}}if(i!==undefined){if(h>(i=b.snapInRange(i,d,g))){h=i}}return h},toFixed:c?function(g,d){d=d||0;var e=a.pow(10,d);return(a.round(g*e)/e).toFixed(d)}:function(e,d){return e.toFixed(d)},from:function(e,d){if(isFinite(e)){e=parseFloat(e)}return !isNaN(e)?e:d},randomInt:function(e,d){return a.floor(a.random()*(d-e+1)+e)}});Ext.num=function(){return b.from.apply(this,arguments)}};(function(){var g=Array.prototype,o=g.slice,q=(function(){var A=[],e,z=20;if(!A.splice){return false}while(z--){A.push("A")}A.splice(15,0,"F","F","F","F","F","F","F","F","F","F","F","F","F","F","F","F","F","F","F","F","F");e=A.length;A.splice(13,0,"XXX");if(e+1!=A.length){return false}return true}()),j="forEach" in g,u="map" in g,p="indexOf" in g,y="every" in g,c="some" in g,d="filter" in g,n=(function(){var e=[1,2,3,4,5].sort(function(){return 0});return e[0]===1&&e[1]===2&&e[2]===3&&e[3]===4&&e[4]===5}()),k=true,a,w,t,v;try{if(typeof document!=="undefined"){o.call(document.getElementsByTagName("body"))}}catch(s){k=false}function m(z,e){return(e<0)?Math.max(0,z.length+e):Math.min(z.length,e)}function x(G,F,z,J){var K=J?J.length:0,B=G.length,H=m(G,F),E,I,A,e,C,D;if(H===B){if(K){G.push.apply(G,J)}}else{E=Math.min(z,B-H);I=H+E;A=I+K-E;e=B-I;C=B-E;if(A<I){for(D=0;D<e;++D){G[A+D]=G[I+D]}}else{if(A>I){for(D=e;D--;){G[A+D]=G[I+D]}}}if(K&&H===C){G.length=C;G.push.apply(G,J)}else{G.length=C+K;for(D=0;D<K;++D){G[H+D]=J[D]}}}return G}function i(B,e,A,z){if(z&&z.length){if(e<B.length){B.splice.apply(B,[e,A].concat(z))}else{B.push.apply(B,z)}}else{B.splice(e,A)}return B}function b(A,e,z){return x(A,e,z)}function r(A,e,z){A.splice(e,z);return A}function l(C,e,A){var B=m(C,e),z=C.slice(e,m(C,B+A));if(arguments.length<4){x(C,B,A)}else{x(C,B,A,o.call(arguments,3))}return z}function h(e){return e.splice.apply(e,o.call(arguments,1))}w=q?r:b;t=q?i:x;v=q?h:l;a=Ext.Array={each:function(D,B,A,e){D=a.from(D);var z,C=D.length;if(e!==true){for(z=0;z<C;z++){if(B.call(A||D[z],D[z],z,D)===false){return z}}}else{for(z=C-1;z>-1;z--){if(B.call(A||D[z],D[z],z,D)===false){return z}}}return true},forEach:j?function(A,z,e){return A.forEach(z,e)}:function(C,A,z){var e=0,B=C.length;for(;e<B;e++){A.call(z,C[e],e,C)}},indexOf:p?function(A,e,z){return A.indexOf(e,z)}:function(C,A,B){var e,z=C.length;for(e=(B<0)?Math.max(0,z+B):B||0;e<z;e++){if(C[e]===A){return e}}return -1},contains:p?function(z,e){return z.indexOf(e)!==-1}:function(B,A){var e,z;for(e=0,z=B.length;e<z;e++){if(B[e]===A){return true}}return false},toArray:function(A,C,e){if(!A||!A.length){return[]}if(typeof A==="string"){A=A.split("")}if(k){return o.call(A,C||0,e||A.length)}var B=[],z;C=C||0;e=e?((e<0)?A.length+e:e):A.length;for(z=C;z<e;z++){B.push(A[z])}return B},pluck:function(D,e){var z=[],A,C,B;for(A=0,C=D.length;A<C;A++){B=D[A];z.push(B[e])}return z},map:u?function(A,z,e){return A.map(z,e)}:function(D,C,B){var A=[],z=0,e=D.length;for(;z<e;z++){A[z]=C.call(B,D[z],z,D)}return A},every:y?function(A,z,e){return A.every(z,e)}:function(C,A,z){var e=0,B=C.length;for(;e<B;++e){if(!A.call(z,C[e],e,C)){return false}}return true},some:c?function(A,z,e){return A.some(z,e)}:function(C,A,z){var e=0,B=C.length;for(;e<B;++e){if(A.call(z,C[e],e,C)){return true}}return false},clean:function(C){var z=[],e=0,B=C.length,A;for(;e<B;e++){A=C[e];if(!Ext.isEmpty(A)){z.push(A)}}return z},unique:function(C){var B=[],e=0,A=C.length,z;for(;e<A;e++){z=C[e];if(a.indexOf(B,z)===-1){B.push(z)}}return B},filter:d?function(A,z,e){return A.filter(z,e)}:function(D,B,A){var z=[],e=0,C=D.length;for(;e<C;e++){if(B.call(A,D[e],e,D)){z.push(D[e])}}return z},from:function(A,z){if(A===undefined||A===null){return[]}if(Ext.isArray(A)){return(z)?o.call(A):A}var e=typeof A;if(A&&A.length!==undefined&&e!=="string"&&(e!=="function"||!A.apply)){return a.toArray(A)}return[A]},remove:function(A,z){var e=a.indexOf(A,z);if(e!==-1){w(A,e,1)}return A},include:function(z,e){if(!a.contains(z,e)){z.push(e)}},clone:function(e){return o.call(e)},merge:function(){var e=o.call(arguments),B=[],z,A;for(z=0,A=e.length;z<A;z++){B=B.concat(e[z])}return a.unique(B)},intersect:function(){var e=[],A=o.call(arguments),L,J,F,I,M,B,z,H,K,C,G,E,D;if(!A.length){return e}L=A.length;for(G=M=0;G<L;G++){B=A[G];if(!I||B.length<I.length){I=B;M=G}}I=a.unique(I);w(A,M,1);z=I.length;L=A.length;for(G=0;G<z;G++){H=I[G];C=0;for(E=0;E<L;E++){J=A[E];F=J.length;for(D=0;D<F;D++){K=J[D];if(H===K){C++;break}}}if(C===L){e.push(H)}}return e},difference:function(z,e){var E=o.call(z),C=E.length,B,A,D;for(B=0,D=e.length;B<D;B++){for(A=0;A<C;A++){if(E[A]===e[B]){w(E,A,1);A--;C--}}}return E},slice:([1,2].slice(1,undefined).length?function(A,z,e){return o.call(A,z,e)}:function(A,z,e){if(typeof z==="undefined"){return o.call(A)}if(typeof e==="undefined"){return o.call(A,z)}return o.call(A,z,e)}),sort:n?function(z,e){if(e){return z.sort(e)}else{return z.sort()}}:function(F,E){var C=F.length,B=0,D,e,A,z;for(;B<C;B++){A=B;for(e=B+1;e<C;e++){if(E){D=E(F[e],F[A]);if(D<0){A=e}}else{if(F[e]<F[A]){A=e}}}if(A!==B){z=F[B];F[B]=F[A];F[A]=z}}return F},flatten:function(A){var z=[];function e(B){var D,E,C;for(D=0,E=B.length;D<E;D++){C=B[D];if(Ext.isArray(C)){e(C)}else{z.push(C)}}return z}return e(A)},min:function(D,C){var z=D[0],e,B,A;for(e=0,B=D.length;e<B;e++){A=D[e];if(C){if(C(z,A)===1){z=A}}else{if(A<z){z=A}}}return z},max:function(D,C){var e=D[0],z,B,A;for(z=0,B=D.length;z<B;z++){A=D[z];if(C){if(C(e,A)===-1){e=A}}else{if(A>e){e=A}}}return e},mean:function(e){return e.length>0?a.sum(e)/e.length:undefined},sum:function(C){var z=0,e,B,A;for(e=0,B=C.length;e<B;e++){A=C[e];z+=A}return z},toMap:function(C,e,A){var B={},z=C.length;if(!e){while(z--){B[C[z]]=z+1}}else{if(typeof e=="string"){while(z--){B[C[z][e]]=z+1}}else{while(z--){B[e.call(A,C[z])]=z+1}}}return B},erase:w,insert:function(A,z,e){return t(A,z,0,e)},replace:t,splice:v,push:function(B){var e=arguments.length,A=1,z;if(B===undefined){B=[]}else{if(!Ext.isArray(B)){B=[B]}}for(;A<e;A++){z=arguments[A];Array.prototype.push[Ext.isArray(z)?"apply":"call"](B,z)}return B}};Ext.each=a.each;a.union=a.merge;Ext.min=a.min;Ext.max=a.max;Ext.sum=a.sum;Ext.mean=a.mean;Ext.flatten=a.flatten;Ext.clean=a.clean;Ext.unique=a.unique;Ext.pluck=a.pluck;Ext.toArray=function(){return a.toArray.apply(a,arguments)}}());Ext.Function={flexSetter:function(a){return function(d,c){var e,g;if(d===null){return this}if(typeof d!=="string"){for(e in d){if(d.hasOwnProperty(e)){a.call(this,e,d[e])}}if(Ext.enumerables){for(g=Ext.enumerables.length;g--;){e=Ext.enumerables[g];if(d.hasOwnProperty(e)){a.call(this,e,d[e])}}}}else{a.call(this,d,c)}return this}},bind:function(d,c,b,a){if(arguments.length===2){return function(){return d.apply(c,arguments)}}var g=d,e=Array.prototype.slice;return function(){var h=b||arguments;if(a===true){h=e.call(arguments,0);h=h.concat(b)}else{if(typeof a=="number"){h=e.call(arguments,0);Ext.Array.insert(h,a,b)}}return g.apply(c||Ext.global,h)}},pass:function(c,a,b){if(!Ext.isArray(a)){if(Ext.isIterable(a)){a=Ext.Array.clone(a)}else{a=a!==undefined?[a]:[]}}return function(){var d=[].concat(a);d.push.apply(d,arguments);return c.apply(b||this,d)}},alias:function(b,a){return function(){return b[a].apply(b,arguments)}},clone:function(a){return function(){return a.apply(this,arguments)}},createInterceptor:function(d,c,b,a){var e=d;if(!Ext.isFunction(c)){return d}else{return function(){var h=this,g=arguments;c.target=h;c.method=d;return(c.apply(b||h||Ext.global,g)!==false)?d.apply(h||Ext.global,g):a||null}}},createDelayed:function(e,c,d,b,a){if(d||b){e=Ext.Function.bind(e,d,b,a)}return function(){var h=this,g=Array.prototype.slice.call(arguments);setTimeout(function(){e.apply(h,g)},c)}},defer:function(e,c,d,b,a){e=Ext.Function.bind(e,d,b,a);if(c>0){return setTimeout(Ext.supports.TimeoutActualLateness?function(){e()}:e,c)}e();return 0},createSequence:function(b,c,a){if(!c){return b}else{return function(){var d=b.apply(this,arguments);c.apply(a||this,arguments);return d}}},createBuffered:function(e,b,d,c){var a;return function(){var h=c||Array.prototype.slice.call(arguments,0),g=d||this;if(a){clearTimeout(a)}a=setTimeout(function(){e.apply(g,h)},b)}},createThrottled:function(e,b,d){var g,a,c,i,h=function(){e.apply(d||this,c);g=new Date().getTime()};return function(){a=new Date().getTime()-g;c=arguments;clearTimeout(i);if(!g||(a>=b)){h()}else{i=setTimeout(h,b-a)}}},interceptBefore:function(b,a,d,c){var e=b[a]||Ext.emptyFn;return(b[a]=function(){var g=d.apply(c||this,arguments);e.apply(this,arguments);return g})},interceptAfter:function(b,a,d,c){var e=b[a]||Ext.emptyFn;return(b[a]=function(){e.apply(this,arguments);return d.apply(c||this,arguments)})}};Ext.defer=Ext.Function.alias(Ext.Function,"defer");Ext.pass=Ext.Function.alias(Ext.Function,"pass");Ext.bind=Ext.Function.alias(Ext.Function,"bind");(function(){var a=function(){},b=Ext.Object={chain:function(d){a.prototype=d;var c=new a();a.prototype=null;return c},toQueryObjects:function(e,k,d){var c=b.toQueryObjects,j=[],g,h;if(Ext.isArray(k)){for(g=0,h=k.length;g<h;g++){if(d){j=j.concat(c(e+"["+g+"]",k[g],true))}else{j.push({name:e,value:k[g]})}}}else{if(Ext.isObject(k)){for(g in k){if(k.hasOwnProperty(g)){if(d){j=j.concat(c(e+"["+g+"]",k[g],true))}else{j.push({name:e,value:k[g]})}}}}else{j.push({name:e,value:k})}}return j},toQueryString:function(g,d){var h=[],e=[],l,k,m,c,n;for(l in g){if(g.hasOwnProperty(l)){h=h.concat(b.toQueryObjects(l,g[l],d))}}for(k=0,m=h.length;k<m;k++){c=h[k];n=c.value;if(Ext.isEmpty(n)){n=""}else{if(Ext.isDate(n)){n=Ext.Date.toString(n)}}e.push(encodeURIComponent(c.name)+"="+encodeURIComponent(String(n)))}return e.join("&")},fromQueryString:function(d,r){var m=d.replace(/^\?/,"").split("&"),u={},s,k,w,n,q,g,o,p,c,h,t,l,v,e;for(q=0,g=m.length;q<g;q++){o=m[q];if(o.length>0){k=o.split("=");w=decodeURIComponent(k[0]);n=(k[1]!==undefined)?decodeURIComponent(k[1]):"";if(!r){if(u.hasOwnProperty(w)){if(!Ext.isArray(u[w])){u[w]=[u[w]]}u[w].push(n)}else{u[w]=n}}else{h=w.match(/(\[):?([^\]]*)\]/g);t=w.match(/^([^\[]+)/);w=t[0];l=[];if(h===null){u[w]=n;continue}for(p=0,c=h.length;p<c;p++){v=h[p];v=(v.length===2)?"":v.substring(1,v.length-1);l.push(v)}l.unshift(w);s=u;for(p=0,c=l.length;p<c;p++){v=l[p];if(p===c-1){if(Ext.isArray(s)&&v===""){s.push(n)}else{s[v]=n}}else{if(s[v]===undefined||typeof s[v]==="string"){e=l[p+1];s[v]=(Ext.isNumeric(e)||e==="")?[]:{}}s=s[v]}}}}}return u},each:function(c,e,d){for(var g in c){if(c.hasOwnProperty(g)){if(e.call(d||c,g,c[g],c)===false){return}}}},merge:function(k){var h=1,j=arguments.length,c=b.merge,e=Ext.clone,g,m,l,d;for(;h<j;h++){g=arguments[h];for(m in g){l=g[m];if(l&&l.constructor===Object){d=k[m];if(d&&d.constructor===Object){c(d,l)}else{k[m]=e(l)}}else{k[m]=l}}}return k},mergeIf:function(c){var h=1,j=arguments.length,e=Ext.clone,d,g,k;for(;h<j;h++){d=arguments[h];for(g in d){if(!(g in c)){k=d[g];if(k&&k.constructor===Object){c[g]=e(k)}else{c[g]=k}}}}return c},getKey:function(c,e){for(var d in c){if(c.hasOwnProperty(d)&&c[d]===e){return d}}return null},getValues:function(d){var c=[],e;for(e in d){if(d.hasOwnProperty(e)){c.push(d[e])}}return c},getKeys:(typeof Object.keys=="function")?function(c){if(!c){return[]}return Object.keys(c)}:function(c){var d=[],e;for(e in c){if(c.hasOwnProperty(e)){d.push(e)}}return d},getSize:function(c){var d=0,e;for(e in c){if(c.hasOwnProperty(e)){d++}}return d},classify:function(g){var e=g,i=[],d={},c=function(){var k=0,l=i.length,m;for(;k<l;k++){m=i[k];this[m]=new d[m]()}},h,j;for(h in g){if(g.hasOwnProperty(h)){j=g[h];if(j&&j.constructor===Object){i.push(h);d[h]=b.classify(j)}}}c.prototype=e;return c}};Ext.merge=Ext.Object.merge;Ext.mergeIf=Ext.Object.mergeIf;Ext.urlEncode=function(){var c=Ext.Array.from(arguments),d="";if((typeof c[1]==="string")){d=c[1]+"&";c[1]=false}return d+b.toQueryString.apply(b,c)};Ext.urlDecode=function(){return b.fromQueryString.apply(b,arguments)}}());(function(){function b(d){var c=Array.prototype.slice.call(arguments,1);return d.replace(/\{(\d+)\}/g,function(e,g){return c[g]})}Ext.Date={now:Date.now||function(){return +new Date()},toString:function(c){var d=Ext.String.leftPad;return c.getFullYear()+"-"+d(c.getMonth()+1,2,"0")+"-"+d(c.getDate(),2,"0")+"T"+d(c.getHours(),2,"0")+":"+d(c.getMinutes(),2,"0")+":"+d(c.getSeconds(),2,"0")},getElapsed:function(d,c){return Math.abs(d-(c||new Date()))},useStrict:false,formatCodeToRegex:function(d,c){var e=a.parseCodes[d];if(e){e=typeof e=="function"?e():e;a.parseCodes[d]=e}return e?Ext.applyIf({c:e.c?b(e.c,c||"{0}"):e.c},e):{g:0,c:null,s:Ext.String.escapeRegex(d)}},parseFunctions:{MS:function(d,c){var e=new RegExp("\\/Date\\(([-+])?(\\d+)(?:[+-]\\d{4})?\\)\\/"),g=(d||"").match(e);return g?new Date(((g[1]||"")+g[2])*1):null}},parseRegexes:[],formatFunctions:{MS:function(){return"\\/Date("+this.getTime()+")\\/"}},y2kYear:50,MILLI:"ms",SECOND:"s",MINUTE:"mi",HOUR:"h",DAY:"d",MONTH:"mo",YEAR:"y",defaults:{},dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNumbers:{January:0,Jan:0,February:1,Feb:1,March:2,Mar:2,April:3,Apr:3,May:4,June:5,Jun:5,July:6,Jul:6,August:7,Aug:7,September:8,Sep:8,October:9,Oct:9,November:10,Nov:10,December:11,Dec:11},defaultFormat:"m/d/Y",getShortMonthName:function(c){return Ext.Date.monthNames[c].substring(0,3)},getShortDayName:function(c){return Ext.Date.dayNames[c].substring(0,3)},getMonthNumber:function(c){return Ext.Date.monthNumbers[c.substring(0,1).toUpperCase()+c.substring(1,3).toLowerCase()]},formatContainsHourInfo:(function(){var d=/(\\.)/g,c=/([gGhHisucUOPZ]|MS)/;return function(e){return c.test(e.replace(d,""))}}()),formatContainsDateInfo:(function(){var d=/(\\.)/g,c=/([djzmnYycU]|MS)/;return function(e){return c.test(e.replace(d,""))}}()),unescapeFormat:(function(){var c=/\\/gi;return function(d){return d.replace(c,"")}}()),formatCodes:{d:"Ext.String.leftPad(this.getDate(), 2, '0')",D:"Ext.Date.getShortDayName(this.getDay())",j:"this.getDate()",l:"Ext.Date.dayNames[this.getDay()]",N:"(this.getDay() ? this.getDay() : 7)",S:"Ext.Date.getSuffix(this)",w:"this.getDay()",z:"Ext.Date.getDayOfYear(this)",W:"Ext.String.leftPad(Ext.Date.getWeekOfYear(this), 2, '0')",F:"Ext.Date.monthNames[this.getMonth()]",m:"Ext.String.leftPad(this.getMonth() + 1, 2, '0')",M:"Ext.Date.getShortMonthName(this.getMonth())",n:"(this.getMonth() + 1)",t:"Ext.Date.getDaysInMonth(this)",L:"(Ext.Date.isLeapYear(this) ? 1 : 0)",o:"(this.getFullYear() + (Ext.Date.getWeekOfYear(this) == 1 && this.getMonth() > 0 ? +1 : (Ext.Date.getWeekOfYear(this) >= 52 && this.getMonth() < 11 ? -1 : 0)))",Y:"Ext.String.leftPad(this.getFullYear(), 4, '0')",y:"('' + this.getFullYear()).substring(2, 4)",a:"(this.getHours() < 12 ? 'am' : 'pm')",A:"(this.getHours() < 12 ? 'AM' : 'PM')",g:"((this.getHours() % 12) ? this.getHours() % 12 : 12)",G:"this.getHours()",h:"Ext.String.leftPad((this.getHours() % 12) ? this.getHours() % 12 : 12, 2, '0')",H:"Ext.String.leftPad(this.getHours(), 2, '0')",i:"Ext.String.leftPad(this.getMinutes(), 2, '0')",s:"Ext.String.leftPad(this.getSeconds(), 2, '0')",u:"Ext.String.leftPad(this.getMilliseconds(), 3, '0')",O:"Ext.Date.getGMTOffset(this)",P:"Ext.Date.getGMTOffset(this, true)",T:"Ext.Date.getTimezone(this)",Z:"(this.getTimezoneOffset() * -60)",c:function(){var k,h,g,d,j;for(k="Y-m-dTH:i:sP",h=[],g=0,d=k.length;g<d;++g){j=k.charAt(g);h.push(j=="T"?"'T'":a.getFormatCode(j))}return h.join(" + ")},U:"Math.round(this.getTime() / 1000)"},isValid:function(o,c,n,k,g,j,e){k=k||0;g=g||0;j=j||0;e=e||0;var l=a.add(new Date(o<100?100:o,c-1,n,k,g,j,e),a.YEAR,o<100?o-100:0);return o==l.getFullYear()&&c==l.getMonth()+1&&n==l.getDate()&&k==l.getHours()&&g==l.getMinutes()&&j==l.getSeconds()&&e==l.getMilliseconds()},parse:function(d,g,c){var e=a.parseFunctions;if(e[g]==null){a.createParser(g)}return e[g](d,Ext.isDefined(c)?c:a.useStrict)},parseDate:function(d,e,c){return a.parse(d,e,c)},getFormatCode:function(d){var c=a.formatCodes[d];if(c){c=typeof c=="function"?c():c;a.formatCodes[d]=c}return c||("'"+Ext.String.escape(d)+"'")},createFormat:function(h){var g=[],c=false,e="",d;for(d=0;d<h.length;++d){e=h.charAt(d);if(!c&&e=="\\"){c=true}else{if(c){c=false;g.push("'"+Ext.String.escape(e)+"'")}else{g.push(a.getFormatCode(e))}}}a.formatFunctions[h]=Ext.functionFactory("return "+g.join("+"))},createParser:(function(){var c=["var dt, y, m, d, h, i, s, ms, o, z, zz, u, v,","def = Ext.Date.defaults,","results = String(input).match(Ext.Date.parseRegexes[{0}]);","if(results){","{1}","if(u != null){","v = new Date(u * 1000);","}else{","dt = Ext.Date.clearTime(new Date);","y = Ext.Number.from(y, Ext.Number.from(def.y, dt.getFullYear()));","m = Ext.Number.from(m, Ext.Number.from(def.m - 1, dt.getMonth()));","d = Ext.Number.from(d, Ext.Number.from(def.d, dt.getDate()));","h = Ext.Number.from(h, Ext.Number.from(def.h, dt.getHours()));","i = Ext.Number.from(i, Ext.Number.from(def.i, dt.getMinutes()));","s = Ext.Number.from(s, Ext.Number.from(def.s, dt.getSeconds()));","ms = Ext.Number.from(ms, Ext.Number.from(def.ms, dt.getMilliseconds()));","if(z >= 0 && y >= 0){","v = Ext.Date.add(new Date(y < 100 ? 100 : y, 0, 1, h, i, s, ms), Ext.Date.YEAR, y < 100 ? y - 100 : 0);","v = !strict? v : (strict === true && (z <= 364 || (Ext.Date.isLeapYear(v) && z <= 365))? Ext.Date.add(v, Ext.Date.DAY, z) : null);","}else if(strict === true && !Ext.Date.isValid(y, m + 1, d, h, i, s, ms)){","v = null;","}else{","v = Ext.Date.add(new Date(y < 100 ? 100 : y, m, d, h, i, s, ms), Ext.Date.YEAR, y < 100 ? y - 100 : 0);","}","}","}","if(v){","if(zz != null){","v = Ext.Date.add(v, Ext.Date.SECOND, -v.getTimezoneOffset() * 60 - zz);","}else if(o){","v = Ext.Date.add(v, Ext.Date.MINUTE, -v.getTimezoneOffset() + (sn == '+'? -1 : 1) * (hr * 60 + mn));","}","}","return v;"].join("\n");return function(o){var e=a.parseRegexes.length,p=1,g=[],n=[],l=false,d="",j=0,k=o.length,m=[],h;for(;j<k;++j){d=o.charAt(j);if(!l&&d=="\\"){l=true}else{if(l){l=false;n.push(Ext.String.escape(d))}else{h=a.formatCodeToRegex(d,p);p+=h.g;n.push(h.s);if(h.g&&h.c){if(h.calcAtEnd){m.push(h.c)}else{g.push(h.c)}}}}}g=g.concat(m);a.parseRegexes[e]=new RegExp("^"+n.join("")+"$","i");a.parseFunctions[o]=Ext.functionFactory("input","strict",b(c,e,g.join("")))}}()),parseCodes:{d:{g:1,c:"d = parseInt(results[{0}], 10);\n",s:"(3[0-1]|[1-2][0-9]|0[1-9])"},j:{g:1,c:"d = parseInt(results[{0}], 10);\n",s:"(3[0-1]|[1-2][0-9]|[1-9])"},D:function(){for(var c=[],d=0;d<7;c.push(a.getShortDayName(d)),++d){}return{g:0,c:null,s:"(?:"+c.join("|")+")"}},l:function(){return{g:0,c:null,s:"(?:"+a.dayNames.join("|")+")"}},N:{g:0,c:null,s:"[1-7]"},S:{g:0,c:null,s:"(?:st|nd|rd|th)"},w:{g:0,c:null,s:"[0-6]"},z:{g:1,c:"z = parseInt(results[{0}], 10);\n",s:"(\\d{1,3})"},W:{g:0,c:null,s:"(?:\\d{2})"},F:function(){return{g:1,c:"m = parseInt(Ext.Date.getMonthNumber(results[{0}]), 10);\n",s:"("+a.monthNames.join("|")+")"}},M:function(){for(var c=[],d=0;d<12;c.push(a.getShortMonthName(d)),++d){}return Ext.applyIf({s:"("+c.join("|")+")"},a.formatCodeToRegex("F"))},m:{g:1,c:"m = parseInt(results[{0}], 10) - 1;\n",s:"(1[0-2]|0[1-9])"},n:{g:1,c:"m = parseInt(results[{0}], 10) - 1;\n",s:"(1[0-2]|[1-9])"},t:{g:0,c:null,s:"(?:\\d{2})"},L:{g:0,c:null,s:"(?:1|0)"},o:function(){return a.formatCodeToRegex("Y")},Y:{g:1,c:"y = parseInt(results[{0}], 10);\n",s:"(\\d{4})"},y:{g:1,c:"var ty = parseInt(results[{0}], 10);\ny = ty > Ext.Date.y2kYear ? 1900 + ty : 2000 + ty;\n",s:"(\\d{1,2})"},a:{g:1,c:"if (/(am)/i.test(results[{0}])) {\nif (!h || h == 12) { h = 0; }\n} else { if (!h || h < 12) { h = (h || 0) + 12; }}",s:"(am|pm|AM|PM)",calcAtEnd:true},A:{g:1,c:"if (/(am)/i.test(results[{0}])) {\nif (!h || h == 12) { h = 0; }\n} else { if (!h || h < 12) { h = (h || 0) + 12; }}",s:"(AM|PM|am|pm)",calcAtEnd:true},g:{g:1,c:"h = parseInt(results[{0}], 10);\n",s:"(1[0-2]|[0-9])"},G:{g:1,c:"h = parseInt(results[{0}], 10);\n",s:"(2[0-3]|1[0-9]|[0-9])"},h:{g:1,c:"h = parseInt(results[{0}], 10);\n",s:"(1[0-2]|0[1-9])"},H:{g:1,c:"h = parseInt(results[{0}], 10);\n",s:"(2[0-3]|[0-1][0-9])"},i:{g:1,c:"i = parseInt(results[{0}], 10);\n",s:"([0-5][0-9])"},s:{g:1,c:"s = parseInt(results[{0}], 10);\n",s:"([0-5][0-9])"},u:{g:1,c:"ms = results[{0}]; ms = parseInt(ms, 10)/Math.pow(10, ms.length - 3);\n",s:"(\\d+)"},O:{g:1,c:["o = results[{0}];","var sn = o.substring(0,1),","hr = o.substring(1,3)*1 + Math.floor(o.substring(3,5) / 60),","mn = o.substring(3,5) % 60;","o = ((-12 <= (hr*60 + mn)/60) && ((hr*60 + mn)/60 <= 14))? (sn + Ext.String.leftPad(hr, 2, '0') + Ext.String.leftPad(mn, 2, '0')) : null;\n"].join("\n"),s:"([+-]\\d{4})"},P:{g:1,c:["o = results[{0}];","var sn = o.substring(0,1),","hr = o.substring(1,3)*1 + Math.floor(o.substring(4,6) / 60),","mn = o.substring(4,6) % 60;","o = ((-12 <= (hr*60 + mn)/60) && ((hr*60 + mn)/60 <= 14))? (sn + Ext.String.leftPad(hr, 2, '0') + Ext.String.leftPad(mn, 2, '0')) : null;\n"].join("\n"),s:"([+-]\\d{2}:\\d{2})"},T:{g:0,c:null,s:"[A-Z]{1,4}"},Z:{g:1,c:"zz = results[{0}] * 1;\nzz = (-43200 <= zz && zz <= 50400)? zz : null;\n",s:"([+-]?\\d{1,5})"},c:function(){var e=[],c=[a.formatCodeToRegex("Y",1),a.formatCodeToRegex("m",2),a.formatCodeToRegex("d",3),a.formatCodeToRegex("H",4),a.formatCodeToRegex("i",5),a.formatCodeToRegex("s",6),{c:"ms = results[7] || '0'; ms = parseInt(ms, 10)/Math.pow(10, ms.length - 3);\n"},{c:["if(results[8]) {","if(results[8] == 'Z'){","zz = 0;","}else if (results[8].indexOf(':') > -1){",a.formatCodeToRegex("P",8).c,"}else{",a.formatCodeToRegex("O",8).c,"}","}"].join("\n")}],g,d;for(g=0,d=c.length;g<d;++g){e.push(c[g].c)}return{g:1,c:e.join(""),s:[c[0].s,"(?:","-",c[1].s,"(?:","-",c[2].s,"(?:","(?:T| )?",c[3].s,":",c[4].s,"(?::",c[5].s,")?","(?:(?:\\.|,)(\\d+))?","(Z|(?:[-+]\\d{2}(?::)?\\d{2}))?",")?",")?",")?"].join("")}},U:{g:1,c:"u = parseInt(results[{0}], 10);\n",s:"(-?\\d+)"}},dateFormat:function(c,d){return a.format(c,d)},isEqual:function(d,c){if(d&&c){return(d.getTime()===c.getTime())}return !(d||c)},format:function(d,e){var c=a.formatFunctions;if(!Ext.isDate(d)){return""}if(c[e]==null){a.createFormat(e)}return c[e].call(d)+""},getTimezone:function(c){return c.toString().replace(/^.* (?:\((.*)\)|([A-Z]{1,4})(?:[\-+][0-9]{4})?(?: -?\d+)?)$/,"$1$2").replace(/[^A-Z]/g,"")},getGMTOffset:function(c,d){var e=c.getTimezoneOffset();return(e>0?"-":"+")+Ext.String.leftPad(Math.floor(Math.abs(e)/60),2,"0")+(d?":":"")+Ext.String.leftPad(Math.abs(e%60),2,"0")},getDayOfYear:function(g){var e=0,j=Ext.Date.clone(g),c=g.getMonth(),h;for(h=0,j.setDate(1),j.setMonth(0);h<c;j.setMonth(++h)){e+=a.getDaysInMonth(j)}return e+g.getDate()-1},getWeekOfYear:(function(){var c=86400000,d=7*c;return function(g){var h=Date.UTC(g.getFullYear(),g.getMonth(),g.getDate()+3)/c,e=Math.floor(h/7),i=new Date(e*d).getUTCFullYear();return e-Math.floor(Date.UTC(i,0,7)/d)+1}}()),isLeapYear:function(c){var d=c.getFullYear();return !!((d&3)==0&&(d%100||(d%400==0&&d)))},getFirstDayOfMonth:function(d){var c=(d.getDay()-(d.getDate()-1))%7;return(c<0)?(c+7):c},getLastDayOfMonth:function(c){return a.getLastDateOfMonth(c).getDay()},getFirstDateOfMonth:function(c){return new Date(c.getFullYear(),c.getMonth(),1)},getLastDateOfMonth:function(c){return new Date(c.getFullYear(),c.getMonth(),a.getDaysInMonth(c))},getDaysInMonth:(function(){var c=[31,28,31,30,31,30,31,31,30,31,30,31];return function(e){var d=e.getMonth();return d==1&&a.isLeapYear(e)?29:c[d]}}()),getSuffix:function(c){switch(c.getDate()){case 1:case 21:case 31:return"st";case 2:case 22:return"nd";case 3:case 23:return"rd";default:return"th"}},clone:function(c){return new Date(c.getTime())},isDST:function(c){return new Date(c.getFullYear(),0,1).getTimezoneOffset()!=c.getTimezoneOffset()},clearTime:function(e,j){if(j){return Ext.Date.clearTime(Ext.Date.clone(e))}var h=e.getDate(),g,i;e.setHours(0);e.setMinutes(0);e.setSeconds(0);e.setMilliseconds(0);if(e.getDate()!=h){for(g=1,i=a.add(e,Ext.Date.HOUR,g);i.getDate()!=h;g++,i=a.add(e,Ext.Date.HOUR,g)){}e.setDate(h);e.setHours(i.getHours())}return e},add:function(h,g,i){var j=Ext.Date.clone(h),c=Ext.Date,e;if(!g||i===0){return j}switch(g.toLowerCase()){case Ext.Date.MILLI:j.setMilliseconds(j.getMilliseconds()+i);break;case Ext.Date.SECOND:j.setSeconds(j.getSeconds()+i);break;case Ext.Date.MINUTE:j.setMinutes(j.getMinutes()+i);break;case Ext.Date.HOUR:j.setHours(j.getHours()+i);break;case Ext.Date.DAY:j.setDate(j.getDate()+i);break;case Ext.Date.MONTH:e=h.getDate();if(e>28){e=Math.min(e,Ext.Date.getLastDateOfMonth(Ext.Date.add(Ext.Date.getFirstDateOfMonth(h),Ext.Date.MONTH,i)).getDate())}j.setDate(e);j.setMonth(h.getMonth()+i);break;case Ext.Date.YEAR:e=h.getDate();if(e>28){e=Math.min(e,Ext.Date.getLastDateOfMonth(Ext.Date.add(Ext.Date.getFirstDateOfMonth(h),Ext.Date.YEAR,i)).getDate())}j.setDate(e);j.setFullYear(h.getFullYear()+i);break}return j},between:function(d,g,c){var e=d.getTime();return g.getTime()<=e&&e<=c.getTime()},compat:function(){var d=window.Date,c,l,j=["useStrict","formatCodeToRegex","parseFunctions","parseRegexes","formatFunctions","y2kYear","MILLI","SECOND","MINUTE","HOUR","DAY","MONTH","YEAR","defaults","dayNames","monthNames","monthNumbers","getShortMonthName","getShortDayName","getMonthNumber","formatCodes","isValid","parseDate","getFormatCode","createFormat","createParser","parseCodes"],h=["dateFormat","format","getTimezone","getGMTOffset","getDayOfYear","getWeekOfYear","isLeapYear","getFirstDayOfMonth","getLastDayOfMonth","getDaysInMonth","getSuffix","clone","isDST","clearTime","add","between"],i=j.length,e=h.length,g,k,m;for(m=0;m<i;m++){g=j[m];d[g]=a[g]}for(c=0;c<e;c++){k=h[c];d.prototype[k]=function(){var n=Array.prototype.slice.call(arguments);n.unshift(this);return a[k].apply(a,n)}}}};var a=Ext.Date}());(function(a){var c=[],b=function(){};Ext.apply(b,{$className:"Ext.Base",$isClass:true,create:function(){return Ext.create.apply(Ext,[this].concat(Array.prototype.slice.call(arguments,0)))},extend:function(j){var d=j.prototype,m,g,h,k,e,l;g=this.prototype=Ext.Object.chain(d);g.self=this;this.superclass=g.superclass=d;if(!j.$isClass){m=Ext.Base.prototype;for(h in m){if(h in g){g[h]=m[h]}}}l=d.$inheritableStatics;if(l){for(h=0,k=l.length;h<k;h++){e=l[h];if(!this.hasOwnProperty(e)){this[e]=j[e]}}}if(j.$onExtended){this.$onExtended=j.$onExtended.slice()}g.config=new g.configClass();g.initConfigList=g.initConfigList.slice();g.initConfigMap=Ext.clone(g.initConfigMap);g.configMap=Ext.Object.chain(g.configMap)},$onExtended:[],triggerExtended:function(){var g=this.$onExtended,e=g.length,d,h;if(e>0){for(d=0;d<e;d++){h=g[d];h.fn.apply(h.scope||this,arguments)}}},onExtended:function(e,d){this.$onExtended.push({fn:e,scope:d});return this},addConfig:function(h,l){var n=this.prototype,m=Ext.Class.configNameCache,i=n.configMap,j=n.initConfigList,g=n.initConfigMap,k=n.config,d,e,o;for(e in h){if(h.hasOwnProperty(e)){if(!i[e]){i[e]=true}o=h[e];d=m[e].initialized;if(!g[e]&&o!==null&&!n[d]){g[e]=true;j.push(e)}}}if(l){Ext.merge(k,h)}else{Ext.mergeIf(k,h)}n.configClass=Ext.Object.classify(k)},addStatics:function(d){var g,e;for(e in d){if(d.hasOwnProperty(e)){g=d[e];if(typeof g=="function"&&!g.$isClass&&g!==Ext.emptyFn&&g!==Ext.identityFn){g.$owner=this;g.$name=e}this[e]=g}}return this},addInheritableStatics:function(e){var i,d,h=this.prototype,g,j;i=h.$inheritableStatics;d=h.$hasInheritableStatics;if(!i){i=h.$inheritableStatics=[];d=h.$hasInheritableStatics={}}for(g in e){if(e.hasOwnProperty(g)){j=e[g];this[g]=j;if(!d[g]){d[g]=true;i.push(g)}}}return this},addMembers:function(e){var h=this.prototype,d=Ext.enumerables,l=[],j,k,g,m;for(g in e){l.push(g)}if(d){l.push.apply(l,d)}for(j=0,k=l.length;j<k;j++){g=l[j];if(e.hasOwnProperty(g)){m=e[g];if(typeof m=="function"&&!m.$isClass&&m!==Ext.emptyFn){m.$owner=this;m.$name=g}h[g]=m}}return this},addMember:function(d,e){if(typeof e=="function"&&!e.$isClass&&e!==Ext.emptyFn){e.$owner=this;e.$name=d}this.prototype[d]=e;return this},implement:function(){this.addMembers.apply(this,arguments)},borrow:function(j,g){var n=this.prototype,m=j.prototype,h,k,e,l,d;g=Ext.Array.from(g);for(h=0,k=g.length;h<k;h++){e=g[h];d=m[e];if(typeof d=="function"){l=Ext.Function.clone(d);l.$owner=this;l.$name=e;n[e]=l}else{n[e]=d}}return this},override:function(e){var m=this,o=Ext.enumerables,k=m.prototype,h=Ext.Function.clone,d,j,g,n,l,i;if(arguments.length===2){d=e;e={};e[d]=arguments[1];o=null}do{l=[];n=null;for(d in e){if(d=="statics"){n=e[d]}else{if(d=="config"){m.addConfig(e[d],true)}else{l.push(d)}}}if(o){l.push.apply(l,o)}for(j=l.length;j--;){d=l[j];if(e.hasOwnProperty(d)){g=e[d];if(typeof g=="function"&&!g.$className&&g!==Ext.emptyFn){if(typeof g.$owner!="undefined"){g=h(g)}g.$owner=m;g.$name=d;i=k[d];if(i){g.$previous=i}}k[d]=g}}k=m;e=n}while(e);return this},callParent:function(d){var e;return(e=this.callParent.caller)&&(e.$previous||((e=e.$owner?e:e.caller)&&e.$owner.superclass.self[e.$name])).apply(this,d||c)},callSuper:function(d){var e;return(e=this.callSuper.caller)&&((e=e.$owner?e:e.caller)&&e.$owner.superclass.self[e.$name]).apply(this,d||c)},mixin:function(g,i){var d=i.prototype,e=this.prototype,h;if(typeof d.onClassMixedIn!="undefined"){d.onClassMixedIn.call(i,this)}if(!e.hasOwnProperty("mixins")){if("mixins" in e){e.mixins=Ext.Object.chain(e.mixins)}else{e.mixins={}}}for(h in d){if(h==="mixins"){Ext.merge(e.mixins,d[h])}else{if(typeof e[h]=="undefined"&&h!="mixinId"&&h!="config"){e[h]=d[h]}}}if("config" in d){this.addConfig(d.config,false)}e.mixins[g]=d},getName:function(){return Ext.getClassName(this)},createAlias:a(function(e,d){this.override(e,function(){return this[d].apply(this,arguments)})}),addXtype:function(i){var e=this.prototype,h=e.xtypesMap,g=e.xtypes,d=e.xtypesChain;if(!e.hasOwnProperty("xtypesMap")){h=e.xtypesMap=Ext.merge({},e.xtypesMap||{});g=e.xtypes=e.xtypes?[].concat(e.xtypes):[];d=e.xtypesChain=e.xtypesChain?[].concat(e.xtypesChain):[];e.xtype=i}if(!h[i]){h[i]=true;g.push(i);d.push(i);Ext.ClassManager.setAlias(this,"widget."+i)}return this}});b.implement({isInstance:true,$className:"Ext.Base",configClass:Ext.emptyFn,initConfigList:[],configMap:{},initConfigMap:{},statics:function(){var e=this.statics.caller,d=this.self;if(!e){return d}return e.$owner},callParent:function(e){var g,d=(g=this.callParent.caller)&&(g.$previous||((g=g.$owner?g:g.caller)&&g.$owner.superclass[g.$name]));return d.apply(this,e||c)},callSuper:function(e){var g,d=(g=this.callSuper.caller)&&((g=g.$owner?g:g.caller)&&g.$owner.superclass[g.$name]);return d.apply(this,e||c)},self:b,constructor:function(){return this},initConfig:function(g){var m=g,l=Ext.Class.configNameCache,j=new this.configClass(),p=this.initConfigList,h=this.configMap,o,k,n,e,d;this.initConfig=Ext.emptyFn;this.initialConfig=m||{};this.config=g=(m)?Ext.merge(j,g):j;if(m){p=p.slice();for(e in m){if(h[e]){if(m[e]!==null){p.push(e);this[l[e].initialized]=false}}}}for(k=0,n=p.length;k<n;k++){e=p[k];o=l[e];d=o.initialized;if(!this[d]){this[d]=true;this[o.set].call(this,g[e])}}return this},hasConfig:function(d){return Boolean(this.configMap[d])},setConfig:function(h,l){if(!h){return this}var g=Ext.Class.configNameCache,d=this.config,k=this.configMap,j=this.initialConfig,e,i;l=Boolean(l);for(e in h){if(l&&j.hasOwnProperty(e)){continue}i=h[e];d[e]=i;if(k[e]){this[g[e].set](i)}}return this},getConfig:function(e){var d=Ext.Class.configNameCache;return this[d[e].get]()},getInitialConfig:function(e){var d=this.config;if(!e){return d}else{return d[e]}},onConfigUpdate:function(k,m,n){var o=this.self,g,j,d,h,l,e;k=Ext.Array.from(k);n=n||this;for(g=0,j=k.length;g<j;g++){d=k[g];h="update"+Ext.String.capitalize(d);l=this[h]||Ext.emptyFn;e=function(){l.apply(this,arguments);n[m].apply(n,arguments)};e.$name=h;e.$owner=o;this[h]=e}},destroy:function(){this.destroy=Ext.emptyFn}});b.prototype.callOverridden=b.prototype.callParent;Ext.Base=b}(Ext.Function.flexSetter));(function(){var c,b=Ext.Base,g=[],e,d;for(e in b){if(b.hasOwnProperty(e)){g.push(e)}}d=g.length;function a(i){function h(){return this.constructor.apply(this,arguments)||null}return h}Ext.Class=c=function(i,j,h){if(typeof i!="function"){h=j;j=i;i=null}if(!j){j={}}i=c.create(i,j);c.process(i,j,h);return i};Ext.apply(c,{onBeforeCreated:function(i,j,h){i.addMembers(j);h.onCreated.call(i,i)},create:function(h,l){var j,k;if(!h){h=a()}for(k=0;k<d;k++){j=g[k];h[j]=b[j]}return h},process:function(h,q,m){var l=q.preprocessors||c.defaultPreprocessors,t=this.preprocessors,w={onBeforeCreated:this.onBeforeCreated},v=[],x,p,o,u,n,s,r,k;delete q.preprocessors;for(o=0,u=l.length;o<u;o++){x=l[o];if(typeof x=="string"){x=t[x];p=x.properties;if(p===true){v.push(x.fn)}else{if(p){for(n=0,s=p.length;n<s;n++){r=p[n];if(q.hasOwnProperty(r)){v.push(x.fn);break}}}}}else{v.push(x)}}w.onCreated=m?m:Ext.emptyFn;w.preprocessors=v;this.doProcess(h,q,w)},doProcess:function(i,l,h){var k=this,j=h.preprocessors.shift();if(!j){h.onBeforeCreated.apply(k,arguments);return}if(j.call(k,i,l,h,k.doProcess)!==false){k.doProcess(i,l,h)}},preprocessors:{},registerPreprocessor:function(i,l,j,h,k){if(!h){h="last"}if(!j){j=[i]}this.preprocessors[i]={name:i,properties:j||false,fn:l};this.setDefaultPreprocessorPosition(i,h,k);return this},getPreprocessor:function(h){return this.preprocessors[h]},getPreprocessors:function(){return this.preprocessors},defaultPreprocessors:[],getDefaultPreprocessors:function(){return this.defaultPreprocessors},setDefaultPreprocessors:function(h){this.defaultPreprocessors=Ext.Array.from(h);return this},setDefaultPreprocessorPosition:function(j,l,k){var h=this.defaultPreprocessors,i;if(typeof l=="string"){if(l==="first"){h.unshift(j);return this}else{if(l==="last"){h.push(j);return this}}l=(l==="after")?1:-1}i=Ext.Array.indexOf(h,k);if(i!==-1){Ext.Array.splice(h,Math.max(0,i+l),0,j)}return this},configNameCache:{},getConfigNameMap:function(j){var i=this.configNameCache,k=i[j],h;if(!k){h=j.charAt(0).toUpperCase()+j.substr(1);k=i[j]={internal:j,initialized:"_is"+h+"Initialized",apply:"apply"+h,update:"update"+h,set:"set"+h,get:"get"+h,doSet:"doSet"+h,changeEvent:j.toLowerCase()+"change"}}return k}});c.registerPreprocessor("extend",function(j,n){var m=Ext.Base,o=m.prototype,p=n.extend,l,h,k;delete n.extend;if(p&&p!==Object){l=p}else{l=m}h=l.prototype;if(!l.$isClass){for(k in o){if(!h[k]){h[k]=o[k]}}}j.extend(l);j.triggerExtended.apply(j,arguments);if(n.onClassExtended){j.onExtended(n.onClassExtended,j);delete n.onClassExtended}},true);c.registerPreprocessor("statics",function(h,i){h.addStatics(i.statics);delete i.statics});c.registerPreprocessor("inheritableStatics",function(h,i){h.addInheritableStatics(i.inheritableStatics);delete i.inheritableStatics});c.registerPreprocessor("config",function(h,k){var j=k.config,i=h.prototype;delete k.config;Ext.Object.each(j,function(n,w){var u=c.getConfigNameMap(n),q=u.internal,l=u.initialized,v=u.apply,o=u.update,t=u.set,m=u.get,y=(t in i)||k.hasOwnProperty(t),p=(v in i)||k.hasOwnProperty(v),r=(o in i)||k.hasOwnProperty(o),x,s;if(w===null||(!y&&!p&&!r)){i[q]=w;i[l]=true}else{i[l]=false}if(!y){k[t]=function(B){var A=this[q],z=this[v],C=this[o];if(!this[l]){this[l]=true}if(z){B=z.call(this,B,A)}if(typeof B!="undefined"){this[q]=B;if(C&&B!==A){C.call(this,B,A)}}return this}}if(!(m in i)||k.hasOwnProperty(m)){s=k[m]||false;if(s){x=function(){return s.apply(this,arguments)}}else{x=function(){return this[q]}}k[m]=function(){var z;if(!this[l]){this[l]=true;this[t](this.config[n])}z=this[m];if("$previous" in z){z.$previous=x}else{this[m]=x}return x.apply(this,arguments)}}});h.addConfig(j,true)});c.registerPreprocessor("mixins",function(l,p,h){var j=p.mixins,m,k,n,o;delete p.mixins;Ext.Function.interceptBefore(h,"onCreated",function(){if(j instanceof Array){for(n=0,o=j.length;n<o;n++){k=j[n];m=k.prototype.mixinId||k.$className;l.mixin(m,k)}}else{for(var i in j){if(j.hasOwnProperty(i)){l.mixin(i,j[i])}}}})});Ext.extend=function(j,k,i){if(arguments.length===2&&Ext.isObject(k)){i=k;k=j;j=null}var h;if(!k){throw new Error("[Ext.extend] Attempting to extend from a class which has not been loaded on the page.")}i.extend=k;i.preprocessors=["extend","statics","inheritableStatics","mixins","config"];if(j){h=new c(j,i);h.prototype.constructor=j}else{h=new c(i)}h.prototype.override=function(n){for(var l in n){if(n.hasOwnProperty(l)){this[l]=n[l]}}};return h}}());(function(c,e,h,d,g){function a(){function i(){return this.constructor.apply(this,arguments)||null}return i}var b=Ext.ClassManager={classes:{},existCache:{},namespaceRewrites:[{from:"Ext.",to:Ext}],maps:{alternateToName:{},aliasToName:{},nameToAliases:{},nameToAlternates:{}},enableNamespaceParseCache:true,namespaceParseCache:{},instantiators:[],isCreated:function(n){var m=this.existCache,l,o,k,j,p;if(this.classes[n]||m[n]){return true}j=g;p=this.parseNamespace(n);for(l=0,o=p.length;l<o;l++){k=p[l];if(typeof k!="string"){j=k}else{if(!j||!j[k]){return false}j=j[k]}}m[n]=true;this.triggerCreated(n);return true},createdListeners:[],nameCreatedListeners:{},triggerCreated:function(s){var u=this.createdListeners,m=this.nameCreatedListeners,n=this.maps.nameToAlternates[s],t=[s],p,r,o,q,l,k;for(p=0,r=u.length;p<r;p++){l=u[p];l.fn.call(l.scope,s)}if(n){t.push.apply(t,n)}for(p=0,r=t.length;p<r;p++){k=t[p];u=m[k];if(u){for(o=0,q=u.length;o<q;o++){l=u[o];l.fn.call(l.scope,k)}delete m[k]}}},onCreated:function(m,l,k){var j=this.createdListeners,i=this.nameCreatedListeners,n={fn:m,scope:l};if(k){if(this.isCreated(k)){m.call(l,k);return}if(!i[k]){i[k]=[]}i[k].push(n)}else{j.push(n)}},parseNamespace:function(l){var j=this.namespaceParseCache,m,o,q,k,t,s,r,n,p;if(this.enableNamespaceParseCache){if(j.hasOwnProperty(l)){return j[l]}}m=[];o=this.namespaceRewrites;q=g;k=l;for(n=0,p=o.length;n<p;n++){t=o[n];s=t.from;r=t.to;if(k===s||k.substring(0,s.length)===s){k=k.substring(s.length);if(typeof r!="string"){q=r}else{m=m.concat(r.split("."))}break}}m.push(q);m=m.concat(k.split("."));if(this.enableNamespaceParseCache){j[l]=m}return m},setNamespace:function(m,p){var k=g,q=this.parseNamespace(m),o=q.length-1,j=q[o],n,l;for(n=0;n<o;n++){l=q[n];if(typeof l!="string"){k=l}else{if(!k[l]){k[l]={}}k=k[l]}}k[j]=p;return k[j]},createNamespaces:function(){var k=g,p,m,n,l,o,q;for(n=0,o=arguments.length;n<o;n++){p=this.parseNamespace(arguments[n]);for(l=0,q=p.length;l<q;l++){m=p[l];if(typeof m!="string"){k=m}else{if(!k[m]){k[m]={}}k=k[m]}}}return k},set:function(i,m){var l=this,o=l.maps,n=o.nameToAlternates,k=l.getName(m),j;l.classes[i]=l.setNamespace(i,m);if(k&&k!==i){o.alternateToName[i]=k;j=n[k]||(n[k]=[]);j.push(i)}return this},get:function(l){var n=this.classes,j,p,k,m,o;if(n[l]){return n[l]}j=g;p=this.parseNamespace(l);for(m=0,o=p.length;m<o;m++){k=p[m];if(typeof k!="string"){j=k}else{if(!j||!j[k]){return null}j=j[k]}}return j},setAlias:function(i,j){var l=this.maps.aliasToName,m=this.maps.nameToAliases,k;if(typeof i=="string"){k=i}else{k=this.getName(i)}if(j&&l[j]!==k){l[j]=k}if(!m[k]){m[k]=[]}if(j){Ext.Array.include(m[k],j)}return this},addNameAliasMappings:function(j){var o=this.maps.aliasToName,p=this.maps.nameToAliases,m,n,l,k;for(m in j){n=p[m]||(p[m]=[]);for(k=0;k<j[m].length;k++){l=j[m][k];if(!o[l]){o[l]=m;n.push(l)}}}return this},addNameAlternateMappings:function(m){var j=this.maps.alternateToName,p=this.maps.nameToAlternates,l,n,o,k;for(l in m){n=p[l]||(p[l]=[]);for(k=0;k<m[l].length;k++){o=m[l];if(!j[o]){j[o]=l;n.push(o)}}}return this},getByAlias:function(i){return this.get(this.getNameByAlias(i))},getNameByAlias:function(i){return this.maps.aliasToName[i]||""},getNameByAlternate:function(i){return this.maps.alternateToName[i]||""},getAliasesByName:function(i){return this.maps.nameToAliases[i]||[]},getName:function(i){return i&&i.$className||""},getClass:function(i){return i&&i.self||null},create:function(j,l,i){var k=a();if(typeof l=="function"){l=l(k)}l.$className=j;return new c(k,l,function(){var m=l.postprocessors||b.defaultPostprocessors,t=b.postprocessors,u=[],s,o,r,n,q,p,v;delete l.postprocessors;for(o=0,r=m.length;o<r;o++){s=m[o];if(typeof s=="string"){s=t[s];p=s.properties;if(p===true){u.push(s.fn)}else{if(p){for(n=0,q=p.length;n<q;n++){v=p[n];if(l.hasOwnProperty(v)){u.push(s.fn);break}}}}}else{u.push(s)}}l.postprocessors=u;l.createdFn=i;b.processCreate(j,this,l)})},processCreate:function(l,j,n){var m=this,i=n.postprocessors.shift(),k=n.createdFn;if(!i){if(l){m.set(l,j)}if(k){k.call(j,j)}if(l){m.triggerCreated(l)}return}if(i.call(m,l,j,n,m.processCreate)!==false){m.processCreate(l,j,n)}},createOverride:function(l,p,j){var o=this,n=p.override,k=p.requires,i=p.uses,m=function(){var q,r;if(k){r=k;k=null;Ext.Loader.require(r,m)}else{q=o.get(n);delete p.override;delete p.requires;delete p.uses;Ext.override(q,p);o.triggerCreated(l);if(i){Ext.Loader.addUsedClasses(i)}if(j){j.call(q)}}};o.existCache[l]=true;o.onCreated(m,o,n);return o},instantiateByAlias:function(){var j=arguments[0],i=h.call(arguments),k=this.getNameByAlias(j);if(!k){k=this.maps.aliasToName[j];Ext.syncRequire(k)}i[0]=k;return this.instantiate.apply(this,i)},instantiate:function(){var k=arguments[0],m=typeof k,j=h.call(arguments,1),l=k,n,i;if(m!="function"){if(m!="string"&&j.length===0){j=[k];k=k.xclass}i=this.get(k)}else{i=k}if(!i){n=this.getNameByAlias(k);if(n){k=n;i=this.get(k)}}if(!i){n=this.getNameByAlternate(k);if(n){k=n;i=this.get(k)}}if(!i){Ext.syncRequire(k);i=this.get(k)}return this.getInstantiator(j.length)(i,j)},dynInstantiate:function(j,i){i=d(i,true);i.unshift(j);return this.instantiate.apply(this,i)},getInstantiator:function(m){var l=this.instantiators,n,k,j;n=l[m];if(!n){k=m;j=[];for(k=0;k<m;k++){j.push("a["+k+"]")}n=l[m]=new Function("c","a","return new c("+j.join(",")+")")}return n},postprocessors:{},defaultPostprocessors:[],registerPostprocessor:function(j,m,k,i,l){if(!i){i="last"}if(!k){k=[j]}this.postprocessors[j]={name:j,properties:k||false,fn:m};this.setDefaultPostprocessorPosition(j,i,l);return this},setDefaultPostprocessors:function(i){this.defaultPostprocessors=d(i);return this},setDefaultPostprocessorPosition:function(j,m,l){var k=this.defaultPostprocessors,i;if(typeof m=="string"){if(m==="first"){k.unshift(j);return this}else{if(m==="last"){k.push(j);return this}}m=(m==="after")?1:-1}i=Ext.Array.indexOf(k,l);if(i!==-1){Ext.Array.splice(k,Math.max(0,i+m),0,j)}return this},getNamesByExpression:function(q){var o=this.maps.nameToAliases,r=[],j,n,l,k,s,m,p;if(q.indexOf("*")!==-1){q=q.replace(/\*/g,"(.*?)");s=new RegExp("^"+q+"$");for(j in o){if(o.hasOwnProperty(j)){l=o[j];if(j.search(s)!==-1){r.push(j)}else{for(m=0,p=l.length;m<p;m++){n=l[m];if(n.search(s)!==-1){r.push(j);break}}}}}}else{k=this.getNameByAlias(q);if(k){r.push(k)}else{k=this.getNameByAlternate(q);if(k){r.push(k)}else{r.push(q)}}}return r}};b.registerPostprocessor("alias",function(l,k,o){var j=o.alias,m,n;for(m=0,n=j.length;m<n;m++){e=j[m];this.setAlias(k,e)}},["xtype","alias"]);b.registerPostprocessor("singleton",function(j,i,l,k){k.call(this,j,new i(),l);return false});b.registerPostprocessor("alternateClassName",function(k,j,o){var m=o.alternateClassName,l,n,p;if(!(m instanceof Array)){m=[m]}for(l=0,n=m.length;l<n;l++){p=m[l];this.set(p,j)}});Ext.apply(Ext,{create:e(b,"instantiate"),widget:function(k,j){var o=k,l,m,i,n;if(typeof o!="string"){j=k;o=j.xtype}else{j=j||{}}if(j.isComponent){return j}l="widget."+o;m=b.getNameByAlias(l);if(!m){n=true}i=b.get(m);if(n||!i){return b.instantiateByAlias(l,j)}return new i(j)},createByAlias:e(b,"instantiateByAlias"),define:function(j,k,i){if(k.override){return b.createOverride.apply(b,arguments)}return b.create.apply(b,arguments)},getClassName:e(b,"getName"),getDisplayName:function(i){if(i){if(i.displayName){return i.displayName}if(i.$name&&i.$class){return Ext.getClassName(i.$class)+"#"+i.$name}if(i.$className){return i.$className}}return"Anonymous"},getClass:e(b,"getClass"),namespace:e(b,"createNamespaces")});Ext.createWidget=Ext.widget;Ext.ns=Ext.namespace;c.registerPreprocessor("className",function(i,j){if(j.$className){i.$className=j.$className}},true,"first");c.registerPreprocessor("alias",function(u,o){var s=u.prototype,l=d(o.xtype),j=d(o.alias),v="widget.",t=v.length,p=Array.prototype.slice.call(s.xtypesChain||[]),m=Ext.merge({},s.xtypesMap||{}),n,r,q,k;for(n=0,r=j.length;n<r;n++){q=j[n];if(q.substring(0,t)===v){k=q.substring(t);Ext.Array.include(l,k)}}u.xtype=o.xtype=l[0];o.xtypes=l;for(n=0,r=l.length;n<r;n++){k=l[n];if(!m[k]){m[k]=true;p.push(k)}}o.xtypesChain=p;o.xtypesMap=m;Ext.Function.interceptAfter(o,"onClassCreated",function(){var i=s.mixins,x,w;for(x in i){if(i.hasOwnProperty(x)){w=i[x];l=w.xtypes;if(l){for(n=0,r=l.length;n<r;n++){k=l[n];if(!m[k]){m[k]=true;p.push(k)}}}}}});for(n=0,r=l.length;n<r;n++){k=l[n];Ext.Array.include(j,v+k)}o.alias=j},["xtype","alias"])}(Ext.Class,Ext.Function.alias,Array.prototype.slice,Ext.Array.from,Ext.global));Ext.Loader=new function(){var j=this,b=Ext.ClassManager,r=Ext.Class,e=Ext.Function.flexSetter,m=Ext.Function.alias,a=Ext.Function.pass,d=Ext.Function.defer,h=Ext.Array.erase,l=["extend","mixins","requires"],t={},k=[],c=/\/\.\//g,g=/\./g;Ext.apply(j,{isInHistory:t,history:k,config:{enabled:false,scriptChainDelay:false,disableCaching:true,disableCachingParam:"_dc",garbageCollect:false,paths:{Ext:"."},preserveScripts:true,scriptCharset:undefined},setConfig:function(w,x){if(Ext.isObject(w)&&arguments.length===1){Ext.merge(j.config,w)}else{j.config[w]=(Ext.isObject(x))?Ext.merge(j.config[w],x):x}return j},getConfig:function(w){if(w){return j.config[w]}return j.config},setPath:e(function(w,x){j.config.paths[w]=x;return j}),addClassPathMappings:function(x){var w;for(w in x){j.config.paths[w]=x[w]}return j},getPath:function(w){var y="",z=j.config.paths,x=j.getPrefix(w);if(x.length>0){if(x===w){return z[x]}y=z[x];w=w.substring(x.length+1)}if(y.length>0){y+="/"}return y.replace(c,"/")+w.replace(g,"/")+".js"},getPrefix:function(x){var z=j.config.paths,y,w="";if(z.hasOwnProperty(x)){return x}for(y in z){if(z.hasOwnProperty(y)&&y+"."===x.substring(0,y.length+1)){if(y.length>w.length){w=y}}}return w},isAClassNameWithAKnownPrefix:function(w){var x=j.getPrefix(w);return x!==""&&x!==w},require:function(y,x,w,z){if(x){x.call(w)}},syncRequire:function(){},exclude:function(w){return{require:function(z,y,x){return j.require(z,y,x,w)},syncRequire:function(z,y,x){return j.syncRequire(z,y,x,w)}}},onReady:function(z,y,A,w){var x;if(A!==false&&Ext.onDocumentReady){x=z;z=function(){Ext.onDocumentReady(x,y,w)}}z.call(y)}});var o=[],p={},s={},q={},n={},u=[],v=[],i={};Ext.apply(j,{documentHead:typeof document!="undefined"&&(document.head||document.getElementsByTagName("head")[0]),isLoading:false,queue:o,isClassFileLoaded:p,isFileLoaded:s,readyListeners:u,optionalRequires:v,requiresMap:i,numPendingFiles:0,numLoadedFiles:0,hasFileLoadError:false,classNameToFilePathMap:q,scriptsLoading:0,syncModeEnabled:false,scriptElements:n,refreshQueue:function(){var A=o.length,x,z,w,y;if(!A&&!j.scriptsLoading){return j.triggerReady()}for(x=0;x<A;x++){z=o[x];if(z){y=z.requires;if(y.length>j.numLoadedFiles){continue}for(w=0;w<y.length;){if(b.isCreated(y[w])){h(y,w,1)}else{w++}}if(z.requires.length===0){h(o,x,1);z.callback.call(z.scope);j.refreshQueue();break}}}return j},injectScriptElement:function(w,D,A,F,y){var E=document.createElement("script"),B=false,x=j.config,C=function(){if(!B){B=true;E.onload=E.onreadystatechange=E.onerror=null;if(typeof x.scriptChainDelay=="number"){d(D,x.scriptChainDelay,F)}else{D.call(F)}j.cleanupScriptElement(E,x.preserveScripts===false,x.garbageCollect)}},z=function(G){d(A,1,F);j.cleanupScriptElement(E,x.preserveScripts===false,x.garbageCollect)};E.type="text/javascript";E.onerror=z;y=y||x.scriptCharset;if(y){E.charset=y}if("addEventListener" in E){E.onload=C}else{if("readyState" in E){E.onreadystatechange=function(){if(this.readyState=="loaded"||this.readyState=="complete"){C()}}}else{E.onload=C}}E.src=w;(j.documentHead||document.getElementsByTagName("head")[0]).appendChild(E);return E},removeScriptElement:function(w){if(n[w]){j.cleanupScriptElement(n[w],true,!!j.getConfig("garbageCollect"));delete n[w]}return j},cleanupScriptElement:function(y,x,z){var A;y.onload=y.onreadystatechange=y.onerror=null;if(x){Ext.removeNode(y);if(z){for(A in y){try{y[A]=null;delete y[A]}catch(w){}}}}return j},loadScript:function(F){var z=j.getConfig(),y=typeof F=="string",x=y?F:F.url,B=!y&&F.onError,C=!y&&F.onLoad,E=!y&&F.scope,D=function(){j.numPendingFiles--;j.scriptsLoading--;if(B){B.call(E,"Failed loading '"+x+"', please verify that the file exists")}if(j.numPendingFiles+j.scriptsLoading===0){j.refreshQueue()}},A=function(){j.numPendingFiles--;j.scriptsLoading--;if(C){C.call(E)}if(j.numPendingFiles+j.scriptsLoading===0){j.refreshQueue()}},w;j.isLoading=true;j.numPendingFiles++;j.scriptsLoading++;w=z.disableCaching?(x+"?"+z.disableCachingParam+"="+Ext.Date.now()):x;n[x]=j.injectScriptElement(w,A,D)},loadScriptFile:function(x,E,C,H,w){if(s[x]){return j}var z=j.getConfig(),I=x+(z.disableCaching?("?"+z.disableCachingParam+"="+Ext.Date.now()):""),y=false,G,A,F,B="";H=H||j;j.isLoading=true;if(!w){F=function(){};n[x]=j.injectScriptElement(I,E,F,H)}else{if(typeof XMLHttpRequest!="undefined"){G=new XMLHttpRequest()}else{G=new ActiveXObject("Microsoft.XMLHTTP")}try{G.open("GET",I,false);G.send(null)}catch(D){y=true}A=(G.status===1223)?204:(G.status===0&&(self.location||{}).protocol=="file:")?200:G.status;y=y||(A===0);if(y){}else{if((A>=200&&A<300)||(A===304)){if(!Ext.isIE){B="\n//@ sourceURL="+x}Ext.globalEval(G.responseText+B);E.call(H)}else{}}G=null}},syncRequire:function(){var w=j.syncModeEnabled;if(!w){j.syncModeEnabled=true}j.require.apply(j,arguments);if(!w){j.syncModeEnabled=false}j.refreshQueue()},require:function(O,F,z,B){var H={},y={},E=[],Q=[],N=[],x=[],D,P,J,I,w,C,M,L,K,G,A;if(B){B=(typeof B==="string")?[B]:B;for(L=0,G=B.length;L<G;L++){w=B[L];if(typeof w=="string"&&w.length>0){E=b.getNamesByExpression(w);for(K=0,A=E.length;K<A;K++){H[E[K]]=true}}}}O=(typeof O==="string")?[O]:(O?O:[]);if(F){if(F.length>0){D=function(){var S=[],R,T;for(R=0,T=x.length;R<T;R++){S.push(b.get(x[R]))}return F.apply(this,S)}}else{D=F}}else{D=Ext.emptyFn}z=z||Ext.global;for(L=0,G=O.length;L<G;L++){I=O[L];if(typeof I=="string"&&I.length>0){Q=b.getNamesByExpression(I);A=Q.length;for(K=0;K<A;K++){M=Q[K];if(H[M]!==true){x.push(M);if(!b.isCreated(M)&&!y[M]){y[M]=true;N.push(M)}}}}}if(N.length>0){if(!j.config.enabled){throw new Error("Ext.Loader is not enabled, so dependencies cannot be resolved dynamically. Missing required class"+((N.length>1)?"es":"")+": "+N.join(", "))}}else{D.call(z);return j}P=j.syncModeEnabled;if(!P){o.push({requires:N.slice(),callback:D,scope:z})}G=N.length;for(L=0;L<G;L++){C=N[L];J=j.getPath(C);if(P&&p.hasOwnProperty(C)){j.numPendingFiles--;j.removeScriptElement(J);delete p[C]}if(!p.hasOwnProperty(C)){p[C]=false;q[C]=J;j.numPendingFiles++;j.loadScriptFile(J,a(j.onFileLoaded,[C,J],j),a(j.onFileLoadError,[C,J],j),j,P)}}if(P){D.call(z);if(G===1){return b.get(C)}}return j},onFileLoaded:function(x,w){j.numLoadedFiles++;p[x]=true;s[w]=true;j.numPendingFiles--;if(j.numPendingFiles===0){j.refreshQueue()}},onFileLoadError:function(y,x,w,z){j.numPendingFiles--;j.hasFileLoadError=true},addUsedClasses:function(y){var w,x,z;if(y){y=(typeof y=="string")?[y]:y;for(x=0,z=y.length;x<z;x++){w=y[x];if(typeof w=="string"&&!Ext.Array.contains(v,w)){v.push(w)}}}return j},triggerReady:function(){var x,w,y=v;if(j.isLoading){j.isLoading=false;if(y.length!==0){y=y.slice();v.length=0;j.require(y,j.triggerReady,j);return j}}while(u.length&&!j.isLoading){x=u.shift();x.fn.call(x.scope)}return j},onReady:function(z,y,A,w){var x;if(A!==false&&Ext.onDocumentReady){x=z;z=function(){Ext.onDocumentReady(x,y,w)}}if(!j.isLoading){z.call(y)}else{u.push({fn:z,scope:y})}},historyPush:function(w){if(w&&p.hasOwnProperty(w)&&!t[w]){t[w]=true;k.push(w)}return j}});Ext.disableCacheBuster=function(x,y){var w=new Date();w.setTime(w.getTime()+(x?10*365:-1)*24*60*60*1000);w=w.toGMTString();document.cookie="ext-cache=1; expires="+w+"; path="+(y||"/")};Ext.require=m(j,"require");Ext.syncRequire=m(j,"syncRequire");Ext.exclude=m(j,"exclude");Ext.onReady=function(y,x,w){j.onReady(y,x,true,w)};r.registerPreprocessor("loader",function(M,A,L,K){var H=this,F=[],w,G=b.getName(M),z,y,E,D,J,C,x,I,B;for(z=0,E=l.length;z<E;z++){C=l[z];if(A.hasOwnProperty(C)){x=A[C];if(typeof x=="string"){F.push(x)}else{if(x instanceof Array){for(y=0,D=x.length;y<D;y++){J=x[y];if(typeof J=="string"){F.push(J)}}}else{if(typeof x!="function"){for(y in x){if(x.hasOwnProperty(y)){J=x[y];if(typeof J=="string"){F.push(J)}}}}}}}}if(F.length===0){return}j.require(F,function(){for(z=0,E=l.length;z<E;z++){C=l[z];if(A.hasOwnProperty(C)){x=A[C];if(typeof x=="string"){A[C]=b.get(x)}else{if(x instanceof Array){for(y=0,D=x.length;y<D;y++){J=x[y];if(typeof J=="string"){A[C][y]=b.get(J)}}}else{if(typeof x!="function"){for(var N in x){if(x.hasOwnProperty(N)){J=x[N];if(typeof J=="string"){A[C][N]=b.get(J)}}}}}}}}K.call(H,M,A,L)});return false},true,"after","className");b.registerPostprocessor("uses",function(y,x,z){var w=z.uses;if(w){j.addUsedClasses(w)}});b.onCreated(j.historyPush)};if(Ext._classPathMetadata){Ext.Loader.addClassPathMappings(Ext._classPathMetadata);Ext._classPathMetadata=null}(function(){var a=document.getElementsByTagName("script"),b=a[a.length-1],d=b.src,c=d.substring(0,d.lastIndexOf("/")+1),e=Ext.Loader;e.setConfig({enabled:true,disableCaching:true,paths:{Ext:c+"src"}})})();Ext._endTime=new Date().getTime();if(Ext._beforereadyhandler){Ext._beforereadyhandler()}Ext.Error=Ext.extend(Error,{statics:{ignore:false,raise:function(a){a=a||{};if(Ext.isString(a)){a={msg:a}}var c=this.raise.caller,b;if(c){if(c.$name){a.sourceMethod=c.$name}if(c.$owner){a.sourceClass=c.$owner.$className}}if(Ext.Error.handle(a)!==true){b=Ext.Error.prototype.toString.call(a);Ext.log({msg:b,level:"error",dump:a,stack:true});throw new Ext.Error(a)}},handle:function(){return Ext.Error.ignore}},name:"Ext.Error",constructor:function(a){if(Ext.isString(a)){a={msg:a}}var b=this;Ext.apply(b,a);b.message=b.message||b.msg},toString:function(){var c=this,b=c.sourceClass?c.sourceClass:"",a=c.sourceMethod?"."+c.sourceMethod+"(): ":"",d=c.msg||"(No description provided)";return b+a+d}});Ext.deprecated=function(a){return Ext.emptyFn};Ext.JSON=(new (function(){var me=this,encodingFunction,decodingFunction,useNative=null,useHasOwn=!!{}.hasOwnProperty,isNative=function(){if(useNative===null){useNative=Ext.USE_NATIVE_JSON&&window.JSON&&JSON.toString()=="[object JSON]"}return useNative},pad=function(n){return n<10?"0"+n:n},doDecode=function(json){return eval("("+json+")")},doEncode=function(o,newline){if(o===null||o===undefined){return"null"}else{if(Ext.isDate(o)){return Ext.JSON.encodeDate(o)}else{if(Ext.isString(o)){return Ext.JSON.encodeString(o)}else{if(typeof o=="number"){return isFinite(o)?String(o):"null"}else{if(Ext.isBoolean(o)){return String(o)}else{if(o.toJSON){return o.toJSON()}else{if(Ext.isArray(o)){return encodeArray(o,newline)}else{if(Ext.isObject(o)){return encodeObject(o,newline)}else{if(typeof o==="function"){return"null"}}}}}}}}}return"undefined"},m={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\","\x0b":"\\u000b"},charToReplace=/[\\\"\x00-\x1f\x7f-\uffff]/g,encodeString=function(s){return'"'+s.replace(charToReplace,function(a){var c=m[a];return typeof c==="string"?c:"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})+'"'},encodeArray=function(o,newline){var a=["[",""],len=o.length,i;for(i=0;i<len;i+=1){a.push(Ext.JSON.encodeValue(o[i]),",")}a[a.length-1]="]";return a.join("")},encodeObject=function(o,newline){var a=["{",""],i;for(i in o){if(!useHasOwn||o.hasOwnProperty(i)){a.push(Ext.JSON.encodeValue(i),":",Ext.JSON.encodeValue(o[i]),",")}}a[a.length-1]="}";return a.join("")};me.encodeString=encodeString;me.encodeValue=doEncode;me.encodeDate=function(o){return'"'+o.getFullYear()+"-"+pad(o.getMonth()+1)+"-"+pad(o.getDate())+"T"+pad(o.getHours())+":"+pad(o.getMinutes())+":"+pad(o.getSeconds())+'"'};me.encode=function(o){if(!encodingFunction){encodingFunction=isNative()?JSON.stringify:me.encodeValue}return encodingFunction(o)};me.decode=function(json,safe){if(!decodingFunction){decodingFunction=isNative()?JSON.parse:doDecode}try{return decodingFunction(json)}catch(e){if(safe===true){return null}Ext.Error.raise({sourceClass:"Ext.JSON",sourceMethod:"decode",msg:"You're trying to decode an invalid JSON String: "+json})}}})());Ext.encode=Ext.JSON.encode;Ext.decode=Ext.JSON.decode;Ext.apply(Ext,{userAgent:navigator.userAgent.toLowerCase(),cache:{},idSeed:1000,windowId:"ext-window",documentId:"ext-document",isReady:false,enableGarbageCollector:true,enableListenerCollection:true,addCacheEntry:function(e,b,d){d=d||b.dom;var a=e||(b&&b.id)||d.id,c=Ext.cache[a]||(Ext.cache[a]={data:{},events:{},dom:d,skipGarbageCollection:!!(d.getElementById||d.navigator)});if(b){b.$cache=c;c.el=b}return c},updateCacheEntry:function(a,b){a.dom=b;if(a.el){a.el.dom=b}return a},id:function(a,c){var b=this,d="";a=Ext.getDom(a,true)||{};if(a===document){a.id=b.documentId}else{if(a===window){a.id=b.windowId}}if(!a.id){if(b.isSandboxed){d=Ext.sandboxName.toLowerCase()+"-"}a.id=d+(c||"ext-gen")+(++Ext.idSeed)}return a.id},escapeId:(function(){var c=/^[a-zA-Z_][a-zA-Z0-9_\-]*$/i,d=/([\W]{1})/g,b=/^(\d)/g,a=function(h,g){return"\\"+g},e=function(h,g){return"\\00"+g.charCodeAt(0).toString(16)+" "};return function(g){return c.test(g)?g:g.replace(d,a).replace(b,e)}}()),getBody:(function(){var a;return function(){return a||(a=Ext.get(document.body))}}()),getHead:(function(){var a;return function(){return a||(a=Ext.get(document.getElementsByTagName("head")[0]))}}()),getDoc:(function(){var a;return function(){return a||(a=Ext.get(document))}}()),getCmp:function(a){return Ext.ComponentManager.get(a)},getOrientation:function(){return window.innerHeight>window.innerWidth?"portrait":"landscape"},destroy:function(){var c=arguments.length,b,a;for(b=0;b<c;b++){a=arguments[b];if(a){if(Ext.isArray(a)){this.destroy.apply(this,a)}else{if(Ext.isFunction(a.destroy)){a.destroy()}else{if(a.dom){a.remove()}}}}}},callback:function(d,c,b,a){if(Ext.isFunction(d)){b=b||[];c=c||window;if(a){Ext.defer(d,a,c,b)}else{d.apply(c,b)}}},htmlEncode:function(a){return Ext.String.htmlEncode(a)},htmlDecode:function(a){return Ext.String.htmlDecode(a)},urlAppend:function(a,b){return Ext.String.urlAppend(a,b)}});Ext.ns=Ext.namespace;window.undefined=window.undefined;(function(){var o=function(e){return e.test(Ext.userAgent)},t=document.compatMode=="CSS1Compat",F=function(R,Q){var e;return(R&&(e=Q.exec(Ext.userAgent)))?parseFloat(e[1]):0},p=document.documentMode,a=o(/opera/),v=a&&o(/version\/10\.5/),K=o(/\bchrome\b/),z=o(/webkit/),c=!K&&o(/safari/),I=c&&o(/applewebkit\/4/),G=c&&o(/version\/3/),D=c&&o(/version\/4/),j=c&&o(/version\/5\.0/),C=c&&o(/version\/5/),i=!a&&o(/msie/),J=i&&((o(/msie 7/)&&p!=8&&p!=9)||p==7),H=i&&((o(/msie 8/)&&p!=7&&p!=9)||p==8),E=i&&((o(/msie 9/)&&p!=7&&p!=8)||p==9),M=i&&o(/msie 6/),b=!z&&o(/gecko/),P=b&&o(/rv:1\.9/),O=b&&o(/rv:2\.0/),N=b&&o(/rv:5\./),r=b&&o(/rv:10\./),y=P&&o(/rv:1\.9\.0/),w=P&&o(/rv:1\.9\.1/),u=P&&o(/rv:1\.9\.2/),g=o(/windows|win32/),B=o(/macintosh|mac os x/),x=o(/linux/),l=null,m=F(true,/\bchrome\/(\d+\.\d+)/),h=F(true,/\bfirefox\/(\d+\.\d+)/),n=F(i,/msie (\d+\.\d+)/),s=F(a,/version\/(\d+\.\d+)/),d=F(c,/version\/(\d+\.\d+)/),A=F(z,/webkit\/(\d+\.\d+)/),q=/^https/i.test(window.location.protocol),k;try{document.execCommand("BackgroundImageCache",false,true)}catch(L){}k=function(){};k.info=k.warn=k.error=Ext.emptyFn;Ext.setVersion("extjs","4.1.1.1");Ext.apply(Ext,{SSL_SECURE_URL:q&&i?"javascript:''":"about:blank",scopeResetCSS:Ext.buildSettings.scopeResetCSS,resetCls:Ext.buildSettings.baseCSSPrefix+"reset",enableNestedListenerRemoval:false,USE_NATIVE_JSON:false,getDom:function(R,Q){if(!R||!document){return null}if(R.dom){return R.dom}else{if(typeof R=="string"){var S=Ext.getElementById(R);if(S&&i&&Q){if(R==S.getAttribute("id")){return S}else{return null}}return S}else{return R}}},removeNode:M||J||H?(function(){var e;return function(S){if(S&&S.tagName.toUpperCase()!="BODY"){(Ext.enableNestedListenerRemoval)?Ext.EventManager.purgeElement(S):Ext.EventManager.removeAll(S);var Q=Ext.cache,R=S.id;if(Q[R]){delete Q[R].dom;delete Q[R]}if(H&&S.parentNode){S.parentNode.removeChild(S)}e=e||document.createElement("div");e.appendChild(S);e.innerHTML=""}}}()):function(R){if(R&&R.parentNode&&R.tagName.toUpperCase()!="BODY"){(Ext.enableNestedListenerRemoval)?Ext.EventManager.purgeElement(R):Ext.EventManager.removeAll(R);var e=Ext.cache,Q=R.id;if(e[Q]){delete e[Q].dom;delete e[Q]}R.parentNode.removeChild(R)}},isStrict:t,isIEQuirks:i&&!t,isOpera:a,isOpera10_5:v,isWebKit:z,isChrome:K,isSafari:c,isSafari3:G,isSafari4:D,isSafari5:C,isSafari5_0:j,isSafari2:I,isIE:i,isIE6:M,isIE7:J,isIE8:H,isIE9:E,isGecko:b,isGecko3:P,isGecko4:O,isGecko5:N,isGecko10:r,isFF3_0:y,isFF3_5:w,isFF3_6:u,isFF4:4<=h&&h<5,isFF5:5<=h&&h<6,isFF10:10<=h&&h<11,isLinux:x,isWindows:g,isMac:B,chromeVersion:m,firefoxVersion:h,ieVersion:n,operaVersion:s,safariVersion:d,webKitVersion:A,isSecure:q,BLANK_IMAGE_URL:(M||J)?"//www.sencha.com/s.gif":"data:image/gif;base64,R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==",value:function(R,e,Q){return Ext.isEmpty(R,Q)?e:R},escapeRe:function(e){return e.replace(/([-.*+?\^${}()|\[\]\/\\])/g,"\\$1")},addBehaviors:function(T){if(!Ext.isReady){Ext.onReady(function(){Ext.addBehaviors(T)})}else{var Q={},S,e,R;for(e in T){if((S=e.split("@"))[1]){R=S[0];if(!Q[R]){Q[R]=Ext.select(R)}Q[R].on(S[1],T[e])}}Q=null}},getScrollbarSize:function(Q){if(!Ext.isReady){return{}}if(Q||!l){var e=document.body,R=document.createElement("div");R.style.width=R.style.height="100px";R.style.overflow="scroll";R.style.position="absolute";e.appendChild(R);l={width:R.offsetWidth-R.clientWidth,height:R.offsetHeight-R.clientHeight};e.removeChild(R)}return l},getScrollBarWidth:function(Q){var e=Ext.getScrollbarSize(Q);return e.width+2},copyTo:function(Q,S,U,T){if(typeof U=="string"){U=U.split(/[,;\s]/)}var V,R=U.length,e;for(V=0;V<R;V++){e=U[V];if(T||S.hasOwnProperty(e)){Q[e]=S[e]}}return Q},destroyMembers:function(S){for(var R=1,Q=arguments,e=Q.length;R<e;R++){Ext.destroy(S[Q[R]]);delete S[Q[R]]}},log:k,partition:function(e,T){var U=[[],[]],Q,S,R=e.length;for(Q=0;Q<R;Q++){S=e[Q];U[(T&&T(S,Q,e))||(!T&&S)?0:1].push(S)}return U},invoke:function(e,T){var V=[],U=Array.prototype.slice.call(arguments,2),Q,S,R=e.length;for(Q=0;Q<R;Q++){S=e[Q];if(S&&typeof S[T]=="function"){V.push(S[T].apply(S,U))}else{V.push(undefined)}}return V},zip:function(){var W=Ext.partition(arguments,function(X){return typeof X!="function"}),T=W[0],V=W[1][0],e=Ext.max(Ext.pluck(T,"length")),S=[],U,R,Q;for(U=0;U<e;U++){S[U]=[];if(V){S[U]=V.apply(V,Ext.pluck(T,U))}else{for(R=0,Q=T.length;R<Q;R++){S[U].push(T[R][U])}}}return S},toSentence:function(Q,e){var T=Q.length,S,R;if(T<=1){return Q[0]}else{S=Q.slice(0,T-1);R=Q[T-1];return Ext.util.Format.format("{0} {1} {2}",S.join(", "),e||"and",R)}},useShims:M})}());Ext.application=function(a){Ext.require("Ext.app.Application");Ext.onReady(function(){new Ext.app.Application(a)})};(function(){Ext.ns("Ext.util");Ext.util.Format={};var g=Ext.util.Format,e=/<\/?[^>]+>/gi,c=/(?:<script.*?>)((\n|\r|.)*?)(?:<\/script>)/ig,b=/\r?\n/g,d=/[^\d\.]/g,a;Ext.apply(g,{thousandSeparator:",",decimalSeparator:".",currencyPrecision:2,currencySign:"$",currencyAtEnd:false,undef:function(h){return h!==undefined?h:""},defaultValue:function(i,h){return i!==undefined&&i!==""?i:h},substr:"ab".substr(-1)!="b"?function(i,k,h){var j=String(i);return(k<0)?j.substr(Math.max(j.length+k,0),h):j.substr(k,h)}:function(i,j,h){return String(i).substr(j,h)},lowercase:function(h){return String(h).toLowerCase()},uppercase:function(h){return String(h).toUpperCase()},usMoney:function(h){return g.currency(h,"$",2)},currency:function(k,m,j,h){var o="",n=",0",l=0;k=k-0;if(k<0){k=-k;o="-"}j=Ext.isDefined(j)?j:g.currencyPrecision;n+=n+(j>0?".":"");for(;l<j;l++){n+="0"}k=g.number(k,n);if((h||g.currencyAtEnd)===true){return Ext.String.format("{0}{1}{2}",o,k,m||g.currencySign)}else{return Ext.String.format("{0}{1}{2}",o,m||g.currencySign,k)}},date:function(h,i){if(!h){return""}if(!Ext.isDate(h)){h=new Date(Date.parse(h))}return Ext.Date.dateFormat(h,i||Ext.Date.defaultFormat)},dateRenderer:function(h){return function(i){return g.date(i,h)}},stripTags:function(h){return !h?h:String(h).replace(e,"")},stripScripts:function(h){return !h?h:String(h).replace(c,"")},fileSize:function(h){if(h<1024){return h+" bytes"}else{if(h<1048576){return(Math.round(((h*10)/1024))/10)+" KB"}else{return(Math.round(((h*10)/1048576))/10)+" MB"}}},math:(function(){var h={};return function(j,i){if(!h[i]){h[i]=Ext.functionFactory("v","return v "+i+";")}return h[i](j)}}()),round:function(j,i){var h=Number(j);if(typeof i=="number"){i=Math.pow(10,i);h=Math.round(j*i)/i}return h},number:function(y,s){if(!s){return y}y=Ext.Number.from(y,NaN);if(isNaN(y)){return""}var A=g.thousandSeparator,q=g.decimalSeparator,z=false,r=y<0,k,h,x,w,p,t,o,l,u;y=Math.abs(y);if(s.substr(s.length-2)=="/i"){if(!a){a=new RegExp("[^\\d\\"+g.decimalSeparator+"]","g")}s=s.substr(0,s.length-2);z=true;k=s.indexOf(A)!=-1;h=s.replace(a,"").split(q)}else{k=s.indexOf(",")!=-1;h=s.replace(d,"").split(".")}if(h.length>2){}else{if(h.length>1){y=Ext.Number.toFixed(y,h[1].length)}else{y=Ext.Number.toFixed(y,0)}}x=y.toString();h=x.split(".");if(k){w=h[0];p=[];t=w.length;o=Math.floor(t/3);l=w.length%3||3;for(u=0;u<t;u+=l){if(u!==0){l=3}p[p.length]=w.substr(u,l);o-=1}x=p.join(A);if(h[1]){x+=q+h[1]}}else{if(h[1]){x=h[0]+q+h[1]}}if(r){r=x.replace(/[^1-9]/g,"")!==""}return(r?"-":"")+s.replace(/[\d,?\.?]+/,x)},numberRenderer:function(h){return function(i){return g.number(i,h)}},plural:function(h,i,j){return h+" "+(h==1?i:(j?j:i+"s"))},nl2br:function(h){return Ext.isEmpty(h)?"":h.replace(b,"<br/>")},capitalize:Ext.String.capitalize,ellipsis:Ext.String.ellipsis,format:Ext.String.format,htmlDecode:Ext.String.htmlDecode,htmlEncode:Ext.String.htmlEncode,leftPad:Ext.String.leftPad,trim:Ext.String.trim,parseBox:function(i){i=Ext.isEmpty(i)?"":i;if(Ext.isNumber(i)){i=i.toString()}var j=i.split(" "),h=j.length;if(h==1){j[1]=j[2]=j[3]=j[0]}else{if(h==2){j[2]=j[0];j[3]=j[1]}else{if(h==3){j[3]=j[1]}}}return{top:parseInt(j[0],10)||0,right:parseInt(j[1],10)||0,bottom:parseInt(j[2],10)||0,left:parseInt(j[3],10)||0}},escapeRegex:function(h){return h.replace(/([\-.*+?\^${}()|\[\]\/\\])/g,"\\$1")}})}());Ext.define("Ext.util.TaskRunner",{interval:10,timerId:null,constructor:function(a){var b=this;if(typeof a=="number"){b.interval=a}else{if(a){Ext.apply(b,a)}}b.tasks=[];b.timerFn=Ext.Function.bind(b.onTick,b)},newTask:function(b){var a=new Ext.util.TaskRunner.Task(b);a.manager=this;return a},start:function(a){var c=this,b=new Date().getTime();if(!a.pending){c.tasks.push(a);a.pending=true}a.stopped=false;a.taskStartTime=b;a.taskRunTime=a.fireOnStart!==false?0:a.taskStartTime;a.taskRunCount=0;if(!c.firing){if(a.fireOnStart!==false){c.startTimer(0,b)}else{c.startTimer(a.interval,b)}}return a},stop:function(a){if(!a.stopped){a.stopped=true;if(a.onStop){a.onStop.call(a.scope||a,a)}}return a},stopAll:function(){Ext.each(this.tasks,this.stop,this)},firing:false,nextExpires:1e+99,onTick:function(){var m=this,e=m.tasks,a=new Date().getTime(),n=1e+99,k=e.length,c,o,h,b,d,g;m.timerId=null;m.firing=true;for(h=0;h<k||h<(k=e.length);++h){b=e[h];if(!(g=b.stopped)){c=b.taskRunTime+b.interval;if(c<=a){d=1;try{d=b.run.apply(b.scope||b,b.args||[++b.taskRunCount])}catch(j){try{if(b.onError){d=b.onError.call(b.scope||b,b,j)}}catch(l){}}b.taskRunTime=a;if(d===false||b.taskRunCount===b.repeat){m.stop(b);g=true}else{g=b.stopped;c=a+b.interval}}if(!g&&b.duration&&b.duration<=(a-b.taskStartTime)){m.stop(b);g=true}}if(g){b.pending=false;if(!o){o=e.slice(0,h)}}else{if(o){o.push(b)}if(n>c){n=c}}}if(o){m.tasks=o}m.firing=false;if(m.tasks.length){m.startTimer(n-a,new Date().getTime())}},startTimer:function(e,c){var d=this,b=c+e,a=d.timerId;if(a&&d.nextExpires-b>d.interval){clearTimeout(a);a=null}if(!a){if(e<d.interval){e=d.interval}d.timerId=setTimeout(d.timerFn,e);d.nextExpires=b}}},function(){var b=this,a=b.prototype;a.destroy=a.stopAll;Ext.util.TaskManager=Ext.TaskManager=new b();b.Task=new Ext.Class({isTask:true,stopped:true,fireOnStart:false,constructor:function(c){Ext.apply(this,c)},restart:function(c){if(c!==undefined){this.interval=c}this.manager.start(this)},start:function(c){if(this.stopped){this.restart(c)}},stop:function(){this.manager.stop(this)}});a=b.Task.prototype;a.destroy=a.stop});Ext.define("Ext.perf.Accumulator",(function(){var c=null,h=Ext.global.chrome,d,b=function(){b=function(){return new Date().getTime()};var l,m;if(Ext.isChrome&&h&&h.Interval){l=new h.Interval();l.start();b=function(){return l.microseconds()/1000}}else{if(window.ActiveXObject){try{m=new ActiveXObject("SenchaToolbox.Toolbox");Ext.senchaToolbox=m;b=function(){return m.milliseconds}}catch(n){}}else{if(Date.now){b=Date.now}}}Ext.perf.getTimestamp=Ext.perf.Accumulator.getTimestamp=b;return b()};function i(m,l){m.sum+=l;m.min=Math.min(m.min,l);m.max=Math.max(m.max,l)}function e(o){var m=o?o:(b()-this.time),n=this,l=n.accum;++l.count;if(!--l.depth){i(l.total,m)}i(l.pure,m-n.childTime);c=n.parent;if(c){++c.accum.childCount;c.childTime+=m}}function a(){return{min:Number.MAX_VALUE,max:0,sum:0}}function j(m,l){return function(){var o=m.enter(),n=l.apply(this,arguments);o.leave();return n}}function k(l){return Math.round(l*100)/100}function g(n,m,l,p){var o={avg:0,min:p.min,max:p.max,sum:0};if(n){l=l||0;o.sum=p.sum-m*l;o.avg=o.sum/n}return o}return{constructor:function(l){var m=this;m.count=m.childCount=m.depth=m.maxDepth=0;m.pure=a();m.total=a();m.name=l},statics:{getTimestamp:b},format:function(l){if(!d){d=new Ext.XTemplate(["{name} - {count} call(s)",'<tpl if="count">','<tpl if="childCount">'," ({childCount} children)","</tpl>",'<tpl if="depth - 1">'," ({depth} deep)","</tpl>",'<tpl for="times">',", {type}: {[this.time(values.sum)]} msec (","avg={[this.time(values.sum / parent.count)]}",")","</tpl>","</tpl>"].join(""),{time:function(n){return Math.round(n*100)/100}})}var m=this.getData(l);m.name=this.name;m.pure.type="Pure";m.total.type="Total";m.times=[m.pure,m.total];return d.apply(m)},getData:function(l){var m=this;return{count:m.count,childCount:m.childCount,depth:m.maxDepth,pure:g(m.count,m.childCount,l,m.pure),total:g(m.count,m.childCount,l,m.total)}},enter:function(){var l=this,m={accum:l,leave:e,childTime:0,parent:c};++l.depth;if(l.maxDepth<l.depth){l.maxDepth=l.depth}c=m;m.time=b();return m},monitor:function(n,m,l){var o=this.enter();if(l){n.apply(m,l)}else{n.call(m)}o.leave()},report:function(){Ext.log(this.format())},tap:function(t,v){var u=this,o=typeof v=="string"?[v]:v,s,w,q,p,n,m,l,r;r=function(){if(typeof t=="string"){s=Ext.global;p=t.split(".");for(q=0,n=p.length;q<n;++q){s=s[p[q]]}}else{s=t}for(q=0,n=o.length;q<n;++q){m=o[q];w=m.charAt(0)=="!";if(w){m=m.substring(1)}else{w=!(m in s.prototype)}l=w?s:s.prototype;l[m]=j(u,l[m])}};Ext.ClassManager.onCreated(r,u,t);return u}}}()),function(){Ext.perf.getTimestamp=this.getTimestamp});Ext.define("Ext.perf.Monitor",{singleton:true,alternateClassName:"Ext.Perf",requires:["Ext.perf.Accumulator"],constructor:function(){this.accumulators=[];this.accumulatorsByName={}},calibrate:function(){var b=new Ext.perf.Accumulator("$"),g=b.total,c=Ext.perf.Accumulator.getTimestamp,e=0,h,a,d;d=c();do{h=b.enter();h.leave();++e}while(g.sum<100);a=c();return(a-d)/e},get:function(b){var c=this,a=c.accumulatorsByName[b];if(!a){c.accumulatorsByName[b]=a=new Ext.perf.Accumulator(b);c.accumulators.push(a)}return a},enter:function(a){return this.get(a).enter()},monitor:function(a,c,b){this.get(a).monitor(c,b)},report:function(){var c=this,b=c.accumulators,a=c.calibrate();b.sort(function(e,d){return(e.name<d.name)?-1:((d.name<e.name)?1:0)});c.updateGC();Ext.log("Calibration: "+Math.round(a*100)/100+" msec/sample");Ext.each(b,function(d){Ext.log(d.format(a))})},getData:function(c){var b={},a=this.accumulators;Ext.each(a,function(d){if(c||d.count){b[d.name]=d.getData()}});return b},reset:function(){Ext.each(this.accumulators,function(a){var b=a;b.count=b.childCount=b.depth=b.maxDepth=0;b.pure={min:Number.MAX_VALUE,max:0,sum:0};b.total={min:Number.MAX_VALUE,max:0,sum:0}})},updateGC:function(){var a=this.accumulatorsByName.GC,b=Ext.senchaToolbox,c;if(a){a.count=b.garbageCollectionCounter||0;if(a.count){c=a.pure;a.total.sum=c.sum=b.garbageCollectionMilliseconds;c.min=c.max=c.sum/a.count;c=a.total;c.min=c.max=c.sum/a.count}}},watchGC:function(){Ext.perf.getTimestamp();var a=Ext.senchaToolbox;if(a){this.get("GC");a.watchGarbageCollector(false)}},setup:function(c){if(!c){c={render:{"Ext.AbstractComponent":"render"},layout:{"Ext.layout.Context":"run"}}}this.currentConfig=c;var d,g,b,e,a;for(d in c){if(c.hasOwnProperty(d)){g=c[d];b=Ext.Perf.get(d);for(e in g){if(g.hasOwnProperty(e)){a=g[e];b.tap(e,a)}}}}this.watchGC()}});Ext.is={init:function(b){var c=this.platforms,e=c.length,d,a;b=b||window.navigator;for(d=0;d<e;d++){a=c[d];this[a.identity]=a.regex.test(b[a.property])}this.Desktop=this.Mac||this.Windows||(this.Linux&&!this.Android);this.Tablet=this.iPad;this.Phone=!this.Desktop&&!this.Tablet;this.iOS=this.iPhone||this.iPad||this.iPod;this.Standalone=!!window.navigator.standalone},platforms:[{property:"platform",regex:/iPhone/i,identity:"iPhone"},{property:"platform",regex:/iPod/i,identity:"iPod"},{property:"userAgent",regex:/iPad/i,identity:"iPad"},{property:"userAgent",regex:/Blackberry/i,identity:"Blackberry"},{property:"userAgent",regex:/Android/i,identity:"Android"},{property:"platform",regex:/Mac/i,identity:"Mac"},{property:"platform",regex:/Win/i,identity:"Windows"},{property:"platform",regex:/Linux/i,identity:"Linux"}]};Ext.is.init();(function(){var a=function(d,c){var b=d.ownerDocument.defaultView,e=(b?b.getComputedStyle(d,null):d.currentStyle)||d.style;return e[c]};Ext.supports={init:function(){var d=this,e=document,c=d.tests,i=c.length,h=i&&Ext.isReady&&e.createElement("div"),g,b=[];if(h){h.innerHTML=['<div style="height:30px;width:50px;">','<div style="height:20px;width:20px;"></div>',"</div>",'<div style="width: 200px; height: 200px; position: relative; padding: 5px;">','<div style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;"></div>',"</div>",'<div style="position: absolute; left: 10%; top: 10%;"></div>','<div style="float:left; background-color:transparent;"></div>'].join("");e.body.appendChild(h)}while(i--){g=c[i];if(h||g.early){d[g.identity]=g.fn.call(d,e,h)}else{b.push(g)}}if(h){e.body.removeChild(h)}d.tests=b},PointerEvents:"pointerEvents" in document.documentElement.style,CSS3BoxShadow:"boxShadow" in document.documentElement.style||"WebkitBoxShadow" in document.documentElement.style||"MozBoxShadow" in document.documentElement.style,ClassList:!!document.documentElement.classList,OrientationChange:((typeof window.orientation!="undefined")&&("onorientationchange" in window)),DeviceMotion:("ondevicemotion" in window),Touch:("ontouchstart" in window)&&(!Ext.is.Desktop),TimeoutActualLateness:(function(){setTimeout(function(){Ext.supports.TimeoutActualLateness=arguments.length!==0},0)}()),tests:[{identity:"Transitions",fn:function(h,k){var g=["webkit","Moz","o","ms","khtml"],j="TransitionEnd",b=[g[0]+j,"transitionend",g[2]+j,g[3]+j,g[4]+j],e=g.length,d=0,c=false;for(;d<e;d++){if(a(k,g[d]+"TransitionProperty")){Ext.supports.CSS3Prefix=g[d];Ext.supports.CSS3TransitionEnd=b[d];c=true;break}}return c}},{identity:"RightMargin",fn:function(c,d){var b=c.defaultView;return !(b&&b.getComputedStyle(d.firstChild.firstChild,null).marginRight!="0px")}},{identity:"DisplayChangeInputSelectionBug",early:true,fn:function(){var b=Ext.webKitVersion;return 0<b&&b<533}},{identity:"DisplayChangeTextAreaSelectionBug",early:true,fn:function(){var b=Ext.webKitVersion;return 0<b&&b<534.24}},{identity:"TransparentColor",fn:function(c,d,b){b=c.defaultView;return !(b&&b.getComputedStyle(d.lastChild,null).backgroundColor!="transparent")}},{identity:"ComputedStyle",fn:function(c,d,b){b=c.defaultView;return b&&b.getComputedStyle}},{identity:"Svg",fn:function(b){return !!b.createElementNS&&!!b.createElementNS("http://www.w3.org/2000/svg","svg").createSVGRect}},{identity:"Canvas",fn:function(b){return !!b.createElement("canvas").getContext}},{identity:"Vml",fn:function(b){var c=b.createElement("div");c.innerHTML="<!--[if vml]><br/><br/><![endif]-->";return(c.childNodes.length==2)}},{identity:"Float",fn:function(b,c){return !!c.lastChild.style.cssFloat}},{identity:"AudioTag",fn:function(b){return !!b.createElement("audio").canPlayType}},{identity:"History",fn:function(){var b=window.history;return !!(b&&b.pushState)}},{identity:"CSS3DTransform",fn:function(){return(typeof WebKitCSSMatrix!="undefined"&&new WebKitCSSMatrix().hasOwnProperty("m41"))}},{identity:"CSS3LinearGradient",fn:function(h,j){var g="background-image:",d="-webkit-gradient(linear, left top, right bottom, from(black), to(white))",i="linear-gradient(left top, black, white)",e="-moz-"+i,b="-o-"+i,c=[g+d,g+i,g+e,g+b];j.style.cssText=c.join(";");return(""+j.style.backgroundImage).indexOf("gradient")!==-1}},{identity:"CSS3BorderRadius",fn:function(e,g){var c=["borderRadius","BorderRadius","MozBorderRadius","WebkitBorderRadius","OBorderRadius","KhtmlBorderRadius"],d=false,b;for(b=0;b<c.length;b++){if(document.body.style[c[b]]!==undefined){return true}}return d}},{identity:"GeoLocation",fn:function(){return(typeof navigator!="undefined"&&typeof navigator.geolocation!="undefined")||(typeof google!="undefined"&&typeof google.gears!="undefined")}},{identity:"MouseEnterLeave",fn:function(b,c){return("onmouseenter" in c&&"onmouseleave" in c)}},{identity:"MouseWheel",fn:function(b,c){return("onmousewheel" in c)}},{identity:"Opacity",fn:function(b,c){if(Ext.isIE6||Ext.isIE7||Ext.isIE8){return false}c.firstChild.style.cssText="opacity:0.73";return c.firstChild.style.opacity=="0.73"}},{identity:"Placeholder",fn:function(b){return"placeholder" in b.createElement("input")}},{identity:"Direct2DBug",fn:function(){return Ext.isString(document.body.style.msTransformOrigin)}},{identity:"BoundingClientRect",fn:function(b,c){return Ext.isFunction(c.getBoundingClientRect)}},{identity:"IncludePaddingInWidthCalculation",fn:function(b,c){return c.childNodes[1].firstChild.offsetWidth==210}},{identity:"IncludePaddingInHeightCalculation",fn:function(b,c){return c.childNodes[1].firstChild.offsetHeight==210}},{identity:"ArraySort",fn:function(){var b=[1,2,3,4,5].sort(function(){return 0});return b[0]===1&&b[1]===2&&b[2]===3&&b[3]===4&&b[4]===5}},{identity:"Range",fn:function(){return !!document.createRange}},{identity:"CreateContextualFragment",fn:function(){var b=Ext.supports.Range?document.createRange():false;return b&&!!b.createContextualFragment}},{identity:"WindowOnError",fn:function(){return Ext.isIE||Ext.isGecko||Ext.webKitVersion>=534.16}},{identity:"TextAreaMaxLength",fn:function(){var b=document.createElement("textarea");return("maxlength" in b)}},{identity:"GetPositionPercentage",fn:function(b,c){return a(c.childNodes[2],"left")=="10%"}}]}}());Ext.supports.init();Ext.util.DelayedTask=function(d,c,a){var e=this,g,b=function(){clearInterval(g);g=null;d.apply(c,a||[])};this.delay=function(i,k,j,h){e.cancel();d=k||d;c=j||c;a=h||a;g=setInterval(b,i)};this.cancel=function(){if(g){clearInterval(g);g=null}}};Ext.require("Ext.util.DelayedTask",function(){Ext.util.Event=Ext.extend(Object,(function(){var b={};function d(h,i,j,g){return function(){if(j.target===arguments[0]){h.apply(g,arguments)}}}function c(h,i,j,g){i.task=new Ext.util.DelayedTask();return function(){i.task.delay(j.buffer,h,g,Ext.Array.toArray(arguments))}}function a(h,i,j,g){return function(){var k=new Ext.util.DelayedTask();if(!i.tasks){i.tasks=[]}i.tasks.push(k);k.delay(j.delay||10,h,g,Ext.Array.toArray(arguments))}}function e(h,i,j,g){return function(){var k=i.ev;if(k.removeListener(i.fn,g)&&k.observable){k.observable.hasListeners[k.name]--}return h.apply(g,arguments)}}return{isEvent:true,constructor:function(h,g){this.name=g;this.observable=h;this.listeners=[]},addListener:function(i,h,g){var j=this,k;h=h||j.observable;if(!j.isListening(i,h)){k=j.createListener(i,h,g);if(j.firing){j.listeners=j.listeners.slice(0)}j.listeners.push(k)}},createListener:function(j,i,g){g=g||b;i=i||this.observable;var k={fn:j,scope:i,o:g,ev:this},h=j;if(g.single){h=e(h,k,g,i)}if(g.target){h=d(h,k,g,i)}if(g.delay){h=a(h,k,g,i)}if(g.buffer){h=c(h,k,g,i)}k.fireFn=h;return k},findListener:function(l,k){var j=this.listeners,g=j.length,m,h;while(g--){m=j[g];if(m){h=m.scope;if(m.fn==l&&(h==(k||this.observable))){return g}}}return -1},isListening:function(h,g){return this.findListener(h,g)!==-1},removeListener:function(j,i){var l=this,h,m,g;h=l.findListener(j,i);if(h!=-1){m=l.listeners[h];if(l.firing){l.listeners=l.listeners.slice(0)}if(m.task){m.task.cancel();delete m.task}g=m.tasks&&m.tasks.length;if(g){while(g--){m.tasks[g].cancel()}delete m.tasks}Ext.Array.erase(l.listeners,h,1);return true}return false},clearListeners:function(){var h=this.listeners,g=h.length;while(g--){this.removeListener(h[g].fn,h[g].scope)}},fire:function(){var l=this,j=l.listeners,k=j.length,h,g,m;if(k>0){l.firing=true;for(h=0;h<k;h++){m=j[h];g=arguments.length?Array.prototype.slice.call(arguments,0):[];if(m.o){g.push(m.o)}if(m&&m.fireFn.apply(m.scope||l.observable,g)===false){return(l.firing=false)}}}l.firing=false;return true}}}()))});Ext.define("Ext.util.Observable",{requires:["Ext.util.Event"],statics:{releaseCapture:function(a){a.fireEvent=this.prototype.fireEvent},capture:function(c,b,a){c.fireEvent=Ext.Function.createInterceptor(c.fireEvent,b,a)},observe:function(a,b){if(a){if(!a.isObservable){Ext.applyIf(a,new this());this.capture(a.prototype,a.fireEvent,a)}if(Ext.isObject(b)){a.on(b)}}return a},prepareClass:function(d,c){if(!d.HasListeners){var b=Ext.util.Observable,e=function(){},a=d.superclass.HasListeners||(c&&c.HasListeners)||b.HasListeners;d.prototype.HasListeners=d.HasListeners=e;e.prototype=d.hasListeners=new a()}}},isObservable:true,eventsSuspended:0,constructor:function(a){var b=this;Ext.apply(b,a);if(!b.hasListeners){b.hasListeners=new b.HasListeners()}b.events=b.events||{};if(b.listeners){b.on(b.listeners);b.listeners=null}if(b.bubbleEvents){b.enableBubble(b.bubbleEvents)}},onClassExtended:function(a){if(!a.HasListeners){Ext.util.Observable.prepareClass(a)}},eventOptionsRe:/^(?:scope|delay|buffer|single|stopEvent|preventDefault|stopPropagation|normalized|args|delegate|element|vertical|horizontal|freezeEvent)$/,addManagedListener:function(i,d,g,e,c){var h=this,a=h.managedListeners=h.managedListeners||[],b;if(typeof d!=="string"){c=d;for(d in c){if(c.hasOwnProperty(d)){b=c[d];if(!h.eventOptionsRe.test(d)){h.addManagedListener(i,d,b.fn||b,b.scope||c.scope,b.fn?b:c)}}}}else{a.push({item:i,ename:d,fn:g,scope:e,options:c});i.on(d,g,e,c)}},removeManagedListener:function(j,c,g,k){var e=this,l,b,h,a,d;if(typeof c!=="string"){l=c;for(c in l){if(l.hasOwnProperty(c)){b=l[c];if(!e.eventOptionsRe.test(c)){e.removeManagedListener(j,c,b.fn||b,b.scope||l.scope)}}}}h=e.managedListeners?e.managedListeners.slice():[];for(d=0,a=h.length;d<a;d++){e.removeManagedListenerItem(false,h[d],j,c,g,k)}},fireEvent:function(a){a=a.toLowerCase();var e=this,c=e.events,d=c&&c[a],b=true;if(d&&e.hasListeners[a]){b=e.continueFireEvent(a,Ext.Array.slice(arguments,1),d.bubble)}return b},continueFireEvent:function(c,e,b){var h=this,a,g,d=true;do{if(h.eventsSuspended){if((a=h.eventQueue)){a.push([c,e,b])}return d}else{g=h.events[c];if(g&&g!=true){if((d=g.fire.apply(g,e))===false){break}}}}while(b&&(h=h.getBubbleParent()));return d},getBubbleParent:function(){var b=this,a=b.getBubbleTarget&&b.getBubbleTarget();if(a&&a.isObservable){return a}return null},addListener:function(c,g,i,j){var e=this,b,a,d,h=0;if(typeof c!=="string"){j=c;for(c in j){if(j.hasOwnProperty(c)){b=j[c];if(!e.eventOptionsRe.test(c)){e.addListener(c,b.fn||b,b.scope||j.scope,b.fn?b:j)}}}}else{c=c.toLowerCase();a=e.events[c];if(a&&a.isEvent){h=a.listeners.length}else{e.events[c]=a=new Ext.util.Event(e,c)}if(typeof g==="string"){g=i[g]||e[g]}a.addListener(g,i,j);if(a.listeners.length!==h){d=e.hasListeners;if(d.hasOwnProperty(c)){++d[c]}else{d[c]=1}}}},removeListener:function(c,e,d){var h=this,b,g,a;if(typeof c!=="string"){a=c;for(c in a){if(a.hasOwnProperty(c)){b=a[c];if(!h.eventOptionsRe.test(c)){h.removeListener(c,b.fn||b,b.scope||a.scope)}}}}else{c=c.toLowerCase();g=h.events[c];if(g&&g.isEvent){if(g.removeListener(e,d)&&!--h.hasListeners[c]){delete h.hasListeners[c]}}}},clearListeners:function(){var b=this.events,c,a;for(a in b){if(b.hasOwnProperty(a)){c=b[a];if(c.isEvent){c.clearListeners()}}}this.clearManagedListeners()},clearManagedListeners:function(){var b=this.managedListeners||[],c=0,a=b.length;for(;c<a;c++){this.removeManagedListenerItem(true,b[c])}this.managedListeners=[]},removeManagedListenerItem:function(b,a,g,c,e,d){if(b||(a.item===g&&a.ename===c&&(!e||a.fn===e)&&(!d||a.scope===d))){a.item.un(a.ename,a.fn,a.scope);if(!b){Ext.Array.remove(this.managedListeners,a)}}},addEvents:function(g){var e=this,d=e.events||(e.events={}),a,b,c;if(typeof g=="string"){for(b=arguments,c=b.length;c--;){a=b[c];if(!d[a]){d[a]=true}}}else{Ext.applyIf(e.events,g)}},hasListener:function(a){return !!this.hasListeners[a.toLowerCase()]},suspendEvents:function(a){this.eventsSuspended+=1;if(a&&!this.eventQueue){this.eventQueue=[]}},resumeEvents:function(){var a=this,d=a.eventQueue,c,b;if(a.eventsSuspended&&!--a.eventsSuspended){delete a.eventQueue;if(d){c=d.length;for(b=0;b<c;b++){a.continueFireEvent.apply(a,d[b])}}}},relayEvents:function(c,e,j){var h=this,a=e.length,d=0,g,b;for(;d<a;d++){g=e[d];b=j?j+g:g;h.mon(c,g,h.createRelayer(b))}},createRelayer:function(a,b){var c=this;return function(){return c.fireEvent.apply(c,[a].concat(Array.prototype.slice.apply(arguments,b||[0,-1])))}},enableBubble:function(j){if(j){var g=this,h=(typeof j=="string")?arguments:j,e=h.length,c=g.events,b,d,a;for(a=0;a<e;++a){b=h[a].toLowerCase();d=c[b];if(!d||typeof d=="boolean"){c[b]=d=new Ext.util.Event(g,b)}g.hasListeners[b]=(g.hasListeners[b]||0)+1;d.bubble=true}}}},function(){var a=this,d=a.prototype,b=function(){},e=function(g){if(!g.HasListeners){var h=g.prototype;a.prepareClass(g,this);g.onExtended(function(i){a.prepareClass(i)});if(h.onClassMixedIn){Ext.override(g,{onClassMixedIn:function(i){e.call(this,i);this.callParent(arguments)}})}else{h.onClassMixedIn=function(i){e.call(this,i)}}}};b.prototype={};d.HasListeners=a.HasListeners=b;a.createAlias({on:"addListener",un:"removeListener",mon:"addManagedListener",mun:"removeManagedListener"});a.observeClass=a.observe;function c(m){var l=(this.methodEvents=this.methodEvents||{})[m],i,h,j,k=this,g;if(!l){this.methodEvents[m]=l={};l.originalFn=this[m];l.methodName=m;l.before=[];l.after=[];g=function(p,o,n){if((h=p.apply(o||k,n))!==undefined){if(typeof h=="object"){if(h.returnValue!==undefined){i=h.returnValue}else{i=h}j=!!h.cancel}else{if(h===false){j=true}else{i=h}}}};this[m]=function(){var p=Array.prototype.slice.call(arguments,0),o,q,n;i=h=undefined;j=false;for(q=0,n=l.before.length;q<n;q++){o=l.before[q];g(o.fn,o.scope,p);if(j){return i}}if((h=l.originalFn.apply(k,p))!==undefined){i=h}for(q=0,n=l.after.length;q<n;q++){o=l.after[q];g(o.fn,o.scope,p);if(j){return i}}return i}}return l}Ext.apply(d,{onClassMixedIn:e,beforeMethod:function(i,h,g){c.call(this,i).before.push({fn:h,scope:g})},afterMethod:function(i,h,g){c.call(this,i).after.push({fn:h,scope:g})},removeMethodListener:function(m,k,j){var l=this.getMethodEvent(m),h,g;for(h=0,g=l.before.length;h<g;h++){if(l.before[h].fn==k&&l.before[h].scope==j){Ext.Array.erase(l.before,h,1);return}}for(h=0,g=l.after.length;h<g;h++){if(l.after[h].fn==k&&l.after[h].scope==j){Ext.Array.erase(l.after,h,1);return}}},toggleEventLogging:function(g){Ext.util.Observable[g?"capture":"releaseCapture"](this,function(h){if(Ext.isDefined(Ext.global.console)){Ext.global.console.log(h,arguments)}})}})});Ext.define("Ext.util.HashMap",{mixins:{observable:"Ext.util.Observable"},constructor:function(a){a=a||{};var c=this,b=a.keyFn;c.addEvents("add","clear","remove","replace");c.mixins.observable.constructor.call(c,a);c.clear(true);if(b){c.getKey=b}},getCount:function(){return this.length},getData:function(a,b){if(b===undefined){b=a;a=this.getKey(b)}return[a,b]},getKey:function(a){return a.id},add:function(a,c){var b=this;if(c===undefined){c=a;a=b.getKey(c)}if(b.containsKey(a)){return b.replace(a,c)}b.map[a]=c;++b.length;if(b.hasListeners.add){b.fireEvent("add",b,a,c)}return c},replace:function(b,d){var c=this,e=c.map,a;if(d===undefined){d=b;b=c.getKey(d)}if(!c.containsKey(b)){c.add(b,d)}a=e[b];e[b]=d;if(c.hasListeners.replace){c.fireEvent("replace",c,b,d,a)}return d},remove:function(b){var a=this.findKey(b);if(a!==undefined){return this.removeAtKey(a)}return false},removeAtKey:function(a){var b=this,c;if(b.containsKey(a)){c=b.map[a];delete b.map[a];--b.length;if(b.hasListeners.remove){b.fireEvent("remove",b,a,c)}return true}return false},get:function(a){return this.map[a]},clear:function(a){var b=this;b.map={};b.length=0;if(a!==true&&b.hasListeners.clear){b.fireEvent("clear",b)}return b},containsKey:function(a){return this.map[a]!==undefined},contains:function(a){return this.containsKey(this.findKey(a))},getKeys:function(){return this.getArray(true)},getValues:function(){return this.getArray(false)},getArray:function(d){var a=[],b,c=this.map;for(b in c){if(c.hasOwnProperty(b)){a.push(d?b:c[b])}}return a},each:function(d,c){var a=Ext.apply({},this.map),b,e=this.length;c=c||this;for(b in a){if(a.hasOwnProperty(b)){if(d.call(c,b,a[b],e)===false){break}}}return this},clone:function(){var c=new this.self(),b=this.map,a;c.suspendEvents();for(a in b){if(b.hasOwnProperty(a)){c.add(a,b[a])}}c.resumeEvents();return c},findKey:function(b){var a,c=this.map;for(a in c){if(c.hasOwnProperty(a)&&c[a]===b){return a}}return undefined}});Ext.define("Ext.AbstractManager",{requires:["Ext.util.HashMap"],typeName:"type",constructor:function(a){Ext.apply(this,a||{});this.all=new Ext.util.HashMap();this.types={}},get:function(a){return this.all.get(a)},register:function(a){this.all.add(a)},unregister:function(a){this.all.remove(a)},registerType:function(b,a){this.types[b]=a;a[this.typeName]=b},isRegistered:function(a){return this.types[a]!==undefined},create:function(a,d){var b=a[this.typeName]||a.type||d,c=this.types[b];return new c(a)},onAvailable:function(g,c,b){var a=this.all,d,e;if(a.containsKey(g)){d=a.get(g);c.call(b||d,d)}else{e=function(j,h,i){if(h==g){c.call(b||i,i);a.un("add",e)}};a.on("add",e)}},each:function(b,a){this.all.each(b,a||this)},getCount:function(){return this.all.getCount()}});Ext.define("Ext.ComponentManager",{extend:"Ext.AbstractManager",alternateClassName:"Ext.ComponentMgr",singleton:true,typeName:"xtype",create:function(a,b){if(typeof a=="string"){return Ext.widget(a)}if(a.isComponent){return a}return Ext.widget(a.xtype||b,a)},registerType:function(b,a){this.types[b]=a;a[this.typeName]=b;a.prototype[this.typeName]=b}});Ext.define("Ext.ComponentQuery",{singleton:true,requires:["Ext.ComponentManager"]},function(){var h=this,k=["var r = [],","i = 0,","it = items,","l = it.length,","c;","for (; i < l; i++) {","c = it[i];","if (c.{0}) {","r.push(c);","}","}","return r;"].join(""),e=function(p,o){return o.method.apply(this,[p].concat(o.args))},a=function(q,u){var o=[],r=0,t=q.length,s,p=u!==">";for(;r<t;r++){s=q[r];if(s.getRefItems){o=o.concat(s.getRefItems(p))}}return o},g=function(p){var o=[],q=0,s=p.length,r;for(;q<s;q++){r=p[q];while(!!(r=(r.ownerCt||r.floatParent))){o.push(r)}}return o},m=function(p,u,t){if(u==="*"){return p.slice()}else{var o=[],q=0,s=p.length,r;for(;q<s;q++){r=p[q];if(r.isXType(u,t)){o.push(r)}}return o}},j=function(p,s){var u=Ext.Array,o=[],q=0,t=p.length,r;for(;q<t;q++){r=p[q];if(r.hasCls(s)){o.push(r)}}return o},n=function(q,v,p,u){var o=[],r=0,t=q.length,s;for(;r<t;r++){s=q[r];if(!u?!!s[v]:(String(s[v])===u)){o.push(s)}}return o},d=function(p,t){var o=[],q=0,s=p.length,r;for(;q<s;q++){r=p[q];if(r.getItemId()===t){o.push(r)}}return o},l=function(o,p,q){return h.pseudos[p](o,q)},i=/^(\s?([>\^])\s?|\s|$)/,c=/^(#)?([\w\-]+|\*)(?:\((true|false)\))?/,b=[{re:/^\.([\w\-]+)(?:\((true|false)\))?/,method:m},{re:/^(?:[\[](?:@)?([\w\-]+)\s?(?:(=|.=)\s?['"]?(.*?)["']?)?[\]])/,method:n},{re:/^#([\w\-]+)/,method:d},{re:/^\:([\w\-]+)(?:\(((?:\{[^\}]+\})|(?:(?!\{)[^\s>\/]*?(?!\})))\))?/,method:l},{re:/^(?:\{([^\}]+)\})/,method:k}];h.Query=Ext.extend(Object,{constructor:function(o){o=o||{};Ext.apply(this,o)},execute:function(p){var r=this.operations,s=0,t=r.length,q,o;if(!p){o=Ext.ComponentManager.all.getArray()}else{if(Ext.isArray(p)){o=p}else{if(p.isMixedCollection){o=p.items}}}for(;s<t;s++){q=r[s];if(q.mode==="^"){o=g(o||[p])}else{if(q.mode){o=a(o||[p],q.mode)}else{o=e(o||a([p]),q)}}if(s===t-1){return o}}return[]},is:function(q){var p=this.operations,t=Ext.isArray(q)?q:[q],o=t.length,u=p[p.length-1],s,r;t=e(t,u);if(t.length===o){if(p.length>1){for(r=0,s=t.length;r<s;r++){if(Ext.Array.indexOf(this.execute(),t[r])===-1){return false}}}return true}return false}});Ext.apply(this,{cache:{},pseudos:{not:function(u,o){var v=Ext.ComponentQuery,s=0,t=u.length,r=[],q=-1,p;for(;s<t;++s){p=u[s];if(!v.is(p,o)){r[++q]=p}}return r},first:function(p){var o=[];if(p.length>0){o.push(p[0])}return o},last:function(q){var o=q.length,p=[];if(o>0){p.push(q[o-1])}return p}},query:function(p,w){var x=p.split(","),o=x.length,q=0,r=[],y=[],v={},t,s,u;for(;q<o;q++){p=Ext.String.trim(x[q]);t=this.cache[p]||(this.cache[p]=this.parse(p));r=r.concat(t.execute(w))}if(o>1){s=r.length;for(q=0;q<s;q++){u=r[q];if(!v[u.id]){y.push(u);v[u.id]=true}}r=y}return r},is:function(p,o){if(!o){return true}var r=o.split(","),s=r.length,q=0,t;for(;q<s;q++){o=Ext.String.trim(r[q]);t=this.cache[o]||(this.cache[o]=this.parse(o));if(t.is(p)){return true}}return false},parse:function(r){var p=[],q=b.length,v,s,w,x,y,t,u,o;while(r&&v!==r){v=r;s=r.match(c);if(s){w=s[1];if(w==="#"){p.push({method:d,args:[Ext.String.trim(s[2])]})}else{if(w==="."){p.push({method:j,args:[Ext.String.trim(s[2])]})}else{p.push({method:m,args:[Ext.String.trim(s[2]),Boolean(s[3])]})}}r=r.replace(s[0],"")}while(!(x=r.match(i))){for(t=0;r&&t<q;t++){u=b[t];y=r.match(u.re);o=u.method;if(y){p.push({method:Ext.isString(u.method)?Ext.functionFactory("items",Ext.String.format.apply(Ext.String,[o].concat(y.slice(1)))):u.method,args:y.slice(1)});r=r.replace(y[0],"");break}if(t===(q-1)){Ext.Error.raise('Invalid ComponentQuery selector: "'+arguments[0]+'"')}}}if(x[1]){p.push({mode:x[2]||x[1]});r=r.replace(x[0],"")}}return new h.Query({operations:p})}})});Ext.define("Ext.util.ProtoElement",(function(){var b=Ext.String.splitWords,a=Ext.Array.toMap;return{isProtoEl:true,clsProp:"cls",styleProp:"style",removedProp:"removed",styleIsText:false,constructor:function(c){var d=this;Ext.apply(d,c);d.classList=b(d.cls);d.classMap=a(d.classList);delete d.cls;if(Ext.isFunction(d.style)){d.styleFn=d.style;delete d.style}else{if(typeof d.style=="string"){d.style=Ext.Element.parseStyles(d.style)}else{if(d.style){d.style=Ext.apply({},d.style)}}}},flush:function(){this.flushClassList=[];this.removedClasses={};delete this.style},addCls:function(n){var l=this,m=b(n),e=m.length,j=l.classList,d=l.classMap,g=l.flushClassList,h=0,k;for(;h<e;++h){k=m[h];if(!d[k]){d[k]=true;j.push(k);if(g){g.push(k);delete l.removedClasses[k]}}}return l},hasCls:function(c){return c in this.classMap},removeCls:function(o){var n=this,l=n.classList,g=(n.classList=[]),j=a(b(o)),e=l.length,d=n.classMap,k=n.removedClasses,h,m;for(h=0;h<e;++h){m=l[h];if(j[m]){if(k){if(d[m]){k[m]=true;Ext.Array.remove(n.flushClassList,m)}}delete d[m]}else{g.push(m)}}return n},setStyle:function(g,e){var d=this,c=d.style||(d.style={});if(typeof g=="string"){if(arguments.length===1){d.setStyle(Ext.Element.parseStyles(g))}else{c[g]=e}}else{Ext.apply(c,g)}return d},writeTo:function(h){var e=this,g=e.flushClassList||e.classList,d=e.removedClasses,c;if(e.styleFn){c=Ext.apply({},e.styleFn());Ext.apply(c,e.style)}else{c=e.style}h[e.clsProp]=g.join(" ");if(c){h[e.styleProp]=e.styleIsText?Ext.DomHelper.generateStyles(c):c}if(d){d=Ext.Object.getKeys(d);if(d.length){h[e.removedProp]=d.join(" ")}}return h}}}()));Ext.EventManager=new function(){var a=this,d=document,c=window,b=function(){var k=d.body||d.getElementsByTagName("body")[0],i=Ext.baseCSSPrefix,o=[i+"body"],g=[],m=Ext.supports.CSS3LinearGradient,l=Ext.supports.CSS3BorderRadius,h=[],j,e;if(!k){return false}j=k.parentNode;function n(p){o.push(i+p)}if(Ext.isIE){n("ie");if(Ext.isIE6){n("ie6")}else{n("ie7p");if(Ext.isIE7){n("ie7")}else{n("ie8p");if(Ext.isIE8){n("ie8")}else{n("ie9p");if(Ext.isIE9){n("ie9")}}}}if(Ext.isIE6||Ext.isIE7){n("ie7m")}if(Ext.isIE6||Ext.isIE7||Ext.isIE8){n("ie8m")}if(Ext.isIE7||Ext.isIE8){n("ie78")}}if(Ext.isGecko){n("gecko");if(Ext.isGecko3){n("gecko3")}if(Ext.isGecko4){n("gecko4")}if(Ext.isGecko5){n("gecko5")}}if(Ext.isOpera){n("opera")}if(Ext.isWebKit){n("webkit")}if(Ext.isSafari){n("safari");if(Ext.isSafari2){n("safari2")}if(Ext.isSafari3){n("safari3")}if(Ext.isSafari4){n("safari4")}if(Ext.isSafari5){n("safari5")}if(Ext.isSafari5_0){n("safari5_0")}}if(Ext.isChrome){n("chrome")}if(Ext.isMac){n("mac")}if(Ext.isLinux){n("linux")}if(!l){n("nbr")}if(!m){n("nlg")}if(Ext.scopeResetCSS){e=Ext.resetElementSpec={cls:i+"reset"};if(!m){h.push(i+"nlg")}if(!l){h.push(i+"nbr")}if(h.length){e.cn={cls:h.join(" ")}}Ext.resetElement=Ext.getBody().createChild(e);if(h.length){Ext.resetElement=Ext.get(Ext.resetElement.dom.firstChild)}}else{Ext.resetElement=Ext.getBody();n("reset")}if(j){if(Ext.isStrict&&(Ext.isIE6||Ext.isIE7)){Ext.isBorderBox=false}else{Ext.isBorderBox=true}if(Ext.isBorderBox){g.push(i+"border-box")}if(Ext.isStrict){g.push(i+"strict")}else{g.push(i+"quirks")}Ext.fly(j,"_internal").addCls(g)}Ext.fly(k,"_internal").addCls(o);return true};Ext.apply(a,{hasBoundOnReady:false,hasFiredReady:false,deferReadyEvent:1,onReadyChain:[],readyEvent:(function(){var e=new Ext.util.Event();e.fire=function(){Ext._beforeReadyTime=Ext._beforeReadyTime||new Date().getTime();e.self.prototype.fire.apply(e,arguments);Ext._afterReadytime=new Date().getTime()};return e}()),idleEvent:new Ext.util.Event(),isReadyPaused:function(){return(/[?&]ext-pauseReadyFire\b/i.test(location.search)&&!Ext._continueFireReady)},bindReadyEvent:function(){if(a.hasBoundOnReady){return}if(d.readyState=="complete"){a.onReadyEvent({type:d.readyState||"body"})}else{document.addEventListener("DOMContentLoaded",a.onReadyEvent,false);window.addEventListener("load",a.onReadyEvent,false);a.hasBoundOnReady=true}},onReadyEvent:function(g){if(g&&g.type){a.onReadyChain.push(g.type)}if(a.hasBoundOnReady){document.removeEventListener("DOMContentLoaded",a.onReadyEvent,false);window.removeEventListener("load",a.onReadyEvent,false)}if(!Ext.isReady){a.fireDocReady()}},fireDocReady:function(){if(!Ext.isReady){Ext._readyTime=new Date().getTime();Ext.isReady=true;Ext.supports.init();a.onWindowUnload();a.readyEvent.onReadyChain=a.onReadyChain;if(Ext.isNumber(a.deferReadyEvent)){Ext.Function.defer(a.fireReadyEvent,a.deferReadyEvent);a.hasDocReadyTimer=true}else{a.fireReadyEvent()}}},fireReadyEvent:function(){var e=a.readyEvent;a.hasDocReadyTimer=false;a.isFiring=true;while(e.listeners.length&&!a.isReadyPaused()){e.fire()}a.isFiring=false;a.hasFiredReady=true},onDocumentReady:function(h,g,e){e=e||{};e.single=true;a.readyEvent.addListener(h,g,e);if(!(a.isFiring||a.hasDocReadyTimer)){if(Ext.isReady){a.fireReadyEvent()}else{a.bindReadyEvent()}}},stoppedMouseDownEvent:new Ext.util.Event(),propRe:/^(?:scope|delay|buffer|single|stopEvent|preventDefault|stopPropagation|normalized|args|delegate|freezeEvent)$/,getId:function(e){var g;e=Ext.getDom(e);if(e===d||e===c){g=e===d?Ext.documentId:Ext.windowId}else{g=Ext.id(e)}if(!Ext.cache[g]){Ext.addCacheEntry(g,null,e)}return g},prepareListenerConfig:function(i,g,k){var l=a.propRe,h,j,e;for(h in g){if(g.hasOwnProperty(h)){if(!l.test(h)){j=g[h];if(typeof j=="function"){e=[i,h,j,g.scope,g]}else{e=[i,h,j.fn,j.scope,j]}if(k){a.removeListener.apply(a,e)}else{a.addListener.apply(a,e)}}}}},mouseEnterLeaveRe:/mouseenter|mouseleave/,normalizeEvent:function(e,g){if(a.mouseEnterLeaveRe.test(e)&&!Ext.supports.MouseEnterLeave){if(g){g=Ext.Function.createInterceptor(g,a.contains)}e=e=="mouseenter"?"mouseover":"mouseout"}else{if(e=="mousewheel"&&!Ext.supports.MouseWheel&&!Ext.isOpera){e="DOMMouseScroll"}}return{eventName:e,fn:g}},contains:function(g){var e=g.browserEvent.currentTarget,h=a.getRelatedTarget(g);if(e&&e.firstChild){while(h){if(h===e){return false}h=h.parentNode;if(h&&(h.nodeType!=1)){h=null}}}return true},addListener:function(h,e,k,j,g){if(typeof e!=="string"){a.prepareListenerConfig(h,e);return}var l=h.dom||Ext.getDom(h),m,i;g=g||{};m=a.normalizeEvent(e,k);i=a.createListenerWrap(l,e,m.fn,j,g);if(l.attachEvent){l.attachEvent("on"+m.eventName,i)}else{l.addEventListener(m.eventName,i,g.capture||false)}if(l==d&&e=="mousedown"){a.stoppedMouseDownEvent.addListener(i)}a.getEventListenerCache(h.dom?h:l,e).push({fn:k,wrap:i,scope:j})},removeListener:function(p,q,r,t){if(typeof q!=="string"){a.prepareListenerConfig(p,q,true);return}var n=Ext.getDom(p),h=p.dom?p:Ext.get(n),e=a.getEventListenerCache(h,q),s=a.normalizeEvent(q).eventName,o=e.length,m,k,g,l;while(o--){k=e[o];if(k&&(!r||k.fn==r)&&(!t||k.scope===t)){g=k.wrap;if(g.task){clearTimeout(g.task);delete g.task}m=g.tasks&&g.tasks.length;if(m){while(m--){clearTimeout(g.tasks[m])}delete g.tasks}if(n.detachEvent){n.detachEvent("on"+s,g)}else{n.removeEventListener(s,g,false)}if(g&&n==d&&q=="mousedown"){a.stoppedMouseDownEvent.removeListener(g)}Ext.Array.erase(e,o,1)}}},removeAll:function(i){var j=i.dom?i:Ext.get(i),g,h,e;if(!j){return}g=(j.$cache||j.getCache());h=g.events;for(e in h){if(h.hasOwnProperty(e)){a.removeListener(j,e)}}g.events={}},purgeElement:function(j,g){var k=Ext.getDom(j),h=0,e;if(g){a.removeListener(j,g)}else{a.removeAll(j)}if(k&&k.childNodes){for(e=j.childNodes.length;h<e;h++){a.purgeElement(j.childNodes[h],g)}}},createListenerWrap:function(i,h,l,m,n){n=n||{};var k,j,e=/\\/g,g=function(p,o){if(!j){k=["if(!"+Ext.name+") {return;}"];if(n.buffer||n.delay||n.freezeEvent){k.push("e = new X.EventObjectImpl(e, "+(n.freezeEvent?"true":"false")+");")}else{k.push("e = X.EventObject.setEvent(e);")}if(n.delegate){k.push('var result, t = e.getTarget("'+(n.delegate+"").replace(e,"\\\\")+'", this);');k.push("if(!t) {return;}")}else{k.push("var t = e.target, result;")}if(n.target){k.push("if(e.target !== options.target) {return;}")}if(n.stopEvent){k.push("e.stopEvent();")}else{if(n.preventDefault){k.push("e.preventDefault();")}if(n.stopPropagation){k.push("e.stopPropagation();")}}if(n.normalized===false){k.push("e = e.browserEvent;")}if(n.buffer){k.push("(wrap.task && clearTimeout(wrap.task));");k.push("wrap.task = setTimeout(function() {")}if(n.delay){k.push("wrap.tasks = wrap.tasks || [];");k.push("wrap.tasks.push(setTimeout(function() {")}k.push("result = fn.call(scope || dom, e, t, options);");if(n.single){k.push("evtMgr.removeListener(dom, ename, fn, scope);")}if(h!=="mousemove"){k.push("if (evtMgr.idleEvent.listeners.length) {");k.push("evtMgr.idleEvent.fire();");k.push("}")}if(n.delay){k.push("}, "+n.delay+"));")}if(n.buffer){k.push("}, "+n.buffer+");")}k.push("return result;");j=Ext.cacheableFunctionFactory("e","options","fn","scope","ename","dom","wrap","args","X","evtMgr",k.join("\n"))}return j.call(i,p,n,l,m,h,i,g,o,Ext,a)};return g},getEventListenerCache:function(i,e){var h,g;if(!i){return[]}if(i.$cache){h=i.$cache}else{h=Ext.cache[a.getId(i)]}g=h.events||(h.events={});return g[e]||(g[e]=[])},mouseLeaveRe:/(mouseout|mouseleave)/,mouseEnterRe:/(mouseover|mouseenter)/,stopEvent:function(e){a.stopPropagation(e);a.preventDefault(e)},stopPropagation:function(e){e=e.browserEvent||e;if(e.stopPropagation){e.stopPropagation()}else{e.cancelBubble=true}},preventDefault:function(g){g=g.browserEvent||g;if(g.preventDefault){g.preventDefault()}else{g.returnValue=false;try{if(g.ctrlKey||g.keyCode>111&&g.keyCode<124){g.keyCode=-1}}catch(h){}}},getRelatedTarget:function(e){e=e.browserEvent||e;var g=e.relatedTarget;if(!g){if(a.mouseLeaveRe.test(e.type)){g=e.toElement}else{if(a.mouseEnterRe.test(e.type)){g=e.fromElement}}}return a.resolveTextNode(g)},getPageX:function(e){return a.getPageXY(e)[0]},getPageY:function(e){return a.getPageXY(e)[1]},getPageXY:function(h){h=h.browserEvent||h;var g=h.pageX,j=h.pageY,i=d.documentElement,e=d.body;if(!g&&g!==0){g=h.clientX+(i&&i.scrollLeft||e&&e.scrollLeft||0)-(i&&i.clientLeft||e&&e.clientLeft||0);j=h.clientY+(i&&i.scrollTop||e&&e.scrollTop||0)-(i&&i.clientTop||e&&e.clientTop||0)}return[g,j]},getTarget:function(e){e=e.browserEvent||e;return a.resolveTextNode(e.target||e.srcElement)},resolveTextNode:Ext.isGecko?function(g){if(!g){return}var e=HTMLElement.prototype.toString.call(g);if(e=="[xpconnect wrapped native prototype]"||e=="[object XULElement]"){return}return g.nodeType==3?g.parentNode:g}:function(e){return e&&e.nodeType==3?e.parentNode:e},curWidth:0,curHeight:0,onWindowResize:function(i,h,g){var e=a.resizeEvent;if(!e){a.resizeEvent=e=new Ext.util.Event();a.on(c,"resize",a.fireResize,null,{buffer:100})}e.addListener(i,h,g)},fireResize:function(){var e=Ext.Element.getViewWidth(),g=Ext.Element.getViewHeight();if(a.curHeight!=g||a.curWidth!=e){a.curHeight=g;a.curWidth=e;a.resizeEvent.fire(e,g)}},removeResizeListener:function(h,g){var e=a.resizeEvent;if(e){e.removeListener(h,g)}},onWindowUnload:function(i,h,g){var e=a.unloadEvent;if(!e){a.unloadEvent=e=new Ext.util.Event();a.addListener(c,"unload",a.fireUnload)}if(i){e.addListener(i,h,g)}},fireUnload:function(){try{d=c=undefined;var m,h,k,j,g;a.unloadEvent.fire();if(Ext.isGecko3){m=Ext.ComponentQuery.query("gridview");h=0;k=m.length;for(;h<k;h++){m[h].scrollToTop()}}g=Ext.cache;for(j in g){if(g.hasOwnProperty(j)){a.removeAll(j)}}}catch(l){}},removeUnloadListener:function(h,g){var e=a.unloadEvent;if(e){e.removeListener(h,g)}},useKeyDown:Ext.isWebKit?parseInt(navigator.userAgent.match(/AppleWebKit\/(\d+)/)[1],10)>=525:!((Ext.isGecko&&!Ext.isWindows)||Ext.isOpera),getKeyEvent:function(){return a.useKeyDown?"keydown":"keypress"}});if(!("addEventListener" in document)&&document.attachEvent){Ext.apply(a,{pollScroll:function(){var g=true;try{document.documentElement.doScroll("left")}catch(h){g=false}if(g&&document.body){a.onReadyEvent({type:"doScroll"})}else{a.scrollTimeout=setTimeout(a.pollScroll,20)}return g},scrollTimeout:null,readyStatesRe:/complete/i,checkReadyState:function(){var e=document.readyState;if(a.readyStatesRe.test(e)){a.onReadyEvent({type:e})}},bindReadyEvent:function(){var g=true;if(a.hasBoundOnReady){return}try{g=window.frameElement===undefined}catch(h){g=false}if(!g||!d.documentElement.doScroll){a.pollScroll=Ext.emptyFn}if(a.pollScroll()===true){return}if(d.readyState=="complete"){a.onReadyEvent({type:"already "+(d.readyState||"body")})}else{d.attachEvent("onreadystatechange",a.checkReadyState);window.attachEvent("onload",a.onReadyEvent);a.hasBoundOnReady=true}},onReadyEvent:function(g){if(g&&g.type){a.onReadyChain.push(g.type)}if(a.hasBoundOnReady){document.detachEvent("onreadystatechange",a.checkReadyState);window.detachEvent("onload",a.onReadyEvent)}if(Ext.isNumber(a.scrollTimeout)){clearTimeout(a.scrollTimeout);delete a.scrollTimeout}if(!Ext.isReady){a.fireDocReady()}},onReadyChain:[]})}Ext.onReady=function(h,g,e){Ext.Loader.onReady(h,g,true,e)};Ext.onDocumentReady=a.onDocumentReady;a.on=a.addListener;a.un=a.removeListener;Ext.onReady(b)};Ext.define("Ext.EventObjectImpl",{uses:["Ext.util.Point"],BACKSPACE:8,TAB:9,NUM_CENTER:12,ENTER:13,RETURN:13,SHIFT:16,CTRL:17,ALT:18,PAUSE:19,CAPS_LOCK:20,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,PRINT_SCREEN:44,INSERT:45,DELETE:46,ZERO:48,ONE:49,TWO:50,THREE:51,FOUR:52,FIVE:53,SIX:54,SEVEN:55,EIGHT:56,NINE:57,A:65,B:66,C:67,D:68,E:69,F:70,G:71,H:72,I:73,J:74,K:75,L:76,M:77,N:78,O:79,P:80,Q:81,R:82,S:83,T:84,U:85,V:86,W:87,X:88,Y:89,Z:90,CONTEXT_MENU:93,NUM_ZERO:96,NUM_ONE:97,NUM_TWO:98,NUM_THREE:99,NUM_FOUR:100,NUM_FIVE:101,NUM_SIX:102,NUM_SEVEN:103,NUM_EIGHT:104,NUM_NINE:105,NUM_MULTIPLY:106,NUM_PLUS:107,NUM_MINUS:109,NUM_PERIOD:110,NUM_DIVISION:111,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,WHEEL_SCALE:(function(){var a;if(Ext.isGecko){a=3}else{if(Ext.isMac){if(Ext.isSafari&&Ext.webKitVersion>=532){a=120}else{a=12}a*=3}else{a=120}}return a}()),clickRe:/(dbl)?click/,safariKeys:{3:13,63234:37,63235:39,63232:38,63233:40,63276:33,63277:34,63272:46,63273:36,63275:35},btnMap:Ext.isIE?{1:0,4:1,2:2}:{0:0,1:1,2:2},constructor:function(a,b){if(a){this.setEvent(a.browserEvent||a,b)}},setEvent:function(d,e){var c=this,b,a;if(d==c||(d&&d.browserEvent)){return d}c.browserEvent=d;if(d){b=d.button?c.btnMap[d.button]:(d.which?d.which-1:-1);if(c.clickRe.test(d.type)&&b==-1){b=0}a={type:d.type,button:b,shiftKey:d.shiftKey,ctrlKey:d.ctrlKey||d.metaKey||false,altKey:d.altKey,keyCode:d.keyCode,charCode:d.charCode,target:Ext.EventManager.getTarget(d),relatedTarget:Ext.EventManager.getRelatedTarget(d),currentTarget:d.currentTarget,xy:(e?c.getXY():null)}}else{a={button:-1,shiftKey:false,ctrlKey:false,altKey:false,keyCode:0,charCode:0,target:null,xy:[0,0]}}Ext.apply(c,a);return c},stopEvent:function(){this.stopPropagation();this.preventDefault()},preventDefault:function(){if(this.browserEvent){Ext.EventManager.preventDefault(this.browserEvent)}},stopPropagation:function(){var a=this.browserEvent;if(a){if(a.type=="mousedown"){Ext.EventManager.stoppedMouseDownEvent.fire(this)}Ext.EventManager.stopPropagation(a)}},getCharCode:function(){return this.charCode||this.keyCode},getKey:function(){return this.normalizeKey(this.keyCode||this.charCode)},normalizeKey:function(a){return Ext.isWebKit?(this.safariKeys[a]||a):a},getPageX:function(){return this.getX()},getPageY:function(){return this.getY()},getX:function(){return this.getXY()[0]},getY:function(){return this.getXY()[1]},getXY:function(){if(!this.xy){this.xy=Ext.EventManager.getPageXY(this.browserEvent)}return this.xy},getTarget:function(b,c,a){if(b){return Ext.fly(this.target).findParent(b,c,a)}return a?Ext.get(this.target):this.target},getRelatedTarget:function(b,c,a){if(b){return Ext.fly(this.relatedTarget).findParent(b,c,a)}return a?Ext.get(this.relatedTarget):this.relatedTarget},correctWheelDelta:function(c){var b=this.WHEEL_SCALE,a=Math.round(c/b);if(!a&&c){a=(c<0)?-1:1}return a},getWheelDeltas:function(){var d=this,c=d.browserEvent,b=0,a=0;if(Ext.isDefined(c.wheelDeltaX)){b=c.wheelDeltaX;a=c.wheelDeltaY}else{if(c.wheelDelta){a=c.wheelDelta}else{if(c.detail){a=-c.detail;if(a>100){a=3}else{if(a<-100){a=-3}}if(Ext.isDefined(c.axis)&&c.axis===c.HORIZONTAL_AXIS){b=a;a=0}}}}return{x:d.correctWheelDelta(b),y:d.correctWheelDelta(a)}},getWheelDelta:function(){var a=this.getWheelDeltas();return a.y},within:function(d,e,b){if(d){var c=e?this.getRelatedTarget():this.getTarget(),a;if(c){a=Ext.fly(d).contains(c);if(!a&&b){a=c==Ext.getDom(d)}return a}}return false},isNavKeyPress:function(){var b=this,a=this.normalizeKey(b.keyCode);return(a>=33&&a<=40)||a==b.RETURN||a==b.TAB||a==b.ESC},isSpecialKey:function(){var a=this.normalizeKey(this.keyCode);return(this.type=="keypress"&&this.ctrlKey)||this.isNavKeyPress()||(a==this.BACKSPACE)||(a>=16&&a<=20)||(a>=44&&a<=46)},getPoint:function(){var a=this.getXY();return new Ext.util.Point(a[0],a[1])},hasModifier:function(){return this.ctrlKey||this.altKey||this.shiftKey||this.metaKey},injectEvent:(function(){var d,e={},c;if(!Ext.isIE&&document.createEvent){d={createHtmlEvent:function(k,i,h,g){var j=k.createEvent("HTMLEvents");j.initEvent(i,h,g);return j},createMouseEvent:function(u,s,m,l,o,k,i,j,g,r,q,n,p){var h=u.createEvent("MouseEvents"),t=u.defaultView||window;if(h.initMouseEvent){h.initMouseEvent(s,m,l,t,o,k,i,k,i,j,g,r,q,n,p)}else{h=u.createEvent("UIEvents");h.initEvent(s,m,l);h.view=t;h.detail=o;h.screenX=k;h.screenY=i;h.clientX=k;h.clientY=i;h.ctrlKey=j;h.altKey=g;h.metaKey=q;h.shiftKey=r;h.button=n;h.relatedTarget=p}return h},createUIEvent:function(m,k,i,h,j){var l=m.createEvent("UIEvents"),g=m.defaultView||window;l.initUIEvent(k,i,h,g,j);return l},fireEvent:function(i,g,h){i.dispatchEvent(h)},fixTarget:function(g){if(g==window&&!g.dispatchEvent){return document}return g}}}else{if(document.createEventObject){c={0:1,1:4,2:2};d={createHtmlEvent:function(k,i,h,g){var j=k.createEventObject();j.bubbles=h;j.cancelable=g;return j},createMouseEvent:function(t,s,m,l,o,k,i,j,g,r,q,n,p){var h=t.createEventObject();h.bubbles=m;h.cancelable=l;h.detail=o;h.screenX=k;h.screenY=i;h.clientX=k;h.clientY=i;h.ctrlKey=j;h.altKey=g;h.shiftKey=r;h.metaKey=q;h.button=c[n]||n;h.relatedTarget=p;return h},createUIEvent:function(l,j,h,g,i){var k=l.createEventObject();k.bubbles=h;k.cancelable=g;return k},fireEvent:function(i,g,h){i.fireEvent("on"+g,h)},fixTarget:function(g){if(g==document){return document.documentElement}return g}}}}Ext.Object.each({load:[false,false],unload:[false,false],select:[true,false],change:[true,false],submit:[true,true],reset:[true,false],resize:[true,false],scroll:[true,false]},function(i,j){var h=j[0],g=j[1];e[i]=function(m,k){var l=d.createHtmlEvent(i,h,g);d.fireEvent(m,i,l)}});function b(i,h){var g=(i!="mousemove");return function(m,j){var l=j.getXY(),k=d.createMouseEvent(m.ownerDocument,i,true,g,h,l[0],l[1],j.ctrlKey,j.altKey,j.shiftKey,j.metaKey,j.button,j.relatedTarget);d.fireEvent(m,i,k)}}Ext.each(["click","dblclick","mousedown","mouseup","mouseover","mousemove","mouseout"],function(g){e[g]=b(g,1)});Ext.Object.each({focusin:[true,false],focusout:[true,false],activate:[true,true],focus:[false,false],blur:[false,false]},function(i,j){var h=j[0],g=j[1];e[i]=function(m,k){var l=d.createUIEvent(m.ownerDocument,i,h,g,1);d.fireEvent(m,i,l)}});if(!d){e={};d={fixTarget:function(g){return g}}}function a(h,g){}return function(j){var i=this,h=e[i.type]||a,g=j?(j.dom||j):i.getTarget();g=d.fixTarget(g);h(g,i)}}())},function(){Ext.EventObject=new Ext.EventObjectImpl()});Ext.define("Ext.dom.AbstractQuery",{select:function(k,b){var h=[],d,g,e,c,a;b=b||document;if(typeof b=="string"){b=document.getElementById(b)}k=k.split(",");for(g=0,c=k.length;g<c;g++){if(typeof k[g]=="string"){if(typeof k[g][0]=="@"){d=b.getAttributeNode(k[g].substring(1));h.push(d)}else{d=b.querySelectorAll(k[g]);for(e=0,a=d.length;e<a;e++){h.push(d[e])}}}}return h},selectNode:function(b,a){return this.select(b,a)[0]},is:function(a,b){if(typeof a=="string"){a=document.getElementById(a)}return this.select(b).indexOf(a)!==-1}});Ext.define("Ext.dom.AbstractHelper",{emptyTags:/^(?:br|frame|hr|img|input|link|meta|range|spacer|wbr|area|param|col)$/i,confRe:/(?:tag|children|cn|html|tpl|tplData)$/i,endRe:/end/i,attributeTransform:{cls:"class",htmlFor:"for"},closeTags:{},decamelizeName:(function(){var c=/([a-z])([A-Z])/g,b={};function a(d,g,e){return g+"-"+e.toLowerCase()}return function(d){return b[d]||(b[d]=d.replace(c,a))}}()),generateMarkup:function(d,c){var h=this,b,j,a,e,g;if(typeof d=="string"){c.push(d)}else{if(Ext.isArray(d)){for(e=0;e<d.length;e++){if(d[e]){h.generateMarkup(d[e],c)}}}else{a=d.tag||"div";c.push("<",a);for(b in d){if(d.hasOwnProperty(b)){j=d[b];if(!h.confRe.test(b)){if(typeof j=="object"){c.push(" ",b,'="');h.generateStyles(j,c).push('"')}else{c.push(" ",h.attributeTransform[b]||b,'="',j,'"')}}}}if(h.emptyTags.test(a)){c.push("/>")}else{c.push(">");if((j=d.tpl)){j.applyOut(d.tplData,c)}if((j=d.html)){c.push(j)}if((j=d.cn||d.children)){h.generateMarkup(j,c)}g=h.closeTags;c.push(g[a]||(g[a]="</"+a+">"))}}}return c},generateStyles:function(e,c){var b=c||[],d;for(d in e){if(e.hasOwnProperty(d)){b.push(this.decamelizeName(d),":",e[d],";")}}return c||b.join("")},markup:function(a){if(typeof a=="string"){return a}var b=this.generateMarkup(a,[]);return b.join("")},applyStyles:function(d,e){if(e){var b=0,a,c;d=Ext.fly(d);if(typeof e=="function"){e=e.call()}if(typeof e=="string"){e=Ext.util.Format.trim(e).split(/\s*(?::|;)\s*/);for(a=e.length;b<a;){d.setStyle(e[b++],e[b++])}}else{if(Ext.isObject(e)){d.setStyle(e)}}}},insertHtml:function(g,a,h){var e={},c,j,i,k,d,b;g=g.toLowerCase();e.beforebegin=["BeforeBegin","previousSibling"];e.afterend=["AfterEnd","nextSibling"];i=a.ownerDocument.createRange();j="setStart"+(this.endRe.test(g)?"After":"Before");if(e[g]){i[j](a);k=i.createContextualFragment(h);a.parentNode.insertBefore(k,g=="beforebegin"?a:a.nextSibling);return a[(g=="beforebegin"?"previous":"next")+"Sibling"]}else{d=(g=="afterbegin"?"first":"last")+"Child";if(a.firstChild){i[j](a[d]);k=i.createContextualFragment(h);if(g=="afterbegin"){a.insertBefore(k,a.firstChild)}else{a.appendChild(k)}}else{a.innerHTML=h}return a[d]}throw'Illegal insertion point -> "'+g+'"'},insertBefore:function(a,c,b){return this.doInsert(a,c,b,"beforebegin")},insertAfter:function(a,c,b){return this.doInsert(a,c,b,"afterend","nextSibling")},insertFirst:function(a,c,b){return this.doInsert(a,c,b,"afterbegin","firstChild")},append:function(a,c,b){return this.doInsert(a,c,b,"beforeend","",true)},overwrite:function(a,c,b){a=Ext.getDom(a);a.innerHTML=this.markup(c);return b?Ext.get(a.firstChild):a.firstChild},doInsert:function(d,g,e,h,c,a){var b=this.insertHtml(h,Ext.getDom(d),this.markup(g));return e?Ext.get(b,true):b}});(function(){var a=window.document,b=/^\s+|\s+$/g,c=/\s/;if(!Ext.cache){Ext.cache={}}Ext.define("Ext.dom.AbstractElement",{inheritableStatics:{get:function(e){var g=this,h=Ext.dom.Element,d,j,i,k;if(!e){return null}if(typeof e=="string"){if(e==Ext.windowId){return h.get(window)}else{if(e==Ext.documentId){return h.get(a)}}d=Ext.cache[e];if(d&&d.skipGarbageCollection){j=d.el;return j}if(!(i=a.getElementById(e))){return null}if(d&&d.el){j=Ext.updateCacheEntry(d,i).el}else{j=new h(i,!!d)}return j}else{if(e.tagName){if(!(k=e.id)){k=Ext.id(e)}d=Ext.cache[k];if(d&&d.el){j=Ext.updateCacheEntry(d,e).el}else{j=new h(e,!!d)}return j}else{if(e instanceof g){if(e!=g.docEl&&e!=g.winEl){k=e.id;d=Ext.cache[k];if(d){Ext.updateCacheEntry(d,a.getElementById(k)||e.dom)}}return e}else{if(e.isComposite){return e}else{if(Ext.isArray(e)){return g.select(e)}else{if(e===a){if(!g.docEl){g.docEl=Ext.Object.chain(h.prototype);g.docEl.dom=a;g.docEl.id=Ext.id(a);g.addToCache(g.docEl)}return g.docEl}else{if(e===window){if(!g.winEl){g.winEl=Ext.Object.chain(h.prototype);g.winEl.dom=window;g.winEl.id=Ext.id(window);g.addToCache(g.winEl)}return g.winEl}}}}}}}return null},addToCache:function(d,e){if(d){Ext.addCacheEntry(e,d)}return d},addMethods:function(){this.override.apply(this,arguments)},mergeClsList:function(){var n,m={},k,d,g,l,e,o=[],h=false;for(k=0,d=arguments.length;k<d;k++){n=arguments[k];if(Ext.isString(n)){n=n.replace(b,"").split(c)}if(n){for(g=0,l=n.length;g<l;g++){e=n[g];if(!m[e]){if(k){h=true}m[e]=true}}}}for(e in m){o.push(e)}o.changed=h;return o},removeCls:function(g,l){var e={},h,k,j,d=[],m=false;if(g){if(Ext.isString(g)){g=g.replace(b,"").split(c)}for(h=0,k=g.length;h<k;h++){e[g[h]]=true}}if(l){if(Ext.isString(l)){l=l.split(c)}for(h=0,k=l.length;h<k;h++){j=l[h];if(e[j]){m=true;delete e[j]}}}for(j in e){d.push(j)}d.changed=m;return d},VISIBILITY:1,DISPLAY:2,OFFSETS:3,ASCLASS:4},constructor:function(d,e){var g=this,h=typeof d=="string"?a.getElementById(d):d,i;if(!h){return null}i=h.id;if(!e&&i&&Ext.cache[i]){return Ext.cache[i].el}g.dom=h;g.id=i||Ext.id(h);g.self.addToCache(g)},set:function(i,e){var g=this.dom,d,h;for(d in i){if(i.hasOwnProperty(d)){h=i[d];if(d=="style"){this.applyStyles(h)}else{if(d=="cls"){g.className=h}else{if(e!==false){if(h===undefined){g.removeAttribute(d)}else{g.setAttribute(d,h)}}else{g[d]=h}}}}}return this},defaultUnit:"px",is:function(d){return Ext.DomQuery.is(this.dom,d)},getValue:function(d){var e=this.dom.value;return d?parseInt(e,10):e},remove:function(){var d=this,e=d.dom;if(e){Ext.removeNode(e);delete d.dom}},contains:function(d){if(!d){return false}var e=this,g=d.dom||d;return(g===e.dom)||Ext.dom.AbstractElement.isAncestor(e.dom,g)},getAttribute:function(d,e){var g=this.dom;return g.getAttributeNS(e,d)||g.getAttribute(e+":"+d)||g.getAttribute(d)||g[d]},update:function(d){if(this.dom){this.dom.innerHTML=d}return this},setHTML:function(d){if(this.dom){this.dom.innerHTML=d}return this},getHTML:function(){return this.dom?this.dom.innerHTML:""},hide:function(){this.setVisible(false);return this},show:function(){this.setVisible(true);return this},setVisible:function(j,d){var e=this,i=e.self,h=e.getVisibilityMode(),g=Ext.baseCSSPrefix;switch(h){case i.VISIBILITY:e.removeCls([g+"hidden-display",g+"hidden-offsets"]);e[j?"removeCls":"addCls"](g+"hidden-visibility");break;case i.DISPLAY:e.removeCls([g+"hidden-visibility",g+"hidden-offsets"]);e[j?"removeCls":"addCls"](g+"hidden-display");break;case i.OFFSETS:e.removeCls([g+"hidden-visibility",g+"hidden-display"]);e[j?"removeCls":"addCls"](g+"hidden-offsets");break}return e},getVisibilityMode:function(){var e=(this.$cache||this.getCache()).data,d=e.visibilityMode;if(d===undefined){e.visibilityMode=d=this.self.DISPLAY}return d},setVisibilityMode:function(d){(this.$cache||this.getCache()).data.visibilityMode=d;return this},getCache:function(){var d=this,e=d.dom.id||Ext.id(d.dom);d.$cache=Ext.cache[e]||Ext.addCacheEntry(e,null,d.dom);return d.$cache}},function(){var d=this;Ext.getDetachedBody=function(){var e=d.detachedBodyEl;if(!e){e=a.createElement("div");d.detachedBodyEl=e=new d.Fly(e);e.isDetachedBody=true}return e};Ext.getElementById=function(h){var g=a.getElementById(h),e;if(!g&&(e=d.detachedBodyEl)){g=e.dom.querySelector("#"+Ext.escapeId(h))}return g};Ext.get=function(e){return Ext.dom.Element.get(e)};this.addStatics({Fly:new Ext.Class({extend:d,isFly:true,constructor:function(e){this.dom=e},attach:function(e){this.dom=e;this.$cache=e.id?Ext.cache[e.id]:null;return this}}),_flyweights:{},fly:function(i,g){var h=null,e=d._flyweights;g=g||"_global";i=Ext.getDom(i);if(i){h=e[g]||(e[g]=new d.Fly());h.dom=i;h.$cache=i.id?Ext.cache[i.id]:null}return h}});Ext.fly=function(){return d.fly.apply(d,arguments)};(function(e){e.destroy=e.remove;if(a.querySelector){e.getById=function(i,g){var h=a.getElementById(i)||this.dom.querySelector("#"+Ext.escapeId(i));return g?h:(h?Ext.get(h):null)}}else{e.getById=function(i,g){var h=a.getElementById(i);return g?h:(h?Ext.get(h):null)}}}(this.prototype))})}());Ext.dom.AbstractElement.addInheritableStatics({unitRe:/\d+(px|em|%|en|ex|pt|in|cm|mm|pc)$/i,camelRe:/(-[a-z])/gi,cssRe:/([a-z0-9\-]+)\s*:\s*([^;\s]+(?:\s*[^;\s]+)*);?/gi,opacityRe:/alpha\(opacity=(.*)\)/i,propertyCache:{},defaultUnit:"px",borders:{l:"border-left-width",r:"border-right-width",t:"border-top-width",b:"border-bottom-width"},paddings:{l:"padding-left",r:"padding-right",t:"padding-top",b:"padding-bottom"},margins:{l:"margin-left",r:"margin-right",t:"margin-top",b:"margin-bottom"},addUnits:function(b,a){if(typeof b=="number"){return b+(a||this.defaultUnit||"px")}if(b===""||b=="auto"||b===undefined||b===null){return b||""}if(!this.unitRe.test(b)){return b||""}return b},isAncestor:function(b,d){var a=false;b=Ext.getDom(b);d=Ext.getDom(d);if(b&&d){if(b.contains){return b.contains(d)}else{if(b.compareDocumentPosition){return !!(b.compareDocumentPosition(d)&16)}else{while((d=d.parentNode)){a=d==b||a}}}}return a},parseBox:function(b){if(typeof b!="string"){b=b.toString()}var c=b.split(" "),a=c.length;if(a==1){c[1]=c[2]=c[3]=c[0]}else{if(a==2){c[2]=c[0];c[3]=c[1]}else{if(a==3){c[3]=c[1]}}}return{top:parseFloat(c[0])||0,right:parseFloat(c[1])||0,bottom:parseFloat(c[2])||0,left:parseFloat(c[3])||0}},unitizeBox:function(g,e){var d=this.addUnits,c=this.parseBox(g);return d(c.top,e)+" "+d(c.right,e)+" "+d(c.bottom,e)+" "+d(c.left,e)},camelReplaceFn:function(b,c){return c.charAt(1).toUpperCase()},normalize:function(a){if(a=="float"){a=Ext.supports.Float?"cssFloat":"styleFloat"}return this.propertyCache[a]||(this.propertyCache[a]=a.replace(this.camelRe,this.camelReplaceFn))},getDocumentHeight:function(){return Math.max(!Ext.isStrict?document.body.scrollHeight:document.documentElement.scrollHeight,this.getViewportHeight())},getDocumentWidth:function(){return Math.max(!Ext.isStrict?document.body.scrollWidth:document.documentElement.scrollWidth,this.getViewportWidth())},getViewportHeight:function(){return window.innerHeight},getViewportWidth:function(){return window.innerWidth},getViewSize:function(){return{width:window.innerWidth,height:window.innerHeight}},getOrientation:function(){if(Ext.supports.OrientationChange){return(window.orientation==0)?"portrait":"landscape"}return(window.innerHeight>window.innerWidth)?"portrait":"landscape"},fromPoint:function(a,b){return Ext.get(document.elementFromPoint(a,b))},parseStyles:function(c){var a={},b=this.cssRe,d;if(c){b.lastIndex=0;while((d=b.exec(c))){a[d[1]]=d[2]}}return a}});(function(){var g=document,a=Ext.dom.AbstractElement,e=null,d=g.compatMode=="CSS1Compat",c,b=function(i){if(!c){c=new a.Fly()}c.attach(i);return c};if(!("activeElement" in g)&&g.addEventListener){g.addEventListener("focus",function(i){if(i&&i.target){e=(i.target==g)?null:i.target}},true)}function h(j,k,i){return function(){j.selectionStart=k;j.selectionEnd=i}}a.addInheritableStatics({getActiveElement:function(){return g.activeElement||e},getRightMarginFixCleaner:function(n){var k=Ext.supports,l=k.DisplayChangeInputSelectionBug,m=k.DisplayChangeTextAreaSelectionBug,o,i,p,j;if(l||m){o=g.activeElement||e;i=o&&o.tagName;if((m&&i=="TEXTAREA")||(l&&i=="INPUT"&&o.type=="text")){if(Ext.dom.Element.isAncestor(n,o)){p=o.selectionStart;j=o.selectionEnd;if(Ext.isNumber(p)&&Ext.isNumber(j)){return h(o,p,j)}}}}return Ext.emptyFn},getViewWidth:function(i){return i?Ext.dom.Element.getDocumentWidth():Ext.dom.Element.getViewportWidth()},getViewHeight:function(i){return i?Ext.dom.Element.getDocumentHeight():Ext.dom.Element.getViewportHeight()},getDocumentHeight:function(){return Math.max(!d?g.body.scrollHeight:g.documentElement.scrollHeight,Ext.dom.Element.getViewportHeight())},getDocumentWidth:function(){return Math.max(!d?g.body.scrollWidth:g.documentElement.scrollWidth,Ext.dom.Element.getViewportWidth())},getViewportHeight:function(){return Ext.isIE?(Ext.isStrict?g.documentElement.clientHeight:g.body.clientHeight):self.innerHeight},getViewportWidth:function(){return(!Ext.isStrict&&!Ext.isOpera)?g.body.clientWidth:Ext.isIE?g.documentElement.clientWidth:self.innerWidth},getY:function(i){return Ext.dom.Element.getXY(i)[1]},getX:function(i){return Ext.dom.Element.getXY(i)[0]},getXY:function(k){var n=g.body,j=g.documentElement,i=0,l=0,o=[0,0],r=Math.round,m,q;k=Ext.getDom(k);if(k!=g&&k!=n){if(Ext.isIE){try{m=k.getBoundingClientRect();l=j.clientTop||n.clientTop;i=j.clientLeft||n.clientLeft}catch(p){m={left:0,top:0}}}else{m=k.getBoundingClientRect()}q=b(document).getScroll();o=[r(m.left+q.left-i),r(m.top+q.top-l)]}return o},setXY:function(j,k){(j=Ext.fly(j,"_setXY")).position();var l=j.translatePoints(k),i=j.dom.style,m;for(m in l){if(!isNaN(l[m])){i[m]=l[m]+"px"}}},setX:function(j,i){Ext.dom.Element.setXY(j,[i,false])},setY:function(i,j){Ext.dom.Element.setXY(i,[false,j])},serializeForm:function(k){var l=k.elements||(document.forms[k]||Ext.getDom(k)).elements,v=false,u=encodeURIComponent,p="",n=l.length,q,i,t,x,w,r,m,s,j;for(r=0;r<n;r++){q=l[r];i=q.name;t=q.type;x=q.options;if(!q.disabled&&i){if(/select-(one|multiple)/i.test(t)){s=x.length;for(m=0;m<s;m++){j=x[m];if(j.selected){w=j.hasAttribute?j.hasAttribute("value"):j.getAttributeNode("value").specified;p+=Ext.String.format("{0}={1}&",u(i),u(w?j.value:j.text))}}}else{if(!(/file|undefined|reset|button/i.test(t))){if(!(/radio|checkbox/i.test(t)&&!q.checked)&&!(t=="submit"&&v)){p+=u(i)+"="+u(q.value)+"&";v=/submit/i.test(t)}}}}}return p.substr(0,p.length-1)}})}());Ext.dom.AbstractElement.override({getAnchorXY:function(g,k,n){g=(g||"tl").toLowerCase();n=n||{};var j=this,a=j.dom==document.body||j.dom==document,b=n.width||a?window.innerWidth:j.getWidth(),l=n.height||a?window.innerHeight:j.getHeight(),m,c=Math.round,d=j.getXY(),i=a?0:!k?d[0]:0,h=a?0:!k?d[1]:0,e={c:[c(b*0.5),c(l*0.5)],t:[c(b*0.5),0],l:[0,c(l*0.5)],r:[b,c(l*0.5)],b:[c(b*0.5),l],tl:[0,0],bl:[0,l],br:[b,l],tr:[b,0]};m=e[g];return[m[0]+i,m[1]+h]},alignToRe:/^([a-z]+)-([a-z]+)(\?)?$/,getAlignToXY:function(e,z,i,s){s=!!s;e=Ext.get(e);i=i||[0,0];if(!z||z=="?"){z="tl-bl?"}else{if(!(/-/).test(z)&&z!==""){z="tl-"+z}}z=z.toLowerCase();var v=this,d=z.match(this.alignToRe),n=window.innerWidth,u=window.innerHeight,c="",b="",A,w,m,l,q,o,g,a,k,j,r,p,h,t;if(!d){throw"Element.alignTo with an invalid alignment "+z}c=d[1];b=d[2];t=!!d[3];A=v.getAnchorXY(c,true);w=e.getAnchorXY(b,s);m=w[0]-A[0]+i[0];l=w[1]-A[1]+i[1];if(t){r=v.getWidth();p=v.getHeight();h=e.getPageBox();a=c.charAt(0);g=c.charAt(c.length-1);j=b.charAt(0);k=b.charAt(b.length-1);o=((a=="t"&&j=="b")||(a=="b"&&j=="t"));q=((g=="r"&&k=="l")||(g=="l"&&k=="r"));if(m+r>n){m=q?h.left-r:n-r}if(m<0){m=q?h.right:0}if(l+p>u){l=o?h.top-p:u-p}if(l<0){l=o?h.bottom:0}}return[m,l]},getAnchor:function(){var b=(this.$cache||this.getCache()).data,a;if(!this.dom){return}a=b._anchor;if(!a){a=b._anchor={}}return a},adjustForConstraints:function(c,b){var a=this.getConstrainVector(b,c);if(a){c[0]+=a[0];c[1]+=a[1]}return c}});Ext.dom.AbstractElement.addMethods({appendChild:function(a){return Ext.get(a).appendTo(this)},appendTo:function(a){Ext.getDom(a).appendChild(this.dom);return this},insertBefore:function(a){a=Ext.getDom(a);a.parentNode.insertBefore(this.dom,a);return this},insertAfter:function(a){a=Ext.getDom(a);a.parentNode.insertBefore(this.dom,a.nextSibling);return this},insertFirst:function(b,a){b=b||{};if(b.nodeType||b.dom||typeof b=="string"){b=Ext.getDom(b);this.dom.insertBefore(b,this.dom.firstChild);return !a?Ext.get(b):b}else{return this.createChild(b,this.dom.firstChild,a)}},insertSibling:function(b,g,j){var i=this,k=(g||"before").toLowerCase()=="after",d,a,c,h;if(Ext.isArray(b)){a=i;c=b.length;for(h=0;h<c;h++){d=Ext.fly(a,"_internal").insertSibling(b[h],g,j);if(k){a=d}}return d}b=b||{};if(b.nodeType||b.dom){d=i.dom.parentNode.insertBefore(Ext.getDom(b),k?i.dom.nextSibling:i.dom);if(!j){d=Ext.get(d)}}else{if(k&&!i.dom.nextSibling){d=Ext.core.DomHelper.append(i.dom.parentNode,b,!j)}else{d=Ext.core.DomHelper[k?"insertAfter":"insertBefore"](i.dom,b,!j)}}return d},replace:function(a){a=Ext.get(a);this.insertBefore(a);a.remove();return this},replaceWith:function(a){var b=this;if(a.nodeType||a.dom||typeof a=="string"){a=Ext.get(a);b.dom.parentNode.insertBefore(a,b.dom)}else{a=Ext.core.DomHelper.insertBefore(b.dom,a)}delete Ext.cache[b.id];Ext.removeNode(b.dom);b.id=Ext.id(b.dom=a);Ext.dom.AbstractElement.addToCache(b.isFlyweight?new Ext.dom.AbstractElement(b.dom):b);return b},createChild:function(b,a,c){b=b||{tag:"div"};if(a){return Ext.core.DomHelper.insertBefore(a,b,c!==true)}else{return Ext.core.DomHelper[!this.dom.firstChild?"insertFirst":"append"](this.dom,b,c!==true)}},wrap:function(b,c,a){var e=Ext.core.DomHelper.insertBefore(this.dom,b||{tag:"div"},true),d=e;if(a){d=Ext.DomQuery.selectNode(a,e.dom)}d.appendChild(this.dom);return c?e.dom:e},insertHtml:function(b,c,a){var d=Ext.core.DomHelper.insertHtml(b,this.dom,c);return a?Ext.get(d):d}});(function(){var a=Ext.dom.AbstractElement;a.override({getX:function(b){return this.getXY(b)[0]},getY:function(b){return this.getXY(b)[1]},getXY:function(){var b=window.webkitConvertPointFromNodeToPage(this.dom,new WebKitPoint(0,0));return[b.x,b.y]},getOffsetsTo:function(b){var d=this.getXY(),c=Ext.fly(b,"_internal").getXY();return[d[0]-c[0],d[1]-c[1]]},setX:function(b){return this.setXY([b,this.getY()])},setY:function(b){return this.setXY([this.getX(),b])},setLeft:function(b){this.setStyle("left",a.addUnits(b));return this},setTop:function(b){this.setStyle("top",a.addUnits(b));return this},setRight:function(b){this.setStyle("right",a.addUnits(b));return this},setBottom:function(b){this.setStyle("bottom",a.addUnits(b));return this},setXY:function(g){var c=this,e,b,d;if(arguments.length>1){g=[g,arguments[1]]}e=c.translatePoints(g);b=c.dom.style;for(d in e){if(!e.hasOwnProperty(d)){continue}if(!isNaN(e[d])){b[d]=e[d]+"px"}}return c},getLeft:function(b){return parseInt(this.getStyle("left"),10)||0},getRight:function(b){return parseInt(this.getStyle("right"),10)||0},getTop:function(b){return parseInt(this.getStyle("top"),10)||0},getBottom:function(b){return parseInt(this.getStyle("bottom"),10)||0},translatePoints:function(b,i){i=isNaN(b[1])?i:b[1];b=isNaN(b[0])?b:b[0];var e=this,g=e.isStyle("position","relative"),h=e.getXY(),c=parseInt(e.getStyle("left"),10),d=parseInt(e.getStyle("top"),10);c=!isNaN(c)?c:(g?0:e.dom.offsetLeft);d=!isNaN(d)?d:(g?0:e.dom.offsetTop);return{left:(b-h[0]+c),top:(i-h[1]+d)}},setBox:function(e){var d=this,c=e.width,b=e.height,h=e.top,g=e.left;if(g!==undefined){d.setLeft(g)}if(h!==undefined){d.setTop(h)}if(c!==undefined){d.setWidth(c)}if(b!==undefined){d.setHeight(b)}return this},getBox:function(i,m){var j=this,g=j.dom,d=g.offsetWidth,n=g.offsetHeight,p,h,e,c,o,k;if(!m){p=j.getXY()}else{if(i){p=[0,0]}else{p=[parseInt(j.getStyle("left"),10)||0,parseInt(j.getStyle("top"),10)||0]}}if(!i){h={x:p[0],y:p[1],0:p[0],1:p[1],width:d,height:n}}else{e=j.getBorderWidth.call(j,"l")+j.getPadding.call(j,"l");c=j.getBorderWidth.call(j,"r")+j.getPadding.call(j,"r");o=j.getBorderWidth.call(j,"t")+j.getPadding.call(j,"t");k=j.getBorderWidth.call(j,"b")+j.getPadding.call(j,"b");h={x:p[0]+e,y:p[1]+o,0:p[0]+e,1:p[1]+o,width:d-(e+c),height:n-(o+k)}}h.left=h.x;h.top=h.y;h.right=h.x+h.width;h.bottom=h.y+h.height;return h},getPageBox:function(g){var j=this,d=j.dom,m=d.offsetWidth,i=d.offsetHeight,o=j.getXY(),n=o[1],c=o[0]+m,k=o[1]+i,e=o[0];if(!d){return new Ext.util.Region()}if(g){return new Ext.util.Region(n,c,k,e)}else{return{left:e,top:n,width:m,height:i,right:c,bottom:k}}}})}());(function(){var q=Ext.dom.AbstractElement,o=document.defaultView,n=Ext.Array,m=/^\s+|\s+$/g,b=/\w/g,p=/\s+/,t=/^(?:transparent|(?:rgba[(](?:\s*\d+\s*[,]){3}\s*0\s*[)]))$/i,h=Ext.supports.ClassList,e="padding",d="margin",s="border",k="-left",r="-right",l="-top",c="-bottom",i="-width",j={l:s+k+i,r:s+r+i,t:s+l+i,b:s+c+i},g={l:e+k,r:e+r,t:e+l,b:e+c},a={l:d+k,r:d+r,t:d+l,b:d+c};q.override({styleHooks:{},addStyles:function(B,A){var w=0,z=(B||"").match(b),y,u=z.length,x,v=[];if(u==1){w=Math.abs(parseFloat(this.getStyle(A[z[0]]))||0)}else{if(u){for(y=0;y<u;y++){x=z[y];v.push(A[x])}v=this.getStyle(v);for(y=0;y<u;y++){x=z[y];w+=Math.abs(parseFloat(v[A[x]])||0)}}}return w},addCls:h?function(x){var z=this,B=z.dom,A,y,w,u,v;if(typeof(x)=="string"){x=x.replace(m,"").split(p)}if(B&&x&&!!(u=x.length)){if(!B.className){B.className=x.join(" ")}else{A=B.classList;for(w=0;w<u;++w){v=x[w];if(v){if(!A.contains(v)){if(y){y.push(v)}else{y=B.className.replace(m,"");y=y?[y,v]:[v]}}}}if(y){B.className=y.join(" ")}}}return z}:function(v){var w=this,y=w.dom,x,u;if(y&&v&&v.length){u=Ext.Element.mergeClsList(y.className,v);if(u.changed){y.className=u.join(" ")}}return w},removeCls:function(w){var x=this,y=x.dom,u,v;if(typeof(w)=="string"){w=w.replace(m,"").split(p)}if(y&&y.className&&w&&!!(u=w.length)){if(u==1&&h){if(w[0]){y.classList.remove(w[0])}}else{v=Ext.Element.removeCls(y.className,w);if(v.changed){y.className=v.join(" ")}}}return x},radioCls:function(y){var z=this.dom.parentNode.childNodes,w,x,u;y=Ext.isArray(y)?y:[y];for(x=0,u=z.length;x<u;x++){w=z[x];if(w&&w.nodeType==1){Ext.fly(w,"_internal").removeCls(y)}}return this.addCls(y)},toggleCls:h?function(u){var v=this,w=v.dom;if(w){u=u.replace(m,"");if(u){w.classList.toggle(u)}}return v}:function(u){var v=this;return v.hasCls(u)?v.removeCls(u):v.addCls(u)},hasCls:h?function(u){var v=this.dom;return(v&&u)?v.classList.contains(u):false}:function(u){var v=this.dom;return v?u&&(" "+v.className+" ").indexOf(" "+u+" ")!=-1:false},replaceCls:function(v,u){return this.removeCls(v).addCls(u)},isStyle:function(u,v){return this.getStyle(u)==v},getStyle:function(G,B){var C=this,x=C.dom,J=typeof G!="string",H=C.styleHooks,v=G,D=v,A=1,z,I,F,E,w,u,y;if(J){F={};v=D[0];y=0;if(!(A=D.length)){return F}}if(!x||x.documentElement){return F||""}z=x.style;if(B){u=z}else{u=x.ownerDocument.defaultView.getComputedStyle(x,null);if(!u){B=true;u=z}}do{E=H[v];if(!E){H[v]=E={name:q.normalize(v)}}if(E.get){w=E.get(x,C,B,u)}else{I=E.name;w=u[I]}if(!J){return w}F[v]=w;v=D[++y]}while(y<A);return F},getStyles:function(){var v=Ext.Array.slice(arguments),u=v.length,w;if(u&&typeof v[u-1]=="boolean"){w=v.pop()}return this.getStyle(v,w)},isTransparent:function(v){var u=this.getStyle(v);return u?t.test(u):false},setStyle:function(B,z){var x=this,A=x.dom,u=x.styleHooks,w=A.style,v=B,y;if(typeof v=="string"){y=u[v];if(!y){u[v]=y={name:q.normalize(v)}}z=(z==null)?"":z;if(y.set){y.set(A,z,x)}else{w[y.name]=z}if(y.afterSet){y.afterSet(A,z,x)}}else{for(v in B){if(B.hasOwnProperty(v)){y=u[v];if(!y){u[v]=y={name:q.normalize(v)}}z=B[v];z=(z==null)?"":z;if(y.set){y.set(A,z,x)}else{w[y.name]=z}if(y.afterSet){y.afterSet(A,z,x)}}}}return x},getHeight:function(v){var w=this.dom,u=v?(w.clientHeight-this.getPadding("tb")):w.offsetHeight;return u>0?u:0},getWidth:function(u){var w=this.dom,v=u?(w.clientWidth-this.getPadding("lr")):w.offsetWidth;return v>0?v:0},setWidth:function(u){var v=this;v.dom.style.width=q.addUnits(u);return v},setHeight:function(u){var v=this;v.dom.style.height=q.addUnits(u);return v},getBorderWidth:function(u){return this.addStyles(u,j)},getPadding:function(u){return this.addStyles(u,g)},margins:a,applyStyles:function(w){if(w){var v,u,x=this.dom;if(typeof w=="function"){w=w.call()}if(typeof w=="string"){w=Ext.util.Format.trim(w).split(/\s*(?::|;)\s*/);for(v=0,u=w.length;v<u;){x.style[q.normalize(w[v++])]=w[v++]}}else{if(typeof w=="object"){this.setStyle(w)}}}},setSize:function(w,u){var x=this,v=x.dom.style;if(Ext.isObject(w)){u=w.height;w=w.width}v.width=q.addUnits(w);v.height=q.addUnits(u);return x},getViewSize:function(){var u=document,v=this.dom;if(v==u||v==u.body){return{width:q.getViewportWidth(),height:q.getViewportHeight()}}else{return{width:v.clientWidth,height:v.clientHeight}}},getSize:function(v){var u=this.dom;return{width:Math.max(0,v?(u.clientWidth-this.getPadding("lr")):u.offsetWidth),height:Math.max(0,v?(u.clientHeight-this.getPadding("tb")):u.offsetHeight)}},repaint:function(){var u=this.dom;this.addCls(Ext.baseCSSPrefix+"repaint");setTimeout(function(){Ext.fly(u).removeCls(Ext.baseCSSPrefix+"repaint")},1);return this},getMargin:function(v){var w=this,y={t:"top",l:"left",r:"right",b:"bottom"},u,z,x;if(!v){x=[];for(u in w.margins){if(w.margins.hasOwnProperty(u)){x.push(w.margins[u])}}z=w.getStyle(x);if(z&&typeof z=="object"){for(u in w.margins){if(w.margins.hasOwnProperty(u)){z[y[u]]=parseFloat(z[w.margins[u]])||0}}}return z}else{return w.addStyles.call(w,v,w.margins)}},mask:function(v,z,D){var A=this,w=A.dom,x=(A.$cache||A.getCache()).data,u=x.mask,E,C,B="",y=Ext.baseCSSPrefix;A.addCls(y+"masked");if(A.getStyle("position")=="static"){A.addCls(y+"masked-relative")}if(u){u.remove()}if(z&&typeof z=="string"){B=" "+z}else{B=" "+y+"mask-gray"}E=A.createChild({cls:y+"mask"+((D!==false)?"":(" "+y+"mask-gray")),html:v?('<div class="'+(z||(y+"mask-message"))+'">'+v+"</div>"):""});C=A.getSize();x.mask=E;if(w===document.body){C.height=window.innerHeight;if(A.orientationHandler){Ext.EventManager.unOrientationChange(A.orientationHandler,A)}A.orientationHandler=function(){C=A.getSize();C.height=window.innerHeight;E.setSize(C)};Ext.EventManager.onOrientationChange(A.orientationHandler,A)}E.setSize(C);if(Ext.is.iPad){Ext.repaint()}},unmask:function(){var v=this,x=(v.$cache||v.getCache()).data,u=x.mask,w=Ext.baseCSSPrefix;if(u){u.remove();delete x.mask}v.removeCls([w+"masked",w+"masked-relative"]);if(v.dom===document.body){Ext.EventManager.unOrientationChange(v.orientationHandler,v);delete v.orientationHandler}}});q.populateStyleMap=function(B,u){var A=["margin-","padding-","border-width-"],z=["before","after"],w,y,v,x;for(w=A.length;w--;){for(x=2;x--;){y=A[w]+z[x];B[q.normalize(y)]=B[y]={name:q.normalize(A[w]+u[x])}}}};Ext.onReady(function(){var C=Ext.supports,u,A,y,v,B;function z(H,E,G,D){var F=D[this.name]||"";return t.test(F)?"transparent":F}function x(J,G,I,F){var D=F.marginRight,E,H;if(D!="0px"){E=J.style;H=E.display;E.display="inline-block";D=(I?F:J.ownerDocument.defaultView.getComputedStyle(J,null)).marginRight;E.display=H}return D}function w(K,H,J,G){var D=G.marginRight,F,E,I;if(D!="0px"){F=K.style;E=q.getRightMarginFixCleaner(K);I=F.display;F.display="inline-block";D=(J?G:K.ownerDocument.defaultView.getComputedStyle(K,"")).marginRight;F.display=I;E()}return D}u=q.prototype.styleHooks;q.populateStyleMap(u,["left","right"]);if(C.init){C.init()}if(!C.RightMargin){u.marginRight=u["margin-right"]={name:"marginRight",get:(C.DisplayChangeInputSelectionBug||C.DisplayChangeTextAreaSelectionBug)?w:x}}if(!C.TransparentColor){A=["background-color","border-color","color","outline-color"];for(y=A.length;y--;){v=A[y];B=q.normalize(v);u[v]=u[B]={name:B,get:z}}}})}());Ext.dom.AbstractElement.override({findParent:function(h,b,a){var e=this.dom,c=document.documentElement,g=0,d;b=b||50;if(isNaN(b)){d=Ext.getDom(b);b=Number.MAX_VALUE}while(e&&e.nodeType==1&&g<b&&e!=c&&e!=d){if(Ext.DomQuery.is(e,h)){return a?Ext.get(e):e}g++;e=e.parentNode}return null},findParentNode:function(d,b,a){var c=Ext.fly(this.dom.parentNode,"_internal");return c?c.findParent(d,b,a):null},up:function(b,a){return this.findParentNode(b,a,true)},select:function(a,b){return Ext.dom.Element.select(a,this.dom,b)},query:function(a){return Ext.DomQuery.select(a,this.dom)},down:function(a,b){var c=Ext.DomQuery.selectNode(a,this.dom);return b?c:Ext.get(c)},child:function(a,b){var d,c=this,e;e=Ext.id(c.dom);e=Ext.escapeId(e);d=Ext.DomQuery.selectNode("#"+e+" > "+a,c.dom);return b?d:Ext.get(d)},parent:function(a,b){return this.matchNode("parentNode","parentNode",a,b)},next:function(a,b){return this.matchNode("nextSibling","nextSibling",a,b)},prev:function(a,b){return this.matchNode("previousSibling","previousSibling",a,b)},first:function(a,b){return this.matchNode("nextSibling","firstChild",a,b)},last:function(a,b){return this.matchNode("previousSibling","lastChild",a,b)},matchNode:function(b,e,a,c){if(!this.dom){return null}var d=this.dom[e];while(d){if(d.nodeType==1&&(!a||Ext.DomQuery.is(d,a))){return !c?Ext.get(d):d}d=d[b]}return null},isAncestor:function(a){return this.self.isAncestor.call(this.self,this.dom,a)}});(function(){var b="afterbegin",i="afterend",a="beforebegin",o="beforeend",l="<table>",h="</table>",c=l+"<tbody>",n="</tbody>"+h,k=c+"<tr>",e="</tr>"+n,p=document.createElement("div"),m=["BeforeBegin","previousSibling"],j=["AfterEnd","nextSibling"],d={beforebegin:m,afterend:j},g={beforebegin:m,afterend:j,afterbegin:["AfterBegin","firstChild"],beforeend:["BeforeEnd","lastChild"]};Ext.define("Ext.dom.Helper",{extend:"Ext.dom.AbstractHelper",requires:["Ext.dom.AbstractElement"],tableRe:/^table|tbody|tr|td$/i,tableElRe:/td|tr|tbody/i,useDom:false,createDom:function(q,w){var r,z=document,u,x,s,y,v,t;if(Ext.isArray(q)){r=z.createDocumentFragment();for(v=0,t=q.length;v<t;v++){this.createDom(q[v],r)}}else{if(typeof q=="string"){r=z.createTextNode(q)}else{r=z.createElement(q.tag||"div");u=!!r.setAttribute;for(x in q){if(!this.confRe.test(x)){s=q[x];if(x=="cls"){r.className=s}else{if(u){r.setAttribute(x,s)}else{r[x]=s}}}}Ext.DomHelper.applyStyles(r,q.style);if((y=q.children||q.cn)){this.createDom(y,r)}else{if(q.html){r.innerHTML=q.html}}}}if(w){w.appendChild(r)}return r},ieTable:function(v,q,w,u){p.innerHTML=[q,w,u].join("");var r=-1,t=p,s;while(++r<v){t=t.firstChild}s=t.nextSibling;if(s){t=document.createDocumentFragment();while(s){t.appendChild(s);s=s.nextSibling}}return t},insertIntoTable:function(z,s,r,t){var q,w,v=s==a,y=s==b,u=s==o,x=s==i;if(z=="td"&&(y||u)||!this.tableElRe.test(z)&&(v||x)){return null}w=v?r:x?r.nextSibling:y?r.firstChild:null;if(v||x){r=r.parentNode}if(z=="td"||(z=="tr"&&(u||y))){q=this.ieTable(4,k,t,e)}else{if((z=="tbody"&&(u||y))||(z=="tr"&&(v||x))){q=this.ieTable(3,c,t,n)}else{q=this.ieTable(2,l,t,h)}}r.insertBefore(q,w);return q},createContextualFragment:function(r){var q=document.createDocumentFragment(),s,t;p.innerHTML=r;t=p.childNodes;s=t.length;while(s--){q.appendChild(t[0])}return q},applyStyles:function(q,r){if(r){q=Ext.fly(q);if(typeof r=="function"){r=r.call()}if(typeof r=="string"){r=Ext.dom.Element.parseStyles(r)}if(typeof r=="object"){q.setStyle(r)}}},createHtml:function(q){return this.markup(q)},doInsert:function(t,v,u,w,s,q){t=t.dom||Ext.getDom(t);var r;if(this.useDom){r=this.createDom(v,null);if(q){t.appendChild(r)}else{(s=="firstChild"?t:t.parentNode).insertBefore(r,t[s]||t)}}else{r=this.insertHtml(w,t,this.markup(v))}return u?Ext.get(r,true):r},overwrite:function(s,r,t){var q;s=Ext.getDom(s);r=this.markup(r);if(Ext.isIE&&this.tableRe.test(s.tagName)){while(s.firstChild){s.removeChild(s.firstChild)}if(r){q=this.insertHtml("afterbegin",s,r);return t?Ext.get(q):q}return null}s.innerHTML=r;return t?Ext.get(s.firstChild):s.firstChild},insertHtml:function(s,v,t){var x,r,u,q,w;s=s.toLowerCase();if(v.insertAdjacentHTML){if(Ext.isIE&&this.tableRe.test(v.tagName)&&(w=this.insertIntoTable(v.tagName.toLowerCase(),s,v,t))){return w}if((x=g[s])){v.insertAdjacentHTML(x[0],t);return v[x[1]]}}else{if(v.nodeType===3){s=s==="afterbegin"?"beforebegin":s;s=s==="beforeend"?"afterend":s}r=Ext.supports.CreateContextualFragment?v.ownerDocument.createRange():undefined;q="setStart"+(this.endRe.test(s)?"After":"Before");if(d[s]){if(r){r[q](v);w=r.createContextualFragment(t)}else{w=this.createContextualFragment(t)}v.parentNode.insertBefore(w,s==a?v:v.nextSibling);return v[(s==a?"previous":"next")+"Sibling"]}else{u=(s==b?"first":"last")+"Child";if(v.firstChild){if(r){r[q](v[u]);w=r.createContextualFragment(t)}else{w=this.createContextualFragment(t)}if(s==b){v.insertBefore(w,v.firstChild)}else{v.appendChild(w)}}else{v.innerHTML=t}return v[u]}}},createTemplate:function(r){var q=this.markup(r);return new Ext.Template(q)}},function(){Ext.ns("Ext.core");Ext.DomHelper=Ext.core.DomHelper=new this})}());Ext.ns("Ext.core");Ext.dom.Query=Ext.core.DomQuery=Ext.DomQuery=(function(){var cache={},simpleCache={},valueCache={},nonSpace=/\S/,trimRe=/^\s+|\s+$/g,tplRe=/\{(\d+)\}/g,modeRe=/^(\s?[\/>+~]\s?|\s|$)/,tagTokenRe=/^(#)?([\w\-\*\\]+)/,nthRe=/(\d*)n\+?(\d*)/,nthRe2=/\D/,startIdRe=/^\s*\#/,isIE=window.ActiveXObject?true:false,key=30803,longHex=/\\([0-9a-fA-F]{6})/g,shortHex=/\\([0-9a-fA-F]{1,6})\s{0,1}/g,nonHex=/\\([^0-9a-fA-F]{1})/g,escapes=/\\/g,num,hasEscapes,longHexToChar=function($0,$1){return String.fromCharCode(parseInt($1,16))},shortToLongHex=function($0,$1){while($1.length<6){$1="0"+$1}return"\\"+$1},charToLongHex=function($0,$1){num=$1.charCodeAt(0).toString(16);if(num.length===1){num="0"+num}return"\\0000"+num},unescapeCssSelector=function(selector){return(hasEscapes)?selector.replace(longHex,longHexToChar):selector},setupEscapes=function(path){hasEscapes=(path.indexOf("\\")>-1);if(hasEscapes){path=path.replace(shortHex,shortToLongHex).replace(nonHex,charToLongHex).replace(escapes,"\\\\")}return path};eval("var batch = 30803;");function child(parent,index){var i=0,n=parent.firstChild;while(n){if(n.nodeType==1){if(++i==index){return n}}n=n.nextSibling}return null}function next(n){while((n=n.nextSibling)&&n.nodeType!=1){}return n}function prev(n){while((n=n.previousSibling)&&n.nodeType!=1){}return n}function children(parent){var n=parent.firstChild,nodeIndex=-1,nextNode;while(n){nextNode=n.nextSibling;if(n.nodeType==3&&!nonSpace.test(n.nodeValue)){parent.removeChild(n)}else{n.nodeIndex=++nodeIndex}n=nextNode}return this}function byClassName(nodeSet,cls){cls=unescapeCssSelector(cls);if(!cls){return nodeSet}var result=[],ri=-1,i,ci;for(i=0,ci;ci=nodeSet[i];i++){if((" "+ci.className+" ").indexOf(cls)!=-1){result[++ri]=ci}}return result}function attrValue(n,attr){if(!n.tagName&&typeof n.length!="undefined"){n=n[0]}if(!n){return null}if(attr=="for"){return n.htmlFor}if(attr=="class"||attr=="className"){return n.className}return n.getAttribute(attr)||n[attr]}function getNodes(ns,mode,tagName){var result=[],ri=-1,cs,i,ni,j,ci,cn,utag,n,cj;if(!ns){return result}tagName=tagName||"*";if(typeof ns.getElementsByTagName!="undefined"){ns=[ns]}if(!mode){for(i=0,ni;ni=ns[i];i++){cs=ni.getElementsByTagName(tagName);for(j=0,ci;ci=cs[j];j++){result[++ri]=ci}}}else{if(mode=="/"||mode==">"){utag=tagName.toUpperCase();for(i=0,ni,cn;ni=ns[i];i++){cn=ni.childNodes;for(j=0,cj;cj=cn[j];j++){if(cj.nodeName==utag||cj.nodeName==tagName||tagName=="*"){result[++ri]=cj}}}}else{if(mode=="+"){utag=tagName.toUpperCase();for(i=0,n;n=ns[i];i++){while((n=n.nextSibling)&&n.nodeType!=1){}if(n&&(n.nodeName==utag||n.nodeName==tagName||tagName=="*")){result[++ri]=n}}}else{if(mode=="~"){utag=tagName.toUpperCase();for(i=0,n;n=ns[i];i++){while((n=n.nextSibling)){if(n.nodeName==utag||n.nodeName==tagName||tagName=="*"){result[++ri]=n}}}}}}}return result}function concat(a,b){if(b.slice){return a.concat(b)}for(var i=0,l=b.length;i<l;i++){a[a.length]=b[i]}return a}function byTag(cs,tagName){if(cs.tagName||cs==document){cs=[cs]}if(!tagName){return cs}var result=[],ri=-1,i,ci;tagName=tagName.toLowerCase();for(i=0,ci;ci=cs[i];i++){if(ci.nodeType==1&&ci.tagName.toLowerCase()==tagName){result[++ri]=ci}}return result}function byId(cs,id){id=unescapeCssSelector(id);if(cs.tagName||cs==document){cs=[cs]}if(!id){return cs}var result=[],ri=-1,i,ci;for(i=0,ci;ci=cs[i];i++){if(ci&&ci.id==id){result[++ri]=ci;return result}}return result}function byAttribute(cs,attr,value,op,custom){var result=[],ri=-1,useGetStyle=custom=="{",fn=Ext.DomQuery.operators[op],a,xml,hasXml,i,ci;value=unescapeCssSelector(value);for(i=0,ci;ci=cs[i];i++){if(ci.nodeType!=1){continue}if(!hasXml){xml=Ext.DomQuery.isXml(ci);hasXml=true}if(!xml){if(useGetStyle){a=Ext.DomQuery.getStyle(ci,attr)}else{if(attr=="class"||attr=="className"){a=ci.className}else{if(attr=="for"){a=ci.htmlFor}else{if(attr=="href"){a=ci.getAttribute("href",2)}else{a=ci.getAttribute(attr)}}}}}else{a=ci.getAttribute(attr)}if((fn&&fn(a,value))||(!fn&&a)){result[++ri]=ci}}return result}function byPseudo(cs,name,value){value=unescapeCssSelector(value);return Ext.DomQuery.pseudos[name](cs,value)}function nodupIEXml(cs){var d=++key,r,i,len,c;cs[0].setAttribute("_nodup",d);r=[cs[0]];for(i=1,len=cs.length;i<len;i++){c=cs[i];if(!c.getAttribute("_nodup")!=d){c.setAttribute("_nodup",d);r[r.length]=c}}for(i=0,len=cs.length;i<len;i++){cs[i].removeAttribute("_nodup")}return r}function nodup(cs){if(!cs){return[]}var len=cs.length,c,i,r=cs,cj,ri=-1,d,j;if(!len||typeof cs.nodeType!="undefined"||len==1){return cs}if(isIE&&typeof cs[0].selectSingleNode!="undefined"){return nodupIEXml(cs)}d=++key;cs[0]._nodup=d;for(i=1;c=cs[i];i++){if(c._nodup!=d){c._nodup=d}else{r=[];for(j=0;j<i;j++){r[++ri]=cs[j]}for(j=i+1;cj=cs[j];j++){if(cj._nodup!=d){cj._nodup=d;r[++ri]=cj}}return r}}return r}function quickDiffIEXml(c1,c2){var d=++key,r=[],i,len;for(i=0,len=c1.length;i<len;i++){c1[i].setAttribute("_qdiff",d)}for(i=0,len=c2.length;i<len;i++){if(c2[i].getAttribute("_qdiff")!=d){r[r.length]=c2[i]}}for(i=0,len=c1.length;i<len;i++){c1[i].removeAttribute("_qdiff")}return r}function quickDiff(c1,c2){var len1=c1.length,d=++key,r=[],i,len;if(!len1){return c2}if(isIE&&typeof c1[0].selectSingleNode!="undefined"){return quickDiffIEXml(c1,c2)}for(i=0;i<len1;i++){c1[i]._qdiff=d}for(i=0,len=c2.length;i<len;i++){if(c2[i]._qdiff!=d){r[r.length]=c2[i]}}return r}function quickId(ns,mode,root,id){if(ns==root){id=unescapeCssSelector(id);var d=root.ownerDocument||root;return d.getElementById(id)}ns=getNodes(ns,mode,"*");return byId(ns,id)}return{getStyle:function(el,name){return Ext.fly(el).getStyle(name)},compile:function(path,type){type=type||"select";var fn=["var f = function(root){\n var mode; ++batch; var n = root || document;\n"],mode,lastPath,matchers=Ext.DomQuery.matchers,matchersLn=matchers.length,modeMatch,lmode=path.match(modeRe),tokenMatch,matched,j,t,m;path=setupEscapes(path);if(lmode&&lmode[1]){fn[fn.length]='mode="'+lmode[1].replace(trimRe,"")+'";';path=path.replace(lmode[1],"")}while(path.substr(0,1)=="/"){path=path.substr(1)}while(path&&lastPath!=path){lastPath=path;tokenMatch=path.match(tagTokenRe);if(type=="select"){if(tokenMatch){if(tokenMatch[1]=="#"){fn[fn.length]='n = quickId(n, mode, root, "'+tokenMatch[2]+'");'}else{fn[fn.length]='n = getNodes(n, mode, "'+tokenMatch[2]+'");'}path=path.replace(tokenMatch[0],"")}else{if(path.substr(0,1)!="@"){fn[fn.length]='n = getNodes(n, mode, "*");'}}}else{if(tokenMatch){if(tokenMatch[1]=="#"){fn[fn.length]='n = byId(n, "'+tokenMatch[2]+'");'}else{fn[fn.length]='n = byTag(n, "'+tokenMatch[2]+'");'}path=path.replace(tokenMatch[0],"")}}while(!(modeMatch=path.match(modeRe))){matched=false;for(j=0;j<matchersLn;j++){t=matchers[j];m=path.match(t.re);if(m){fn[fn.length]=t.select.replace(tplRe,function(x,i){return m[i]});path=path.replace(m[0],"");matched=true;break}}if(!matched){Ext.Error.raise({sourceClass:"Ext.DomQuery",sourceMethod:"compile",msg:'Error parsing selector. Parsing failed at "'+path+'"'})}}if(modeMatch[1]){fn[fn.length]='mode="'+modeMatch[1].replace(trimRe,"")+'";';path=path.replace(modeMatch[1],"")}}fn[fn.length]="return nodup(n);\n}";eval(fn.join(""));return f},jsSelect:function(path,root,type){root=root||document;if(typeof root=="string"){root=document.getElementById(root)}var paths=path.split(","),results=[],i,len,subPath,result;for(i=0,len=paths.length;i<len;i++){subPath=paths[i].replace(trimRe,"");if(!cache[subPath]){cache[subPath]=Ext.DomQuery.compile(subPath,type);if(!cache[subPath]){Ext.Error.raise({sourceClass:"Ext.DomQuery",sourceMethod:"jsSelect",msg:subPath+" is not a valid selector"})}}else{setupEscapes(subPath)}result=cache[subPath](root);if(result&&result!=document){results=results.concat(result)}}if(paths.length>1){return nodup(results)}return results},isXml:function(el){var docEl=(el?el.ownerDocument||el:0).documentElement;return docEl?docEl.nodeName!=="HTML":false},select:document.querySelectorAll?function(path,root,type){root=root||document;if(!Ext.DomQuery.isXml(root)){try{if(root.parentNode&&(root.nodeType!==9)&&path.indexOf(",")===-1&&!startIdRe.test(path)){path="#"+Ext.escapeId(Ext.id(root))+" "+path;root=root.parentNode}return Ext.Array.toArray(root.querySelectorAll(path))}catch(e){}}return Ext.DomQuery.jsSelect.call(this,path,root,type)}:function(path,root,type){return Ext.DomQuery.jsSelect.call(this,path,root,type)},selectNode:function(path,root){return Ext.DomQuery.select(path,root)[0]},selectValue:function(path,root,defaultValue){path=path.replace(trimRe,"");if(!valueCache[path]){valueCache[path]=Ext.DomQuery.compile(path,"select")}else{setupEscapes(path)}var n=valueCache[path](root),v;n=n[0]?n[0]:n;if(typeof n.normalize=="function"){n.normalize()}v=(n&&n.firstChild?n.firstChild.nodeValue:null);return((v===null||v===undefined||v==="")?defaultValue:v)},selectNumber:function(path,root,defaultValue){var v=Ext.DomQuery.selectValue(path,root,defaultValue||0);return parseFloat(v)},is:function(el,ss){if(typeof el=="string"){el=document.getElementById(el)}var isArray=Ext.isArray(el),result=Ext.DomQuery.filter(isArray?el:[el],ss);return isArray?(result.length==el.length):(result.length>0)},filter:function(els,ss,nonMatches){ss=ss.replace(trimRe,"");if(!simpleCache[ss]){simpleCache[ss]=Ext.DomQuery.compile(ss,"simple")}else{setupEscapes(ss)}var result=simpleCache[ss](els);return nonMatches?quickDiff(result,els):result},matchers:[{re:/^\.([\w\-\\]+)/,select:'n = byClassName(n, " {1} ");'},{re:/^\:([\w\-]+)(?:\(((?:[^\s>\/]*|.*?))\))?/,select:'n = byPseudo(n, "{1}", "{2}");'},{re:/^(?:([\[\{])(?:@)?([\w\-]+)\s?(?:(=|.=)\s?['"]?(.*?)["']?)?[\]\}])/,select:'n = byAttribute(n, "{2}", "{4}", "{3}", "{1}");'},{re:/^#([\w\-\\]+)/,select:'n = byId(n, "{1}");'},{re:/^@([\w\-]+)/,select:'return {firstChild:{nodeValue:attrValue(n, "{1}")}};'}],operators:{"=":function(a,v){return a==v},"!=":function(a,v){return a!=v},"^=":function(a,v){return a&&a.substr(0,v.length)==v},"$=":function(a,v){return a&&a.substr(a.length-v.length)==v},"*=":function(a,v){return a&&a.indexOf(v)!==-1},"%=":function(a,v){return(a%v)==0},"|=":function(a,v){return a&&(a==v||a.substr(0,v.length+1)==v+"-")},"~=":function(a,v){return a&&(" "+a+" ").indexOf(" "+v+" ")!=-1}},pseudos:{"first-child":function(c){var r=[],ri=-1,n,i,ci;for(i=0;(ci=n=c[i]);i++){while((n=n.previousSibling)&&n.nodeType!=1){}if(!n){r[++ri]=ci}}return r},"last-child":function(c){var r=[],ri=-1,n,i,ci;for(i=0;(ci=n=c[i]);i++){while((n=n.nextSibling)&&n.nodeType!=1){}if(!n){r[++ri]=ci}}return r},"nth-child":function(c,a){var r=[],ri=-1,m=nthRe.exec(a=="even"&&"2n"||a=="odd"&&"2n+1"||!nthRe2.test(a)&&"n+"+a||a),f=(m[1]||1)-0,l=m[2]-0,i,n,j,cn,pn;for(i=0;n=c[i];i++){pn=n.parentNode;if(batch!=pn._batch){j=0;for(cn=pn.firstChild;cn;cn=cn.nextSibling){if(cn.nodeType==1){cn.nodeIndex=++j}}pn._batch=batch}if(f==1){if(l==0||n.nodeIndex==l){r[++ri]=n}}else{if((n.nodeIndex+l)%f==0){r[++ri]=n}}}return r},"only-child":function(c){var r=[],ri=-1,i,ci;for(i=0;ci=c[i];i++){if(!prev(ci)&&!next(ci)){r[++ri]=ci}}return r},empty:function(c){var r=[],ri=-1,i,ci,cns,j,cn,empty;for(i=0,ci;ci=c[i];i++){cns=ci.childNodes;j=0;empty=true;while(cn=cns[j]){++j;if(cn.nodeType==1||cn.nodeType==3){empty=false;break}}if(empty){r[++ri]=ci}}return r},contains:function(c,v){var r=[],ri=-1,i,ci;for(i=0;ci=c[i];i++){if((ci.textContent||ci.innerText||ci.text||"").indexOf(v)!=-1){r[++ri]=ci}}return r},nodeValue:function(c,v){var r=[],ri=-1,i,ci;for(i=0;ci=c[i];i++){if(ci.firstChild&&ci.firstChild.nodeValue==v){r[++ri]=ci}}return r},checked:function(c){var r=[],ri=-1,i,ci;for(i=0;ci=c[i];i++){if(ci.checked==true){r[++ri]=ci}}return r},not:function(c,ss){return Ext.DomQuery.filter(c,ss,true)},any:function(c,selectors){var ss=selectors.split("|"),r=[],ri=-1,s,i,ci,j;for(i=0;ci=c[i];i++){for(j=0;s=ss[j];j++){if(Ext.DomQuery.is(ci,s)){r[++ri]=ci;break}}}return r},odd:function(c){return this["nth-child"](c,"odd")},even:function(c){return this["nth-child"](c,"even")},nth:function(c,a){return c[a-1]||[]},first:function(c){return c[0]||[]},last:function(c){return c[c.length-1]||[]},has:function(c,ss){var s=Ext.DomQuery.select,r=[],ri=-1,i,ci;for(i=0;ci=c[i];i++){if(s(ss,ci).length>0){r[++ri]=ci}}return r},next:function(c,ss){var is=Ext.DomQuery.is,r=[],ri=-1,i,ci,n;for(i=0;ci=c[i];i++){n=next(ci);if(n&&is(n,ss)){r[++ri]=ci}}return r},prev:function(c,ss){var is=Ext.DomQuery.is,r=[],ri=-1,i,ci,n;for(i=0;ci=c[i];i++){n=prev(ci);if(n&&is(n,ss)){r[++ri]=ci}}return r}}}}());Ext.query=Ext.DomQuery.select;(function(){var HIDDEN="hidden",DOC=document,VISIBILITY="visibility",DISPLAY="display",NONE="none",XMASKED=Ext.baseCSSPrefix+"masked",XMASKEDRELATIVE=Ext.baseCSSPrefix+"masked-relative",EXTELMASKMSG=Ext.baseCSSPrefix+"mask-msg",bodyRe=/^body/i,visFly,noBoxAdjust=Ext.isStrict?{select:1}:{input:1,select:1,textarea:1},isScrolled=function(c){var r=[],ri=-1,i,ci;for(i=0;ci=c[i];i++){if(ci.scrollTop>0||ci.scrollLeft>0){r[++ri]=ci}}return r},Element=Ext.define("Ext.dom.Element",{extend:"Ext.dom.AbstractElement",alternateClassName:["Ext.Element","Ext.core.Element"],addUnits:function(){return this.self.addUnits.apply(this.self,arguments)},focus:function(defer,dom){var me=this,scrollTop,body;dom=dom||me.dom;body=(dom.ownerDocument||DOC).body||DOC.body;try{if(Number(defer)){Ext.defer(me.focus,defer,me,[null,dom])}else{if(dom.offsetHeight>Element.getViewHeight()){scrollTop=body.scrollTop}dom.focus();if(scrollTop!==undefined){body.scrollTop=scrollTop}}}catch(e){}return me},blur:function(){try{this.dom.blur()}catch(e){}return this},isBorderBox:function(){var box=Ext.isBorderBox;if(box){box=!((this.dom.tagName||"").toLowerCase() in noBoxAdjust)}return box},hover:function(overFn,outFn,scope,options){var me=this;me.on("mouseenter",overFn,scope||me.dom,options);me.on("mouseleave",outFn,scope||me.dom,options);return me},getAttributeNS:function(ns,name){return this.getAttribute(name,ns)},getAttribute:(Ext.isIE&&!(Ext.isIE9&&DOC.documentMode===9))?function(name,ns){var d=this.dom,type;if(ns){type=typeof d[ns+":"+name];if(type!="undefined"&&type!="unknown"){return d[ns+":"+name]||null}return null}if(name==="for"){name="htmlFor"}return d[name]||null}:function(name,ns){var d=this.dom;if(ns){return d.getAttributeNS(ns,name)||d.getAttribute(ns+":"+name)}return d.getAttribute(name)||d[name]||null},cacheScrollValues:function(){var me=this,scrolledDescendants,el,i,scrollValues=[],result=function(){for(i=0;i<scrolledDescendants.length;i++){el=scrolledDescendants[i];el.scrollLeft=scrollValues[i][0];el.scrollTop=scrollValues[i][1]}};if(!Ext.DomQuery.pseudos.isScrolled){Ext.DomQuery.pseudos.isScrolled=isScrolled}scrolledDescendants=me.query(":isScrolled");for(i=0;i<scrolledDescendants.length;i++){el=scrolledDescendants[i];scrollValues[i]=[el.scrollLeft,el.scrollTop]}return result},autoBoxAdjust:true,isVisible:function(deep){var me=this,dom=me.dom,stopNode=dom.ownerDocument.documentElement;if(!visFly){visFly=new Element.Fly()}while(dom!==stopNode){if(!dom||dom.nodeType===11||(visFly.attach(dom)).isStyle(VISIBILITY,HIDDEN)||visFly.isStyle(DISPLAY,NONE)){return false}if(!deep){break}dom=dom.parentNode}return true},isDisplayed:function(){return !this.isStyle(DISPLAY,NONE)},enableDisplayMode:function(display){var me=this;me.setVisibilityMode(Element.DISPLAY);if(!Ext.isEmpty(display)){(me.$cache||me.getCache()).data.originalDisplay=display}return me},mask:function(msg,msgCls,elHeight){var me=this,dom=me.dom,setExpression=dom.style.setExpression,data=(me.$cache||me.getCache()).data,maskEl=data.maskEl,maskMsg=data.maskMsg;if(!(bodyRe.test(dom.tagName)&&me.getStyle("position")=="static")){me.addCls(XMASKEDRELATIVE)}if(maskEl){maskEl.remove()}if(maskMsg){maskMsg.remove()}Ext.DomHelper.append(dom,[{cls:Ext.baseCSSPrefix+"mask"},{cls:msgCls?EXTELMASKMSG+" "+msgCls:EXTELMASKMSG,cn:{tag:"div",html:msg||""}}]);maskMsg=Ext.get(dom.lastChild);maskEl=Ext.get(maskMsg.dom.previousSibling);data.maskMsg=maskMsg;data.maskEl=maskEl;me.addCls(XMASKED);maskEl.setDisplayed(true);if(typeof msg=="string"){maskMsg.setDisplayed(true);maskMsg.center(me)}else{maskMsg.setDisplayed(false)}if(!Ext.supports.IncludePaddingInWidthCalculation&&setExpression){try{maskEl.dom.style.setExpression("width",'this.parentNode.clientWidth + "px"')}catch(e){}}if(!Ext.supports.IncludePaddingInHeightCalculation&&setExpression){try{maskEl.dom.style.setExpression("height","this.parentNode."+(dom==DOC.body?"scrollHeight":"offsetHeight")+' + "px"')}catch(e){}}else{if(Ext.isIE&&!(Ext.isIE7&&Ext.isStrict)&&me.getStyle("height")=="auto"){maskEl.setSize(undefined,elHeight||me.getHeight())}}return maskEl},unmask:function(){var me=this,data=(me.$cache||me.getCache()).data,maskEl=data.maskEl,maskMsg=data.maskMsg,style;if(maskEl){style=maskEl.dom.style;if(style.clearExpression){style.clearExpression("width");style.clearExpression("height")}if(maskEl){maskEl.remove();delete data.maskEl}if(maskMsg){maskMsg.remove();delete data.maskMsg}me.removeCls([XMASKED,XMASKEDRELATIVE])}},isMasked:function(){var me=this,data=(me.$cache||me.getCache()).data,maskEl=data.maskEl,maskMsg=data.maskMsg,hasMask=false;if(maskEl&&maskEl.isVisible()){if(maskMsg){maskMsg.center(me)}hasMask=true}return hasMask},createShim:function(){var el=DOC.createElement("iframe"),shim;el.frameBorder="0";el.className=Ext.baseCSSPrefix+"shim";el.src=Ext.SSL_SECURE_URL;shim=Ext.get(this.dom.parentNode.insertBefore(el,this.dom));shim.autoBoxAdjust=false;return shim},addKeyListener:function(key,fn,scope){var config;if(typeof key!="object"||Ext.isArray(key)){config={target:this,key:key,fn:fn,scope:scope}}else{config={target:this,key:key.key,shift:key.shift,ctrl:key.ctrl,alt:key.alt,fn:fn,scope:scope}}return new Ext.util.KeyMap(config)},addKeyMap:function(config){return new Ext.util.KeyMap(Ext.apply({target:this},config))},on:function(eventName,fn,scope,options){Ext.EventManager.on(this,eventName,fn,scope||this,options);return this},un:function(eventName,fn,scope){Ext.EventManager.un(this,eventName,fn,scope||this);return this},removeAllListeners:function(){Ext.EventManager.removeAll(this);return this},purgeAllListeners:function(){Ext.EventManager.purgeElement(this);return this}},function(){var EC=Ext.cache,El=this,AbstractElement=Ext.dom.AbstractElement,focusRe=/a|button|embed|iframe|img|input|object|select|textarea/i,nonSpaceRe=/\S/,scriptTagRe=/(?:<script([^>]*)?>)((\n|\r|.)*?)(?:<\/script>)/ig,replaceScriptTagRe=/(?:<script.*?>)((\n|\r|.)*?)(?:<\/script>)/ig,srcRe=/\ssrc=([\'\"])(.*?)\1/i,typeRe=/\stype=([\'\"])(.*?)\1/i,useDocForId=!(Ext.isIE6||Ext.isIE7||Ext.isIE8);El.boxMarkup='<div class="{0}-tl"><div class="{0}-tr"><div class="{0}-tc"></div></div></div><div class="{0}-ml"><div class="{0}-mr"><div class="{0}-mc"></div></div></div><div class="{0}-bl"><div class="{0}-br"><div class="{0}-bc"></div></div></div>';function garbageCollect(){if(!Ext.enableGarbageCollector){clearInterval(El.collectorThreadId)}else{var eid,d,o,t;for(eid in EC){if(!EC.hasOwnProperty(eid)){continue}o=EC[eid];if(o.skipGarbageCollection){continue}d=o.dom;if(!d.parentNode||(!d.offsetParent&&!Ext.getElementById(eid))){if(d&&Ext.enableListenerCollection){Ext.EventManager.removeAll(d)}delete EC[eid]}}if(Ext.isIE){t={};for(eid in EC){if(!EC.hasOwnProperty(eid)){continue}t[eid]=EC[eid]}EC=Ext.cache=t}}}El.collectorThreadId=setInterval(garbageCollect,30000);El.addMethods({monitorMouseLeave:function(delay,handler,scope){var me=this,timer,listeners={mouseleave:function(e){timer=setTimeout(Ext.Function.bind(handler,scope||me,[e]),delay)},mouseenter:function(){clearTimeout(timer)},freezeEvent:true};me.on(listeners);return listeners},swallowEvent:function(eventName,preventDefault){var me=this,e,eLen;function fn(e){e.stopPropagation();if(preventDefault){e.preventDefault()}}if(Ext.isArray(eventName)){eLen=eventName.length;for(e=0;e<eLen;e++){me.on(eventName[e],fn)}return me}me.on(eventName,fn);return me},relayEvent:function(eventName,observable){this.on(eventName,function(e){observable.fireEvent(eventName,e)})},clean:function(forceReclean){var me=this,dom=me.dom,data=(me.$cache||me.getCache()).data,n=dom.firstChild,ni=-1,nx;if(data.isCleaned&&forceReclean!==true){return me}while(n){nx=n.nextSibling;if(n.nodeType==3){if(!(nonSpaceRe.test(n.nodeValue))){dom.removeChild(n)}else{if(nx&&nx.nodeType==3){n.appendData(Ext.String.trim(nx.data));dom.removeChild(nx);nx=n.nextSibling;n.nodeIndex=++ni}}}else{Ext.fly(n).clean();n.nodeIndex=++ni}n=nx}data.isCleaned=true;return me},load:function(options){this.getLoader().load(options);return this},getLoader:function(){var me=this,data=(me.$cache||me.getCache()).data,loader=data.loader;if(!loader){data.loader=loader=new Ext.ElementLoader({target:me})}return loader},syncContent:function(source){source=Ext.getDom(source);var me=this,sourceNodes=source.childNodes,sourceLen=sourceNodes.length,dest=me.dom,destNodes=dest.childNodes,destLen=destNodes.length,i,destNode,sourceNode,nodeType;dest.style.cssText=source.style.cssText;dest.className=source.className;if(sourceLen!==destLen){source.innerHTML=dest.innerHTML;return}for(i=0;i<sourceLen;i++){sourceNode=sourceNodes[i];destNode=destNodes[i];nodeType=sourceNode.nodeType;if(nodeType!==destNode.nodeType||(nodeType===1&&sourceNode.tagName!==destNode.tagName)){dest.innerHTML=source.innerHTML;return}if(nodeType===3){destNode.data=sourceNode.data}else{if(sourceNode.id&&destNode.id!==sourceNode.id){destNode.id=sourceNode.id}destNode.style.cssText=sourceNode.style.cssText;destNode.className=sourceNode.className;Ext.fly(destNode).syncContent(sourceNode)}}},update:function(html,loadScripts,callback){var me=this,id,dom,interval;if(!me.dom){return me}html=html||"";dom=me.dom;if(loadScripts!==true){dom.innerHTML=html;Ext.callback(callback,me);return me}id=Ext.id();html+='<span id="'+id+'"></span>';interval=setInterval(function(){var hd,match,attrs,srcMatch,typeMatch,el,s;if(!(el=DOC.getElementById(id))){return false}clearInterval(interval);Ext.removeNode(el);hd=Ext.getHead().dom;while((match=scriptTagRe.exec(html))){attrs=match[1];srcMatch=attrs?attrs.match(srcRe):false;if(srcMatch&&srcMatch[2]){s=DOC.createElement("script");s.src=srcMatch[2];typeMatch=attrs.match(typeRe);if(typeMatch&&typeMatch[2]){s.type=typeMatch[2]}hd.appendChild(s)}else{if(match[2]&&match[2].length>0){if(window.execScript){window.execScript(match[2])}else{window.eval(match[2])}}}}Ext.callback(callback,me)},20);dom.innerHTML=html.replace(replaceScriptTagRe,"");return me},removeAllListeners:function(){this.removeAnchor();Ext.EventManager.removeAll(this.dom);return this},createProxy:function(config,renderTo,matchBox){config=(typeof config=="object")?config:{tag:"div",cls:config};var me=this,proxy=renderTo?Ext.DomHelper.append(renderTo,config,true):Ext.DomHelper.insertBefore(me.dom,config,true);proxy.setVisibilityMode(Element.DISPLAY);proxy.hide();if(matchBox&&me.setBox&&me.getBox){proxy.setBox(me.getBox())}return proxy},getScopeParent:function(){var parent=this.dom.parentNode;if(Ext.scopeResetCSS){parent=parent.parentNode;if(!Ext.supports.CSS3LinearGradient||!Ext.supports.CSS3BorderRadius){parent=parent.parentNode}}return parent},needsTabIndex:function(){if(this.dom){if((this.dom.nodeName==="a")&&(!this.dom.href)){return true}return !focusRe.test(this.dom.nodeName)}},focusable:function(){var dom=this.dom,nodeName=dom.nodeName,canFocus=false;if(!dom.disabled){if(focusRe.test(nodeName)){if((nodeName!=="a")||dom.href){canFocus=true}}else{canFocus=!isNaN(dom.tabIndex)}}return canFocus&&this.isVisible(true)}});if(Ext.isIE){El.prototype.getById=function(id,asDom){var dom=this.dom,cacheItem,el,ret;if(dom){el=(useDocForId&&DOC.getElementById(id))||dom.all[id];if(el){if(asDom){ret=el}else{cacheItem=EC[id];if(cacheItem&&cacheItem.el){ret=Ext.updateCacheEntry(cacheItem,el).el}else{ret=new Element(el)}}return ret}}return asDom?Ext.getDom(id):El.get(id)}}El.createAlias({addListener:"on",removeListener:"un",clearListeners:"removeAllListeners"});El.Fly=AbstractElement.Fly=new Ext.Class({extend:El,constructor:function(dom){this.dom=dom},attach:AbstractElement.Fly.prototype.attach});if(Ext.isIE){Ext.getElementById=function(id){var el=DOC.getElementById(id),detachedBodyEl;if(!el&&(detachedBodyEl=AbstractElement.detachedBodyEl)){el=detachedBodyEl.dom.all[id]}return el}}else{if(!DOC.querySelector){Ext.getDetachedBody=Ext.getBody;Ext.getElementById=function(id){return DOC.getElementById(id)}}}})}());Ext.dom.Element.override((function(){var d=document,c=window,a=/^([a-z]+)-([a-z]+)(\?)?$/,b=Math.round;return{getAnchorXY:function(j,o,h){j=(j||"tl").toLowerCase();h=h||{};var m=this,i=m.dom==d.body||m.dom==d,e=h.width||i?Ext.dom.Element.getViewWidth():m.getWidth(),g=h.height||i?Ext.dom.Element.getViewHeight():m.getHeight(),q,n=m.getXY(),p=m.getScroll(),l=i?p.left:!o?n[0]:0,k=i?p.top:!o?n[1]:0;switch(j){case"tl":q=[0,0];break;case"bl":q=[0,g];break;case"tr":q=[e,0];break;case"c":q=[b(e*0.5),b(g*0.5)];break;case"t":q=[b(e*0.5),0];break;case"l":q=[0,b(g*0.5)];break;case"r":q=[e,b(g*0.5)];break;case"b":q=[b(e*0.5),g];break;case"br":q=[e,g]}return[q[0]+l,q[1]+k]},getAlignToXY:function(m,G,j){m=Ext.get(m);if(!m||!m.dom){}j=j||[0,0];G=(!G||G=="?"?"tl-bl?":(!(/-/).test(G)&&G!==""?"tl-"+G:G||"tl-bl")).toLowerCase();var H=this,l,w,q,o,k,z,A,E=Ext.dom.Element.getViewWidth()-10,i=Ext.dom.Element.getViewHeight()-10,g,h,n,p,u,v,F=d.documentElement,s=d.body,D=(F.scrollLeft||s.scrollLeft||0),B=(F.scrollTop||s.scrollTop||0),C,t,r,e=G.match(a);t=e[1];r=e[2];C=!!e[3];l=H.getAnchorXY(t,true);w=m.getAnchorXY(r,false);q=w[0]-l[0]+j[0];o=w[1]-l[1]+j[1];if(C){k=H.getWidth();z=H.getHeight();A=m.getRegion();g=t.charAt(0);h=t.charAt(t.length-1);n=r.charAt(0);p=r.charAt(r.length-1);u=((g=="t"&&n=="b")||(g=="b"&&n=="t"));v=((h=="r"&&p=="l")||(h=="l"&&p=="r"));if(q+k>E+D){q=v?A.left-k:E+D-k}if(q<D){q=v?A.right:D}if(o+z>i+B){o=u?A.top-z:i+B-z}if(o<B){o=u?A.bottom:B}}return[q,o]},anchorTo:function(g,l,h,e,o,p){var m=this,j=m.dom,n=!Ext.isEmpty(o),i=function(){Ext.fly(j).alignTo(g,l,h,e);Ext.callback(p,Ext.fly(j))},k=this.getAnchor();this.removeAnchor();Ext.apply(k,{fn:i,scroll:n});Ext.EventManager.onWindowResize(i,null);if(n){Ext.EventManager.on(c,"scroll",i,null,{buffer:!isNaN(o)?o:50})}i.call(m);return m},removeAnchor:function(){var g=this,e=this.getAnchor();if(e&&e.fn){Ext.EventManager.removeResizeListener(e.fn);if(e.scroll){Ext.EventManager.un(c,"scroll",e.fn)}delete e.fn}return g},getAlignVector:function(h,g,j){var i=this,e=i.getXY(),k=i.getAlignToXY(h,g,j);h=Ext.get(h);k[0]-=e[0];k[1]-=e[1];return k},alignTo:function(h,e,j,g){var i=this;return i.setXY(i.getAlignToXY(h,e,j),i.anim&&!!g?i.anim(g):false)},getConstrainVector:function(i,g){if(!(i instanceof Ext.util.Region)){i=Ext.get(i).getViewRegion()}var k=this.getRegion(),e=[0,0],j=(this.shadow&&!this.shadowDisabled)?this.shadow.getShadowSize():undefined,h=false;if(g){k.translateBy(g[0]-k.x,g[1]-k.y)}if(j){i.adjust(j[0],-j[1],-j[2],j[3])}if(k.right>i.right){h=true;e[0]=(i.right-k.right)}if(k.left+e[0]<i.left){h=true;e[0]=(i.left-k.left)}if(k.bottom>i.bottom){h=true;e[1]=(i.bottom-k.bottom)}if(k.top+e[1]<i.top){h=true;e[1]=(i.top-k.top)}return h?e:false},getCenterXY:function(){return this.getAlignToXY(d,"c-c")},center:function(e){return this.alignTo(e||d,"c-c")}}}()));Ext.dom.Element.override({animate:function(b){var d=this,c,e,a=d.dom.id||Ext.id(d.dom);if(!Ext.fx.Manager.hasFxBlock(a)){if(b.listeners){c=b.listeners;delete b.listeners}if(b.internalListeners){b.listeners=b.internalListeners;delete b.internalListeners}e=new Ext.fx.Anim(d.anim(b));if(c){e.on(c)}Ext.fx.Manager.queueFx(e)}return d},anim:function(a){if(!Ext.isObject(a)){return(a)?{}:false}var b=this,c=a.duration||Ext.fx.Anim.prototype.duration,e=a.easing||"ease",d;if(a.stopAnimation){b.stopAnimation()}Ext.applyIf(a,Ext.fx.Manager.getFxDefaults(b.id));Ext.fx.Manager.setFxDefaults(b.id,{delay:0});d={target:b.dom,remove:a.remove,alternate:a.alternate||false,duration:c,easing:e,callback:a.callback,listeners:a.listeners,iterations:a.iterations||1,scope:a.scope,block:a.block,concurrent:a.concurrent,delay:a.delay||0,paused:true,keyframes:a.keyframes,from:a.from||{},to:Ext.apply({},a)};Ext.apply(d.to,a.to);delete d.to.to;delete d.to.from;delete d.to.remove;delete d.to.alternate;delete d.to.keyframes;delete d.to.iterations;delete d.to.listeners;delete d.to.target;delete d.to.paused;delete d.to.callback;delete d.to.scope;delete d.to.duration;delete d.to.easing;delete d.to.concurrent;delete d.to.block;delete d.to.stopAnimation;delete d.to.delay;return d},slideIn:function(c,b,d){var g=this,j=g.dom.style,i,a,e,h;c=c||"t";b=b||{};i=function(){var n=this,m=b.listeners,o,k,p,l;if(!d){g.fixDisplay()}o=g.getBox();if((c=="t"||c=="b")&&o.height===0){o.height=g.dom.scrollHeight}else{if((c=="l"||c=="r")&&o.width===0){o.width=g.dom.scrollWidth}}k=g.getStyles("width","height","left","right","top","bottom","position","z-index",true);g.setSize(o.width,o.height);if(b.preserveScroll){e=g.cacheScrollValues()}l=g.wrap({id:Ext.id()+"-anim-wrap-for-"+g.id,style:{visibility:d?"visible":"hidden"}});h=l.dom.parentNode;l.setPositioning(g.getPositioning());if(l.isStyle("position","static")){l.position("relative")}g.clearPositioning("auto");l.clip();if(e){e()}g.setStyle({visibility:"",position:"absolute"});if(d){l.setSize(o.width,o.height)}switch(c){case"t":p={from:{width:o.width+"px",height:"0px"},to:{width:o.width+"px",height:o.height+"px"}};j.bottom="0px";break;case"l":p={from:{width:"0px",height:o.height+"px"},to:{width:o.width+"px",height:o.height+"px"}};j.right="0px";break;case"r":p={from:{x:o.x+o.width,width:"0px",height:o.height+"px"},to:{x:o.x,width:o.width+"px",height:o.height+"px"}};break;case"b":p={from:{y:o.y+o.height,width:o.width+"px",height:"0px"},to:{y:o.y,width:o.width+"px",height:o.height+"px"}};break;case"tl":p={from:{x:o.x,y:o.y,width:"0px",height:"0px"},to:{width:o.width+"px",height:o.height+"px"}};j.bottom="0px";j.right="0px";break;case"bl":p={from:{y:o.y+o.height,width:"0px",height:"0px"},to:{y:o.y,width:o.width+"px",height:o.height+"px"}};j.bottom="0px";break;case"br":p={from:{x:o.x+o.width,y:o.y+o.height,width:"0px",height:"0px"},to:{x:o.x,y:o.y,width:o.width+"px",height:o.height+"px"}};break;case"tr":p={from:{x:o.x+o.width,width:"0px",height:"0px"},to:{x:o.x,width:o.width+"px",height:o.height+"px"}};j.right="0px";break}l.show();a=Ext.apply({},b);delete a.listeners;a=new Ext.fx.Anim(Ext.applyIf(a,{target:l,duration:500,easing:"ease-out",from:d?p.to:p.from,to:d?p.from:p.to}));a.on("afteranimate",function(){g.setStyle(k);if(d){if(b.useDisplay){g.setDisplayed(false)}else{g.hide()}}if(l.dom){if(l.dom.parentNode){l.dom.parentNode.insertBefore(g.dom,l.dom)}else{h.appendChild(g.dom)}l.remove()}if(e){e()}n.end()});if(m){a.on(m)}};g.animate({duration:b.duration?Math.max(b.duration,500)*2:1000,listeners:{beforeanimate:i}});return g},slideOut:function(a,b){return this.slideIn(a,b,true)},puff:function(e){var d=this,b,c=d.getBox(),a=d.getStyles("width","height","left","right","top","bottom","position","z-index","font-size","opacity",true);e=Ext.applyIf(e||{},{easing:"ease-out",duration:500,useDisplay:false});b=function(){d.clearOpacity();d.show();this.to={width:c.width*2,height:c.height*2,x:c.x-(c.width/2),y:c.y-(c.height/2),opacity:0,fontSize:"200%"};this.on("afteranimate",function(){if(d.dom){if(e.useDisplay){d.setDisplayed(false)}else{d.hide()}d.setStyle(a);e.callback.call(e.scope)}})};d.animate({duration:e.duration,easing:e.easing,listeners:{beforeanimate:{fn:b}}});return d},switchOff:function(c){var b=this,a;c=Ext.applyIf(c||{},{easing:"ease-in",duration:500,remove:false,useDisplay:false});a=function(){var h=this,g=b.getSize(),i=b.getXY(),e,d;b.clearOpacity();b.clip();d=b.getPositioning();e=new Ext.fx.Animator({target:b,duration:c.duration,easing:c.easing,keyframes:{33:{opacity:0.3},66:{height:1,y:i[1]+g.height/2},100:{width:1,x:i[0]+g.width/2}}});e.on("afteranimate",function(){if(c.useDisplay){b.setDisplayed(false)}else{b.hide()}b.clearOpacity();b.setPositioning(d);b.setSize(g);h.end()})};b.animate({duration:(Math.max(c.duration,500)*2),listeners:{beforeanimate:{fn:a}}});return b},frame:function(a,d,e){var c=this,b;a=a||"#C3DAF9";d=d||1;e=e||{};b=function(){c.show();var i=this,j=c.getBox(),h=Ext.getBody().createChild({id:c.id+"-anim-proxy",style:{position:"absolute","pointer-events":"none","z-index":35000,border:"0px solid "+a}}),g;g=new Ext.fx.Anim({target:h,duration:e.duration||1000,iterations:d,from:{top:j.y,left:j.x,borderWidth:0,opacity:1,height:j.height,width:j.width},to:{top:j.y-20,left:j.x-20,borderWidth:10,opacity:0,height:j.height+40,width:j.width+40}});g.on("afteranimate",function(){h.remove();i.end()})};c.animate({duration:(Math.max(e.duration,500)*2)||2000,listeners:{beforeanimate:{fn:b}}});return c},ghost:function(a,d){var c=this,b;a=a||"b";b=function(){var h=c.getWidth(),g=c.getHeight(),i=c.getXY(),e=c.getPositioning(),j={opacity:0};switch(a){case"t":j.y=i[1]-g;break;case"l":j.x=i[0]-h;break;case"r":j.x=i[0]+h;break;case"b":j.y=i[1]+g;break;case"tl":j.x=i[0]-h;j.y=i[1]-g;break;case"bl":j.x=i[0]-h;j.y=i[1]+g;break;case"br":j.x=i[0]+h;j.y=i[1]+g;break;case"tr":j.x=i[0]+h;j.y=i[1]-g;break}this.to=j;this.on("afteranimate",function(){if(c.dom){c.hide();c.clearOpacity();c.setPositioning(e)}})};c.animate(Ext.applyIf(d||{},{duration:500,easing:"ease-out",listeners:{beforeanimate:{fn:b}}}));return c},highlight:function(d,b){var i=this,e=i.dom,k={},h,l,g,c,a,j;b=b||{};c=b.listeners||{};g=b.attr||"backgroundColor";k[g]=d||"ffff9c";if(!b.to){l={};l[g]=b.endColor||i.getColor(g,"ffffff","")}else{l=b.to}b.listeners=Ext.apply(Ext.apply({},c),{beforeanimate:function(){h=e.style[g];i.clearOpacity();i.show();a=c.beforeanimate;if(a){j=a.fn||a;return j.apply(a.scope||c.scope||window,arguments)}},afteranimate:function(){if(e){e.style[g]=h}a=c.afteranimate;if(a){j=a.fn||a;j.apply(a.scope||c.scope||window,arguments)}}});i.animate(Ext.apply({},b,{duration:1000,easing:"ease-in",from:k,to:l}));return i},pause:function(a){var b=this;Ext.fx.Manager.setFxDefaults(b.id,{delay:a});return b},fadeIn:function(b){var a=this;a.animate(Ext.apply({},b,{opacity:1,internalListeners:{beforeanimate:function(c){if(a.isStyle("display","none")){a.setDisplayed("")}else{a.show()}}}}));return this},fadeOut:function(b){var a=this;b=Ext.apply({opacity:0,internalListeners:{afteranimate:function(c){var d=a.dom;if(d&&c.to.opacity===0){if(b.useDisplay){a.setDisplayed(false)}else{a.hide()}}}}},b);a.animate(b);return a},scale:function(a,b,c){this.animate(Ext.apply({},c,{width:a,height:b}));return this},shift:function(a){this.animate(a);return this}});Ext.dom.Element.override({initDD:function(c,b,d){var a=new Ext.dd.DD(Ext.id(this.dom),c,b);return Ext.apply(a,d)},initDDProxy:function(c,b,d){var a=new Ext.dd.DDProxy(Ext.id(this.dom),c,b);return Ext.apply(a,d)},initDDTarget:function(c,b,d){var a=new Ext.dd.DDTarget(Ext.id(this.dom),c,b);return Ext.apply(a,d)}});(function(){var b=Ext.dom.Element,i="visibility",g="display",n="none",e="hidden",m="visible",o="offsets",j="asclass",a="nosize",c="originalDisplay",d="visibilityMode",h="isVisible",l=Ext.baseCSSPrefix+"hide-offsets",k=function(q){var r=(q.$cache||q.getCache()).data,s=r[c];if(s===undefined){r[c]=s=""}return s},p=function(r){var s=(r.$cache||r.getCache()).data,q=s[d];if(q===undefined){s[d]=q=b.VISIBILITY}return q};b.override({originalDisplay:"",visibilityMode:1,setVisible:function(u,q){var s=this,t=s.dom,r=p(s);if(typeof q=="string"){switch(q){case g:r=b.DISPLAY;break;case i:r=b.VISIBILITY;break;case o:r=b.OFFSETS;break;case a:case j:r=b.ASCLASS;break}s.setVisibilityMode(r);q=false}if(!q||!s.anim){if(r==b.DISPLAY){return s.setDisplayed(u)}else{if(r==b.OFFSETS){s[u?"removeCls":"addCls"](l)}else{if(r==b.VISIBILITY){s.fixDisplay();t.style.visibility=u?"":e}else{if(r==b.ASCLASS){s[u?"removeCls":"addCls"](s.visibilityCls||b.visibilityCls)}}}}}else{if(u){s.setOpacity(0.01);s.setVisible(true)}if(!Ext.isObject(q)){q={duration:350,easing:"ease-in"}}s.animate(Ext.applyIf({callback:function(){if(!u){s.setVisible(false).setOpacity(1)}},to:{opacity:(u)?1:0}},q))}(s.$cache||s.getCache()).data[h]=u;return s},hasMetrics:function(){var q=p(this);return this.isVisible()||(q==b.OFFSETS)||(q==b.VISIBILITY)},toggle:function(q){var r=this;r.setVisible(!r.isVisible(),r.anim(q));return r},setDisplayed:function(q){if(typeof q=="boolean"){q=q?k(this):n}this.setStyle(g,q);return this},fixDisplay:function(){var q=this;if(q.isStyle(g,n)){q.setStyle(i,e);q.setStyle(g,k(q));if(q.isStyle(g,n)){q.setStyle(g,"block")}}},hide:function(q){if(typeof q=="string"){this.setVisible(false,q);return this}this.setVisible(false,this.anim(q));return this},show:function(q){if(typeof q=="string"){this.setVisible(true,q);return this}this.setVisible(true,this.anim(q));return this}})}());(function(){var r=Ext.dom.Element,n="left",k="right",q="top",h="bottom",o="position",j="static",x="relative",p="auto",v="z-index",u="BODY",c="padding",t="border",s="-left",m="-right",a="-top",l="-bottom",g="-width",e={l:t+s+g,r:t+m+g,t:t+a+g,b:t+l+g},d={l:c+s,r:c+m,t:c+a,b:c+l},w=[d.l,d.r,d.t,d.b],b=[e.l,e.r,e.t,e.b],i=["position","top","left"];r.override({getX:function(){return r.getX(this.dom)},getY:function(){return r.getY(this.dom)},getXY:function(){return r.getXY(this.dom)},getOffsetsTo:function(y){var A=this.getXY(),z=Ext.fly(y,"_internal").getXY();return[A[0]-z[0],A[1]-z[1]]},setX:function(y,z){return this.setXY([y,this.getY()],z)},setY:function(A,z){return this.setXY([this.getX(),A],z)},setLeft:function(y){this.setStyle(n,this.addUnits(y));return this},setTop:function(y){this.setStyle(q,this.addUnits(y));return this},setRight:function(y){this.setStyle(k,this.addUnits(y));return this},setBottom:function(y){this.setStyle(h,this.addUnits(y));return this},setXY:function(A,y){var z=this;if(!y||!z.anim){r.setXY(z.dom,A)}else{if(!Ext.isObject(y)){y={}}z.animate(Ext.applyIf({to:{x:A[0],y:A[1]}},y))}return z},pxRe:/^\d+(?:\.\d*)?px$/i,getLocalX:function(){var A=this,z,y=A.getStyle(n);if(!y||y===p){return 0}if(y&&A.pxRe.test(y)){return parseFloat(y)}y=A.getX();z=A.dom.offsetParent;if(z){y-=Ext.fly(z).getX()}return y},getLocalY:function(){var A=this,z,B=A.getStyle(q);if(!B||B===p){return 0}if(B&&A.pxRe.test(B)){return parseFloat(B)}B=A.getY();z=A.dom.offsetParent;if(z){B-=Ext.fly(z).getY()}return B},getLeft:function(y){return y?this.getLocalX():this.getX()},getRight:function(y){return(y?this.getLocalX():this.getX())+this.getWidth()},getTop:function(y){return y?this.getLocalY():this.getY()},getBottom:function(y){return(y?this.getLocalY():this.getY())+this.getHeight()},translatePoints:function(z,G){var B=this,A=B.getStyle(i),C=A.position=="relative",F=parseFloat(A.left),E=parseFloat(A.top),D=B.getXY();if(Ext.isArray(z)){G=z[1];z=z[0]}if(isNaN(F)){F=C?0:B.dom.offsetLeft}if(isNaN(E)){E=C?0:B.dom.offsetTop}F=(typeof z=="number")?z-D[0]+F:undefined;E=(typeof G=="number")?G-D[1]+E:undefined;return{left:F,top:E}},setBox:function(C,D,z){var B=this,y=C.width,A=C.height;if((D&&!B.autoBoxAdjust)&&!B.isBorderBox()){y-=(B.getBorderWidth("lr")+B.getPadding("lr"));A-=(B.getBorderWidth("tb")+B.getPadding("tb"))}B.setBounds(C.x,C.y,y,A,z);return B},getBox:function(D,I){var F=this,M,z,H,C,K,A,y,L,G,J,B,E;if(!I){M=F.getXY()}else{M=F.getStyle([n,q]);M=[parseFloat(M.left)||0,parseFloat(M.top)||0]}J=F.getWidth();B=F.getHeight();if(!D){E={x:M[0],y:M[1],0:M[0],1:M[1],width:J,height:B}}else{C=F.getStyle(w);K=F.getStyle(b);A=(parseFloat(K[e.l])||0)+(parseFloat(C[d.l])||0);y=(parseFloat(K[e.r])||0)+(parseFloat(C[d.r])||0);L=(parseFloat(K[e.t])||0)+(parseFloat(C[d.t])||0);G=(parseFloat(K[e.b])||0)+(parseFloat(C[d.b])||0);E={x:M[0]+A,y:M[1]+L,0:M[0]+A,1:M[1]+L,width:J-(A+y),height:B-(L+G)}}E.right=E.x+E.width;E.bottom=E.y+E.height;return E},getPageBox:function(B){var D=this,z=D.dom,F=z.nodeName==u,G=F?Ext.dom.AbstractElement.getViewWidth():z.offsetWidth,C=F?Ext.dom.AbstractElement.getViewHeight():z.offsetHeight,I=D.getXY(),H=I[1],y=I[0]+G,E=I[1]+C,A=I[0];if(B){return new Ext.util.Region(H,y,E,A)}else{return{left:A,top:H,width:G,height:C,right:y,bottom:E}}},setLocation:function(z,B,A){return this.setXY([z,B],A)},moveTo:function(z,B,A){return this.setXY([z,B],A)},position:function(D,C,z,B){var A=this;if(!D&&A.isStyle(o,j)){A.setStyle(o,x)}else{if(D){A.setStyle(o,D)}}if(C){A.setStyle(v,C)}if(z||B){A.setXY([z||false,B||false])}},clearPositioning:function(y){y=y||"";this.setStyle({left:y,right:y,top:y,bottom:y,"z-index":"",position:j});return this},getPositioning:function(){var y=this.getStyle([n,q,o,k,h,v]);y[k]=y[n]?"":y[k];y[h]=y[q]?"":y[h];return y},setPositioning:function(y){var A=this,z=A.dom.style;A.setStyle(y);if(y.right==p){z.right=""}if(y.bottom==p){z.bottom=""}return A},move:function(H,A,B){var E=this,K=E.getXY(),I=K[0],G=K[1],C=[I-A,G],J=[I+A,G],F=[I,G-A],z=[I,G+A],D={l:C,left:C,r:J,right:J,t:F,top:F,up:F,b:z,bottom:z,down:z};H=H.toLowerCase();E.moveTo(D[H][0],D[H][1],B)},setLeftTop:function(A,z){var y=this.dom.style;y.left=r.addUnits(A);y.top=r.addUnits(z);return this},getRegion:function(){return this.getPageBox(true)},getViewRegion:function(){var C=this,A=C.dom.nodeName==u,z,F,E,D,B,y;if(A){z=C.getScroll();D=z.left;E=z.top;B=Ext.dom.AbstractElement.getViewportWidth();y=Ext.dom.AbstractElement.getViewportHeight()}else{F=C.getXY();D=F[0]+C.getBorderWidth("l")+C.getPadding("l");E=F[1]+C.getBorderWidth("t")+C.getPadding("t");B=C.getWidth(true);y=C.getHeight(true)}return new Ext.util.Region(E,D+B-1,E+y-1,D)},setBounds:function(A,E,C,z,B){var D=this;if(!B||!D.anim){D.setSize(C,z);D.setLocation(A,E)}else{if(!Ext.isObject(B)){B={}}D.animate(Ext.applyIf({to:{x:A,y:E,width:D.adjustWidth(C),height:D.adjustHeight(z)}},B))}return D},setRegion:function(z,y){return this.setBounds(z.left,z.top,z.right-z.left,z.bottom-z.top,y)}})}());Ext.dom.Element.override({isScrollable:function(){var a=this.dom;return a.scrollHeight>a.clientHeight||a.scrollWidth>a.clientWidth},getScroll:function(){var i=this.dom,h=document,a=h.body,c=h.documentElement,b,g,e;if(i==h||i==a){if(Ext.isIE&&Ext.isStrict){b=c.scrollLeft;g=c.scrollTop}else{b=window.pageXOffset;g=window.pageYOffset}e={left:b||(a?a.scrollLeft:0),top:g||(a?a.scrollTop:0)}}else{e={left:i.scrollLeft,top:i.scrollTop}}return e},scrollBy:function(b,a,c){var d=this,e=d.dom;if(b.length){c=a;a=b[1];b=b[0]}else{if(typeof b!="number"){c=a;a=b.y;b=b.x}}if(b){d.scrollTo("left",Math.max(Math.min(e.scrollLeft+b,e.scrollWidth-e.clientWidth),0),c)}if(a){d.scrollTo("top",Math.max(Math.min(e.scrollTop+a,e.scrollHeight-e.clientHeight),0),c)}return d},scrollTo:function(c,e,a){var g=/top/i.test(c),d=this,h=d.dom,b,i;if(!a||!d.anim){i="scroll"+(g?"Top":"Left");h[i]=e;h[i]=e}else{b={to:{}};b.to["scroll"+(g?"Top":"Left")]=e;if(Ext.isObject(a)){Ext.applyIf(b,a)}d.animate(b)}return d},scrollIntoView:function(b,g,c){b=Ext.getDom(b)||Ext.getBody().dom;var d=this.dom,i=this.getOffsetsTo(b),h=i[0]+b.scrollLeft,l=i[1]+b.scrollTop,a=l+d.offsetHeight,m=h+d.offsetWidth,p=b.clientHeight,o=parseInt(b.scrollTop,10),e=parseInt(b.scrollLeft,10),j=o+p,n=e+b.clientWidth,k;if(d.offsetHeight>p||l<o){k=l}else{if(a>j){k=a-p}}if(k!=null){Ext.get(b).scrollTo("top",k,c)}if(g!==false){k=null;if(d.offsetWidth>b.clientWidth||h<e){k=h}else{if(m>n){k=m-b.clientWidth}}if(k!=null){Ext.get(b).scrollTo("left",k,c)}}return this},scrollChildIntoView:function(b,a){Ext.fly(b,"_scrollChildIntoView").scrollIntoView(this,a)},scroll:function(m,b,d){if(!this.isScrollable()){return false}var e=this.dom,g=e.scrollLeft,p=e.scrollTop,n=e.scrollWidth,k=e.scrollHeight,i=e.clientWidth,a=e.clientHeight,c=false,o,j={l:Math.min(g+b,n-i),r:o=Math.max(g-b,0),t:Math.max(p-b,0),b:Math.min(p+b,k-a)};j.d=j.b;j.u=j.t;m=m.substr(0,1);if((o=j[m])>-1){c=true;this.scrollTo(m=="l"||m=="r"?"left":"top",o,this.anim(d))}return c}});(function(){var p=Ext.dom.Element,m=document.defaultView,n=/table-row|table-.*-group/,a="_internal",r="hidden",o="height",g="width",e="isClipped",i="overflow",l="overflow-x",j="overflow-y",s="originalClip",b=/#document|body/i,t,d,q,h,u;if(!m||!m.getComputedStyle){p.prototype.getStyle=function(z,y){var L=this,G=L.dom,J=typeof z!="string",k=L.styleHooks,w=z,x=w,F=1,B=y,K,C,v,A,E,H,D;if(J){v={};w=x[0];D=0;if(!(F=x.length)){return v}}if(!G||G.documentElement){return v||""}C=G.style;if(y){H=C}else{H=G.currentStyle;if(!H){B=true;H=C}}do{A=k[w];if(!A){k[w]=A={name:p.normalize(w)}}if(A.get){E=A.get(G,L,B,H)}else{K=A.name;if(A.canThrow){try{E=H[K]}catch(I){E=""}}else{E=H?H[K]:""}}if(!J){return E}v[w]=E;w=x[++D]}while(D<F);return v}}p.override({getHeight:function(x,v){var w=this,z=w.dom,y=w.isStyle("display","none"),k,A;if(y){return 0}k=Math.max(z.offsetHeight,z.clientHeight)||0;if(Ext.supports.Direct2DBug){A=w.adjustDirect2DDimension(o);if(v){k+=A}else{if(A>0&&A<0.5){k++}}}if(x){k-=w.getBorderWidth("tb")+w.getPadding("tb")}return(k<0)?0:k},getWidth:function(k,z){var x=this,A=x.dom,y=x.isStyle("display","none"),w,v,B;if(y){return 0}if(Ext.supports.BoundingClientRect){w=A.getBoundingClientRect();v=w.right-w.left;v=z?v:Math.ceil(v)}else{v=A.offsetWidth}v=Math.max(v,A.clientWidth)||0;if(Ext.supports.Direct2DBug){B=x.adjustDirect2DDimension(g);if(z){v+=B}else{if(B>0&&B<0.5){v++}}}if(k){v-=x.getBorderWidth("lr")+x.getPadding("lr")}return(v<0)?0:v},setWidth:function(v,k){var w=this;v=w.adjustWidth(v);if(!k||!w.anim){w.dom.style.width=w.addUnits(v)}else{if(!Ext.isObject(k)){k={}}w.animate(Ext.applyIf({to:{width:v}},k))}return w},setHeight:function(k,v){var w=this;k=w.adjustHeight(k);if(!v||!w.anim){w.dom.style.height=w.addUnits(k)}else{if(!Ext.isObject(v)){v={}}w.animate(Ext.applyIf({to:{height:k}},v))}return w},applyStyles:function(k){Ext.DomHelper.applyStyles(this.dom,k);return this},setSize:function(w,k,v){var x=this;if(Ext.isObject(w)){v=k;k=w.height;w=w.width}w=x.adjustWidth(w);k=x.adjustHeight(k);if(!v||!x.anim){x.dom.style.width=x.addUnits(w);x.dom.style.height=x.addUnits(k)}else{if(v===true){v={}}x.animate(Ext.applyIf({to:{width:w,height:k}},v))}return x},getViewSize:function(){var w=this,x=w.dom,v=b.test(x.nodeName),k;if(v){k={width:p.getViewWidth(),height:p.getViewHeight()}}else{k={width:x.clientWidth,height:x.clientHeight}}return k},getSize:function(k){return{width:this.getWidth(k),height:this.getHeight(k)}},adjustWidth:function(k){var v=this,w=(typeof k=="number");if(w&&v.autoBoxAdjust&&!v.isBorderBox()){k-=(v.getBorderWidth("lr")+v.getPadding("lr"))}return(w&&k<0)?0:k},adjustHeight:function(k){var v=this,w=(typeof k=="number");if(w&&v.autoBoxAdjust&&!v.isBorderBox()){k-=(v.getBorderWidth("tb")+v.getPadding("tb"))}return(w&&k<0)?0:k},getColor:function(w,x,C){var z=this.getStyle(w),y=C||C===""?C:"#",B,k,A=0;if(!z||(/transparent|inherit/.test(z))){return x}if(/^r/.test(z)){z=z.slice(4,z.length-1).split(",");k=z.length;for(;A<k;A++){B=parseInt(z[A],10);y+=(B<16?"0":"")+B.toString(16)}}else{z=z.replace("#","");y+=z.length==3?z.replace(/^(\w)(\w)(\w)$/,"$1$1$2$2$3$3"):z}return(y.length>5?y.toLowerCase():x)},setOpacity:function(v,k){var w=this;if(!w.dom){return w}if(!k||!w.anim){w.setStyle("opacity",v)}else{if(typeof k!="object"){k={duration:350,easing:"ease-in"}}w.animate(Ext.applyIf({to:{opacity:v}},k))}return w},clearOpacity:function(){return this.setOpacity("")},adjustDirect2DDimension:function(w){var B=this,v=B.dom,z=B.getStyle("display"),y=v.style.display,C=v.style.position,A=w===g?0:1,k=v.currentStyle,x;if(z==="inline"){v.style.display="inline-block"}v.style.position=z.match(n)?"absolute":"static";x=(parseFloat(k[w])||parseFloat(k.msTransformOrigin.split(" ")[A])*2)%1;v.style.position=C;if(z==="inline"){v.style.display=y}return x},clip:function(){var v=this,w=(v.$cache||v.getCache()).data,k;if(!w[e]){w[e]=true;k=v.getStyle([i,l,j]);w[s]={o:k[i],x:k[l],y:k[j]};v.setStyle(i,r);v.setStyle(l,r);v.setStyle(j,r)}return v},unclip:function(){var v=this,w=(v.$cache||v.getCache()).data,k;if(w[e]){w[e]=false;k=w[s];if(k.o){v.setStyle(i,k.o)}if(k.x){v.setStyle(l,k.x)}if(k.y){v.setStyle(j,k.y)}}return v},boxWrap:function(k){k=k||Ext.baseCSSPrefix+"box";var v=Ext.get(this.insertHtml("beforeBegin","<div class='"+k+"'>"+Ext.String.format(p.boxMarkup,k)+"</div>"));Ext.DomQuery.selectNode("."+k+"-mc",v.dom).appendChild(this.dom);return v},getComputedHeight:function(){var v=this,k=Math.max(v.dom.offsetHeight,v.dom.clientHeight);if(!k){k=parseFloat(v.getStyle(o))||0;if(!v.isBorderBox()){k+=v.getFrameWidth("tb")}}return k},getComputedWidth:function(){var v=this,k=Math.max(v.dom.offsetWidth,v.dom.clientWidth);if(!k){k=parseFloat(v.getStyle(g))||0;if(!v.isBorderBox()){k+=v.getFrameWidth("lr")}}return k},getFrameWidth:function(v,k){return(k&&this.isBorderBox())?0:(this.getPadding(v)+this.getBorderWidth(v))},addClsOnOver:function(w,z,v){var x=this,y=x.dom,k=Ext.isFunction(z);x.hover(function(){if(k&&z.call(v||x,x)===false){return}Ext.fly(y,a).addCls(w)},function(){Ext.fly(y,a).removeCls(w)});return x},addClsOnFocus:function(w,z,v){var x=this,y=x.dom,k=Ext.isFunction(z);x.on("focus",function(){if(k&&z.call(v||x,x)===false){return false}Ext.fly(y,a).addCls(w)});x.on("blur",function(){Ext.fly(y,a).removeCls(w)});return x},addClsOnClick:function(w,z,v){var x=this,y=x.dom,k=Ext.isFunction(z);x.on("mousedown",function(){if(k&&z.call(v||x,x)===false){return false}Ext.fly(y,a).addCls(w);var B=Ext.getDoc(),A=function(){Ext.fly(y,a).removeCls(w);B.removeListener("mouseup",A)};B.on("mouseup",A)});return x},getStyleSize:function(){var z=this,A=this.dom,v=b.test(A.nodeName),y,k,x;if(v){return{width:p.getViewWidth(),height:p.getViewHeight()}}y=z.getStyle([o,g],true);if(y.width&&y.width!="auto"){k=parseFloat(y.width);if(z.isBorderBox()){k-=z.getFrameWidth("lr")}}if(y.height&&y.height!="auto"){x=parseFloat(y.height);if(z.isBorderBox()){x-=z.getFrameWidth("tb")}}return{width:k||z.getWidth(true),height:x||z.getHeight(true)}},selectable:function(){var k=this;k.dom.unselectable="off";k.on("selectstart",function(v){v.stopPropagation();return true});k.applyStyles("-moz-user-select: text; -khtml-user-select: text;");k.removeCls(Ext.baseCSSPrefix+"unselectable");return k},unselectable:function(){var k=this;k.dom.unselectable="on";k.swallowEvent("selectstart",true);k.applyStyles("-moz-user-select:-moz-none;-khtml-user-select:none;");k.addCls(Ext.baseCSSPrefix+"unselectable");return k}});p.prototype.styleHooks=t=Ext.dom.AbstractElement.prototype.styleHooks;if(Ext.isIE6||Ext.isIE7){t.fontSize=t["font-size"]={name:"fontSize",canThrow:true};t.fontStyle=t["font-style"]={name:"fontStyle",canThrow:true};t.fontFamily=t["font-family"]={name:"fontFamily",canThrow:true}}if(Ext.isIEQuirks||Ext.isIE&&Ext.ieVersion<=8){function c(x,v,w,k){if(k[this.styleName]=="none"){return"0px"}return k[this.name]}d=["Top","Right","Bottom","Left"];q=d.length;while(q--){h=d[q];u="border"+h+"Width";t["border-"+h.toLowerCase()+"-width"]=t[u]={name:u,styleName:"border"+h+"Style",get:c}}}}());Ext.onReady(function(){var c=/alpha\(opacity=(.*)\)/i,b=/^\s+|\s+$/g,a=Ext.dom.Element.prototype.styleHooks;a.opacity={name:"opacity",afterSet:function(g,e,d){if(d.isLayer){d.onOpacitySet(e)}}};if(!Ext.supports.Opacity&&Ext.isIE){Ext.apply(a.opacity,{get:function(h){var g=h.style.filter,e,d;if(g.match){e=g.match(c);if(e){d=parseFloat(e[1]);if(!isNaN(d)){return d?d/100:0}}}return 1},set:function(h,e){var d=h.style,g=d.filter.replace(c,"").replace(b,"");d.zoom=1;if(typeof(e)=="number"&&e>=0&&e<1){e*=100;d.filter=g+(g.length?" ":"")+"alpha(opacity="+e+")"}else{d.filter=g}}})}});Ext.dom.Element.override({select:function(a){return Ext.dom.Element.select(a,false,this.dom)}});Ext.define("Ext.dom.CompositeElementLite",{alternateClassName:"Ext.CompositeElementLite",requires:["Ext.dom.Element","Ext.dom.Query"],statics:{importElementMethods:function(){var b,c=Ext.dom.Element.prototype,a=this.prototype;for(b in c){if(typeof c[b]=="function"){(function(d){a[d]=a[d]||function(){return this.invoke(d,arguments)}}).call(a,b)}}}},constructor:function(b,a){this.elements=[];this.add(b,a);this.el=new Ext.dom.AbstractElement.Fly()},isComposite:true,getElement:function(a){return this.el.attach(a)},transformElement:function(a){return Ext.getDom(a)},getCount:function(){return this.elements.length},add:function(c,a){var e=this.elements,b,d;if(!c){return this}if(typeof c=="string"){c=Ext.dom.Element.selectorFunction(c,a)}else{if(c.isComposite){c=c.elements}else{if(!Ext.isIterable(c)){c=[c]}}}for(b=0,d=c.length;b<d;++b){e.push(this.transformElement(c[b]))}return this},invoke:function(d,a){var g=this.elements,e=g.length,c,b;d=Ext.dom.Element.prototype[d];for(b=0;b<e;b++){c=g[b];if(c){d.apply(this.getElement(c),a)}}return this},item:function(b){var c=this.elements[b],a=null;if(c){a=this.getElement(c)}return a},addListener:function(b,j,h,g){var d=this.elements,a=d.length,c,k;for(c=0;c<a;c++){k=d[c];if(k){Ext.EventManager.on(k,b,j,h||k,g)}}return this},each:function(g,d){var h=this,c=h.elements,a=c.length,b,j;for(b=0;b<a;b++){j=c[b];if(j){j=this.getElement(j);if(g.call(d||j,j,h,b)===false){break}}}return h},fill:function(a){var b=this;b.elements=[];b.add(a);return b},filter:function(b){var h=this,c=h.elements,g=c.length,d=[],e=0,j=typeof b=="function",k,a;for(;e<g;e++){a=c[e];k=false;if(a){a=h.getElement(a);if(j){k=b.call(a,a,h,e)!==false}else{k=a.is(b)}if(k){d.push(h.transformElement(a))}}}h.elements=d;return h},indexOf:function(a){return Ext.Array.indexOf(this.elements,this.transformElement(a))},replaceElement:function(e,c,a){var b=!isNaN(e)?e:this.indexOf(e),g;if(b>-1){c=Ext.getDom(c);if(a){g=this.elements[b];g.parentNode.insertBefore(c,g);Ext.removeNode(g)}Ext.Array.splice(this.elements,b,1,c)}return this},clear:function(){this.elements=[]},addElements:function(d,b){if(!d){return this}if(typeof d=="string"){d=Ext.dom.Element.selectorFunction(d,b)}var c=this.elements,a=d.length,g;for(g=0;g<a;g++){c.push(Ext.get(d[g]))}return this},first:function(){return this.item(0)},last:function(){return this.item(this.getCount()-1)},contains:function(a){return this.indexOf(a)!=-1},removeElement:function(e,i){e=[].concat(e);var d=this,g=d.elements,c=e.length,h,b,a;for(a=0;a<c;a++){h=e[a];if((b=(g[h]||g[h=d.indexOf(h)]))){if(i){if(b.dom){b.remove()}else{Ext.removeNode(b)}}Ext.Array.erase(g,h,1)}}return d}},function(){this.importElementMethods();this.prototype.on=this.prototype.addListener;if(Ext.DomQuery){Ext.dom.Element.selectorFunction=Ext.DomQuery.select}Ext.dom.Element.select=function(a,b){var c;if(typeof a=="string"){c=Ext.dom.Element.selectorFunction(a,b)}else{if(a.length!==undefined){c=a}else{}}return new Ext.CompositeElementLite(c)};Ext.select=function(){return Ext.dom.Element.select.apply(Ext.dom.Element,arguments)}});Ext.define("Ext.util.Animate",{requires:["Ext.Element","Ext.CompositeElementLite"],uses:["Ext.fx.Manager","Ext.fx.Anim"],animate:function(a){var b=this;if(Ext.fx.Manager.hasFxBlock(b.id)){return b}Ext.fx.Manager.queueFx(new Ext.fx.Anim(b.anim(a)));return this},anim:function(a){if(!Ext.isObject(a)){return(a)?{}:false}var b=this;if(a.stopAnimation){b.stopAnimation()}Ext.applyIf(a,Ext.fx.Manager.getFxDefaults(b.id));return Ext.apply({target:b,paused:true},a)},stopFx:Ext.Function.alias(Ext.util.Animate,"stopAnimation"),stopAnimation:function(){Ext.fx.Manager.stopAnimation(this.id);return this},syncFx:function(){Ext.fx.Manager.setFxDefaults(this.id,{concurrent:true});return this},sequenceFx:function(){Ext.fx.Manager.setFxDefaults(this.id,{concurrent:false});return this},hasActiveFx:Ext.Function.alias(Ext.util.Animate,"getActiveAnimation"),getActiveAnimation:function(){return Ext.fx.Manager.getActiveAnimation(this.id)}},function(){Ext.applyIf(Ext.Element.prototype,this.prototype);Ext.CompositeElementLite.importElementMethods()});Ext.define("Ext.util.ElementContainer",{childEls:[],constructor:function(){var b=this,a;if(b.hasOwnProperty("childEls")){a=b.childEls;delete b.childEls;b.addChildEls.apply(b,a)}},destroy:function(){var e=this,d=e.getChildEls(),g,a,c,b;for(c=d.length;c--;){a=d[c];if(typeof a!="string"){a=a.name}g=e[a];if(g){e[a]=null;g.remove()}}},addChildEls:function(){var b=this,a=arguments;if(b.hasOwnProperty("childEls")){b.childEls.push.apply(b.childEls,a)}else{b.childEls=b.getChildEls().concat(Array.prototype.slice.call(a))}b.prune(b.childEls,false)},applyChildEls:function(b,a){var e=this,g=e.getChildEls(),j,k,d,c,h;j=(a||e.id)+"-";for(d=g.length;d--;){k=g[d];if(typeof k=="string"){h=b.getById(j+k)}else{if((c=k.select)){h=Ext.select(c,true,b.dom)}else{if((c=k.selectNode)){h=Ext.get(Ext.DomQuery.selectNode(c,b.dom))}else{h=b.getById(k.id||(j+k.itemId))}}k=k.name}e[k]=h}},getChildEls:function(){var b=this,a;if(b.hasOwnProperty("childEls")){return b.childEls}a=b.self;return a.$childEls||b.getClassChildEls(a)},getClassChildEls:function(o){var k=this,p=o.$childEls,m,d,b,j,n,h,a,c,e,g,l;if(!p){g=o.superclass;if(g){g=g.self;c=[g.$childEls||k.getClassChildEls(g)];l=g.prototype.mixins||{}}else{c=[];l={}}e=o.prototype;h=e.mixins;for(a in h){if(h.hasOwnProperty(a)&&!l.hasOwnProperty(a)){n=h[a].self;c.push(n.$childEls||k.getClassChildEls(n))}}c.push(e.hasOwnProperty("childEls")&&e.childEls);for(d=0,b=c.length;d<b;++d){m=c[d];if(m&&m.length){if(!p){p=m}else{if(!j){j=true;p=p.slice(0)}p.push.apply(p,m)}}}o.$childEls=p=(p?k.prune(p,!j):[])}return p},prune:function(c,e){var b=c.length,d={},a;while(b--){a=c[b];if(typeof a!="string"){a=a.name}if(!d[a]){d[a]=1}else{if(e){e=false;c=c.slice(0)}Ext.Array.erase(c,b,1)}}return c},removeChildEls:function(g){var e=this,a=e.getChildEls(),d=(e.childEls=[]),h,b,c;for(b=0,h=a.length;b<h;++b){c=a[b];if(!g(c)){d.push(c)}}}});Ext.define("Ext.util.Renderable",{requires:["Ext.dom.Element"],frameCls:Ext.baseCSSPrefix+"frame",frameIdRegex:/[\-]frame\d+[TMB][LCR]$/,frameElementCls:{tl:[],tc:[],tr:[],ml:[],mc:[],mr:[],bl:[],bc:[],br:[]},frameElNames:["TL","TC","TR","ML","MC","MR","BL","BC","BR"],frameTpl:["{%this.renderDockedItems(out,values,0);%}",'<tpl if="top">','<tpl if="left"><div id="{fgid}TL" class="{frameCls}-tl {baseCls}-tl {baseCls}-{ui}-tl<tpl for="uiCls"> {parent.baseCls}-{parent.ui}-{.}-tl</tpl>" style="background-position: {tl}; padding-left: {frameWidth}px" role="presentation"></tpl>','<tpl if="right"><div id="{fgid}TR" class="{frameCls}-tr {baseCls}-tr {baseCls}-{ui}-tr<tpl for="uiCls"> {parent.baseCls}-{parent.ui}-{.}-tr</tpl>" style="background-position: {tr}; padding-right: {frameWidth}px" role="presentation"></tpl>','<div id="{fgid}TC" class="{frameCls}-tc {baseCls}-tc {baseCls}-{ui}-tc<tpl for="uiCls"> {parent.baseCls}-{parent.ui}-{.}-tc</tpl>" style="background-position: {tc}; height: {frameWidth}px" role="presentation"></div>','<tpl if="right"></div></tpl>','<tpl if="left"></div></tpl>',"</tpl>",'<tpl if="left"><div id="{fgid}ML" class="{frameCls}-ml {baseCls}-ml {baseCls}-{ui}-ml<tpl for="uiCls"> {parent.baseCls}-{parent.ui}-{.}-ml</tpl>" style="background-position: {ml}; padding-left: {frameWidth}px" role="presentation"></tpl>','<tpl if="right"><div id="{fgid}MR" class="{frameCls}-mr {baseCls}-mr {baseCls}-{ui}-mr<tpl for="uiCls"> {parent.baseCls}-{parent.ui}-{.}-mr</tpl>" style="background-position: {mr}; padding-right: {frameWidth}px" role="presentation"></tpl>','<div id="{fgid}MC" class="{frameCls}-mc {baseCls}-mc {baseCls}-{ui}-mc<tpl for="uiCls"> {parent.baseCls}-{parent.ui}-{.}-mc</tpl>" role="presentation">',"{%this.applyRenderTpl(out, values)%}","</div>",'<tpl if="right"></div></tpl>','<tpl if="left"></div></tpl>','<tpl if="bottom">','<tpl if="left"><div id="{fgid}BL" class="{frameCls}-bl {baseCls}-bl {baseCls}-{ui}-bl<tpl for="uiCls"> {parent.baseCls}-{parent.ui}-{.}-bl</tpl>" style="background-position: {bl}; padding-left: {frameWidth}px" role="presentation"></tpl>','<tpl if="right"><div id="{fgid}BR" class="{frameCls}-br {baseCls}-br {baseCls}-{ui}-br<tpl for="uiCls"> {parent.baseCls}-{parent.ui}-{.}-br</tpl>" style="background-position: {br}; padding-right: {frameWidth}px" role="presentation"></tpl>','<div id="{fgid}BC" class="{frameCls}-bc {baseCls}-bc {baseCls}-{ui}-bc<tpl for="uiCls"> {parent.baseCls}-{parent.ui}-{.}-bc</tpl>" style="background-position: {bc}; height: {frameWidth}px" role="presentation"></div>','<tpl if="right"></div></tpl>','<tpl if="left"></div></tpl>',"</tpl>","{%this.renderDockedItems(out,values,1);%}"],frameTableTpl:["{%this.renderDockedItems(out,values,0);%}","<table><tbody>",'<tpl if="top">',"<tr>",'<tpl if="left"><td id="{fgid}TL" class="{frameCls}-tl {baseCls}-tl {baseCls}-{ui}-tl<tpl for="uiCls"> {parent.baseCls}-{parent.ui}-{.}-tl</tpl>" style="background-position: {tl}; padding-left:{frameWidth}px" role="presentation"></td></tpl>','<td id="{fgid}TC" class="{frameCls}-tc {baseCls}-tc {baseCls}-{ui}-tc<tpl for="uiCls"> {parent.baseCls}-{parent.ui}-{.}-tc</tpl>" style="background-position: {tc}; height: {frameWidth}px" role="presentation"></td>','<tpl if="right"><td id="{fgid}TR" class="{frameCls}-tr {baseCls}-tr {baseCls}-{ui}-tr<tpl for="uiCls"> {parent.baseCls}-{parent.ui}-{.}-tr</tpl>" style="background-position: {tr}; padding-left: {frameWidth}px" role="presentation"></td></tpl>',"</tr>","</tpl>","<tr>",'<tpl if="left"><td id="{fgid}ML" class="{frameCls}-ml {baseCls}-ml {baseCls}-{ui}-ml<tpl for="uiCls"> {parent.baseCls}-{parent.ui}-{.}-ml</tpl>" style="background-position: {ml}; padding-left: {frameWidth}px" role="presentation"></td></tpl>','<td id="{fgid}MC" class="{frameCls}-mc {baseCls}-mc {baseCls}-{ui}-mc<tpl for="uiCls"> {parent.baseCls}-{parent.ui}-{.}-mc</tpl>" style="background-position: 0 0;" role="presentation">',"{%this.applyRenderTpl(out, values)%}","</td>",'<tpl if="right"><td id="{fgid}MR" class="{frameCls}-mr {baseCls}-mr {baseCls}-{ui}-mr<tpl for="uiCls"> {parent.baseCls}-{parent.ui}-{.}-mr</tpl>" style="background-position: {mr}; padding-left: {frameWidth}px" role="presentation"></td></tpl>',"</tr>",'<tpl if="bottom">',"<tr>",'<tpl if="left"><td id="{fgid}BL" class="{frameCls}-bl {baseCls}-bl {baseCls}-{ui}-bl<tpl for="uiCls"> {parent.baseCls}-{parent.ui}-{.}-bl</tpl>" style="background-position: {bl}; padding-left: {frameWidth}px" role="presentation"></td></tpl>','<td id="{fgid}BC" class="{frameCls}-bc {baseCls}-bc {baseCls}-{ui}-bc<tpl for="uiCls"> {parent.baseCls}-{parent.ui}-{.}-bc</tpl>" style="background-position: {bc}; height: {frameWidth}px" role="presentation"></td>','<tpl if="right"><td id="{fgid}BR" class="{frameCls}-br {baseCls}-br {baseCls}-{ui}-br<tpl for="uiCls"> {parent.baseCls}-{parent.ui}-{.}-br</tpl>" style="background-position: {br}; padding-left: {frameWidth}px" role="presentation"></td></tpl>',"</tr>","</tpl>","</tbody></table>","{%this.renderDockedItems(out,values,1);%}"],afterRender:function(){var b=this,c={},e=b.protoEl,d=b.getTargetEl(),a;b.finishRenderChildren();if(b.styleHtmlContent){d.addCls(b.styleHtmlCls)}e.writeTo(c);a=c.removed;if(a){d.removeCls(a)}a=c.cls;if(a.length){d.addCls(a)}a=c.style;if(c.style){d.setStyle(a)}b.protoEl=null;if(!b.ownerCt){b.updateLayout()}},afterFirstLayout:function(d,a){var e=this,c=Ext.isDefined(e.x),b=Ext.isDefined(e.y),h,g;if(e.floating&&(!c||!b)){if(e.floatParent){h=e.floatParent.getTargetEl().getViewRegion();g=e.el.getAlignToXY(e.floatParent.getTargetEl(),"c-c");h.left=g[0]-h.left;h.top=g[1]-h.top}else{g=e.el.getAlignToXY(e.container,"c-c");h=e.container.translatePoints(g[0],g[1])}e.x=c?e.x:h.left;e.y=b?e.y:h.top;c=b=true}if(c||b){e.setPosition(e.x,e.y)}e.onBoxReady(d,a);if(e.hasListeners.boxready){e.fireEvent("boxready",e,d,a)}},onBoxReady:Ext.emptyFn,applyRenderSelectors:function(){var d=this,b=d.renderSelectors,c=d.el,e=c.dom,a;d.applyChildEls(c);if(b){for(a in b){if(b.hasOwnProperty(a)&&b[a]){d[a]=Ext.get(Ext.DomQuery.selectNode(b[a],e))}}}},beforeRender:function(){var b=this,c=b.getTargetEl(),a=b.getComponentLayout();b.frame=b.frame||b.alwaysFramed;if(!a.initialized){a.initLayout()}if(c){c.setStyle(b.getOverflowStyle());b.overflowStyleSet=true}b.setUI(b.ui);if(b.disabled){b.disable(true)}},doApplyRenderTpl:function(c,a){var d=a.$comp,b;if(!d.rendered){b=d.initRenderTpl();b.applyOut(a.renderData,c)}},doAutoRender:function(){var a=this;if(!a.rendered){if(a.floating){a.render(document.body)}else{a.render(Ext.isBoolean(a.autoRender)?Ext.getBody():a.autoRender)}}},doRenderContent:function(a,c){var b=c.$comp;if(b.html){Ext.DomHelper.generateMarkup(b.html,a);delete b.html}if(b.tpl){if(!b.tpl.isTemplate){b.tpl=new Ext.XTemplate(b.tpl)}if(b.data){b.tpl.applyOut(b.data,a);delete b.data}}},doRenderFramingDockedItems:function(a,c,d){var b=c.$comp;if(!b.rendered&&b.doRenderDockedItems){c.renderData.$skipDockedItems=true;b.doRenderDockedItems.call(this,a,c,d)}},finishRender:function(a){var g=this,b,h,e,d,i,c;if(!g.el||g.$pid){if(g.container){d=g.container.getById(g.id,true)}else{d=Ext.getDom(g.id)}if(!g.el){g.wrapPrimaryEl(d)}else{delete g.$pid;if(!g.el.dom){g.wrapPrimaryEl(g.el)}d.parentNode.insertBefore(g.el.dom,d);Ext.removeNode(d)}}else{if(!g.rendering){b=g.initRenderTpl();if(b){h=g.initRenderData();b.insertFirst(g.getTargetEl(),h)}}}if(!g.container){g.container=Ext.get(g.el.dom.parentNode)}if(g.ctCls){g.container.addCls(g.ctCls)}g.onRender(g.container,a);if(!g.overflowStyleSet){g.getTargetEl().setStyle(g.getOverflowStyle())}g.el.setVisibilityMode(Ext.Element[g.hideMode.toUpperCase()]);if(g.overCls){g.el.hover(g.addOverCls,g.removeOverCls,g)}if(g.hasListeners.render){g.fireEvent("render",g)}if(g.contentEl){i=Ext.baseCSSPrefix;c=i+"hide-";e=Ext.get(g.contentEl);e.removeCls([i+"hidden",c+"display",c+"offsets",c+"nosize"]);g.getTargetEl().appendChild(e.dom)}g.afterRender();if(g.hasListeners.afterrender){g.fireEvent("afterrender",g)}g.initEvents();if(g.hidden){g.el.hide()}},finishRenderChildren:function(){var a=this.getComponentLayout();a.finishRender()},getElConfig:function(){var h=this,j=h.autoEl,e=h.getFrameInfo(),a={tag:"div",tpl:e?h.initFramingTpl(e.table):h.initRenderTpl()},b,d,g,k,c;h.initStyles(h.protoEl);h.protoEl.writeTo(a);h.protoEl.flush();if(Ext.isString(j)){a.tag=j}else{Ext.apply(a,j)}a.id=h.id;if(a.tpl){if(e){d=h.frameElNames;g=d.length;c=h.id+"-frame1";h.frameGenId=1;a.tplData=Ext.apply({},{$comp:h,fgid:c,ui:h.ui,uiCls:h.uiCls,frameCls:h.frameCls,baseCls:h.baseCls,frameWidth:e.maxWidth,top:!!e.top,left:!!e.left,right:!!e.right,bottom:!!e.bottom,renderData:h.initRenderData()},h.getFramePositions(e));for(b=0;b<g;b++){k=d[b];h.addChildEls({name:"frame"+k,id:c+k})}h.addChildEls({name:"frameBody",id:c+"MC"})}else{a.tplData=h.initRenderData()}}return a},initFramingTpl:function(b){var a=b?this.getTpl("frameTableTpl"):this.getTpl("frameTpl");if(a&&!a.applyRenderTpl){this.setupFramingTpl(a)}return a},setupFramingTpl:function(a){a.applyRenderTpl=this.doApplyRenderTpl;a.renderDockedItems=this.doRenderFramingDockedItems},getInsertPosition:function(a){if(a!==undefined){if(Ext.isNumber(a)){a=this.container.dom.childNodes[a]}else{a=Ext.getDom(a)}}return a},getRenderTree:function(){var a=this;if(!a.hasListeners.beforerender||a.fireEvent("beforerender",a)!==false){a.beforeRender();a.rendering=true;if(a.el){return{tag:"div",id:(a.$pid=Ext.id())}}return a.getElConfig()}return null},initContainer:function(a){var b=this;if(!a&&b.el){a=b.el.dom.parentNode;b.allowDomMove=false}b.container=a.dom?a:Ext.get(a);return b.container},initRenderData:function(){var a=this;return Ext.apply({$comp:a,id:a.id,ui:a.ui,uiCls:a.uiCls,baseCls:a.baseCls,componentCls:a.componentCls,frame:a.frame},a.renderData)},initRenderTpl:function(){var a=this.getTpl("renderTpl");if(a&&!a.renderContent){this.setupRenderTpl(a)}return a},onRender:function(d,e){var h=this,j=h.x,i=h.y,c,a,k,b=h.el,g=Ext.getBody().dom;if(Ext.scopeResetCSS&&!h.ownerCt){if(b.dom===g){b.parent().addCls(Ext.resetCls)}else{if(h.floating&&h.el.dom.parentNode===g){Ext.resetElement.appendChild(h.el)}else{h.resetEl=b.wrap(Ext.resetElementSpec,false,Ext.supports.CSS3LinearGradient?undefined:"*")}}}h.applyRenderSelectors();delete h.rendering;h.rendered=true;c=null;if(j!==undefined){c=c||{};c.x=j}if(i!==undefined){c=c||{};c.y=i}if(!h.getFrameInfo()&&Ext.isBorderBox){a=h.width;k=h.height;if(typeof a=="number"){c=c||{};c.width=a}if(typeof k=="number"){c=c||{};c.height=k}}h.lastBox=h.el.lastBox=c},render:function(c,b){var e=this,d=e.el&&(e.el=Ext.get(e.el)),h,a,g;Ext.suspendLayouts();c=e.initContainer(c);g=e.getInsertPosition(b);if(!d){a=e.getRenderTree();if(e.ownerLayout&&e.ownerLayout.transformItemRenderTree){a=e.ownerLayout.transformItemRenderTree(a)}if(a){if(g){d=Ext.DomHelper.insertBefore(g,a)}else{d=Ext.DomHelper.append(c,a)}e.wrapPrimaryEl(d)}}else{if(!e.hasListeners.beforerender||e.fireEvent("beforerender",e)!==false){e.initStyles(d);if(e.allowDomMove!==false){if(g){c.dom.insertBefore(d.dom,g)}else{c.dom.appendChild(d.dom)}}}else{h=true}}if(d&&!h){e.finishRender(b)}Ext.resumeLayouts(!c.isDetachedBody)},ensureAttachedToBody:function(c){var b=this,a;while(b.ownerCt){b=b.ownerCt}if(b.container.isDetachedBody){b.container=a=Ext.resetElement;a.appendChild(b.el.dom);if(c){b.updateLayout()}if(typeof b.x=="number"||typeof b.y=="number"){b.setPosition(b.x,b.y)}}},setupRenderTpl:function(a){a.renderBody=a.renderContent=this.doRenderContent},wrapPrimaryEl:function(a){this.el=Ext.get(a,true)},initFrame:function(){if(Ext.supports.CSS3BorderRadius||!this.frame){return}var h=this,e=h.getFrameInfo(),j,a,c,b,d=h.frameElNames,g=d.length,k;if(e){j=e.maxWidth;a=h.getFrameTpl(e.table);h.frameGenId=c=(h.frameGenId||0)+1;c=h.id+"-frame"+c;a.insertFirst(h.el,Ext.apply({$comp:h,fgid:c,ui:h.ui,uiCls:h.uiCls,frameCls:h.frameCls,baseCls:h.baseCls,frameWidth:j,top:!!e.top,left:!!e.left,right:!!e.right,bottom:!!e.bottom},h.getFramePositions(e)));h.frameBody=h.el.down("."+h.frameCls+"-mc");h.removeChildEls(function(i){return i.id&&h.frameIdRegex.test(i.id)});for(b=0;b<g;b++){k=d[b];h["frame"+k]=h.el.getById(c+k)}}},updateFrame:function(){if(Ext.supports.CSS3BorderRadius||!this.frame){return}var e=this,h=this.frameSize&&this.frameSize.table,g=this.frameTL,d=this.frameBL,c=this.frameML,a=this.frameMC,b;this.initFrame();if(a){if(e.frame){b=this.frameMC.dom.className;a.insertAfter(this.frameMC);this.frameMC.remove();this.frameBody=this.frameMC=a;a.dom.className=b;if(h){e.el.query("> table")[1].remove()}else{if(g){g.remove()}if(d){d.remove()}if(c){c.remove()}}}}else{if(e.frame){this.applyRenderSelectors()}}},getFrameInfo:function(){if(Ext.supports.CSS3BorderRadius||!this.frame){return false}var g=this,i=g.frameInfoCache,a=g.el||g.protoEl,j=a.dom?a.dom.className:a.classList.join(" "),d=i[j],e,c,h,b;if(d==null){e=Ext.fly(g.getStyleProxy(j),"frame-style-el");c=e.getStyle("background-position-x");h=e.getStyle("background-position-y");if(!c&&!h){b=e.getStyle("background-position").split(" ");c=b[0];h=b[1]}d=g.calculateFrame(c,h);if(d){a.setStyle("background-image","none")}i[j]=d}g.frame=!!d;g.frameSize=d;return d},calculateFrame:function(h,g){if(!(parseInt(h,10)>=1000000&&parseInt(g,10)>=1000000)){return false}var a=Math.max,b=parseInt(h.substr(3,2),10),e=parseInt(h.substr(5,2),10),c=parseInt(g.substr(3,2),10),i=parseInt(g.substr(5,2),10),d={table:h.substr(0,3)=="110",vertical:g.substr(0,3)=="110",top:a(b,e),right:a(e,c),bottom:a(i,c),left:a(b,i)};d.maxWidth=a(d.top,d.right,d.bottom,d.left);d.width=d.left+d.right;d.height=d.top+d.bottom;return d},getStyleProxy:function(b){var a=this.styleProxyEl||(Ext.AbstractComponent.prototype.styleProxyEl=Ext.resetElement.createChild({style:{position:"absolute",top:"-10000px"}},null,true));a.className=b;return a},getFramePositions:function(e){var h=this,i=e.maxWidth,j=h.dock,d,b,g,c,a;if(e.vertical){b="0 -"+(i*0)+"px";g="0 -"+(i*1)+"px";if(j&&j=="right"){b="right -"+(i*0)+"px";g="right -"+(i*1)+"px"}d={tl:"0 -"+(i*0)+"px",tr:"0 -"+(i*1)+"px",bl:"0 -"+(i*2)+"px",br:"0 -"+(i*3)+"px",ml:"-"+(i*1)+"px 0",mr:"right 0",tc:b,bc:g}}else{c="-"+(i*0)+"px 0";a="right 0";if(j&&j=="bottom"){c="left bottom";a="right bottom"}d={tl:"0 -"+(i*2)+"px",tr:"right -"+(i*3)+"px",bl:"0 -"+(i*4)+"px",br:"right -"+(i*5)+"px",ml:c,mr:a,tc:"0 -"+(i*0)+"px",bc:"0 -"+(i*1)+"px"}}return d},getFrameTpl:function(a){return this.getTpl(a?"frameTableTpl":"frameTpl")},frameInfoCache:{}});Ext.define("Ext.state.Provider",{mixins:{observable:"Ext.util.Observable"},prefix:"ext-",constructor:function(a){a=a||{};var b=this;Ext.apply(b,a);b.addEvents("statechange");b.state={};b.mixins.observable.constructor.call(b)},get:function(b,a){return typeof this.state[b]=="undefined"?a:this.state[b]},clear:function(a){var b=this;delete b.state[a];b.fireEvent("statechange",b,a,null)},set:function(a,c){var b=this;b.state[a]=c;b.fireEvent("statechange",b,a,c)},decodeValue:function(g){var c=this,k=/^(a|n|d|b|s|o|e)\:(.*)$/,b=k.exec(unescape(g)),h,d,a,j,e,i;if(!b||!b[1]){return}d=b[1];g=b[2];switch(d){case"e":return null;case"n":return parseFloat(g);case"d":return new Date(Date.parse(g));case"b":return(g=="1");case"a":h=[];if(g!=""){j=g.split("^");e=j.length;for(i=0;i<e;i++){g=j[i];h.push(c.decodeValue(g))}}return h;case"o":h={};if(g!=""){j=g.split("^");e=j.length;for(i=0;i<e;i++){g=j[i];a=g.split("=");h[a[0]]=c.decodeValue(a[1])}}return h;default:return g}},encodeValue:function(e){var g="",d=0,b,a,c;if(e==null){return"e:1"}else{if(typeof e=="number"){b="n:"+e}else{if(typeof e=="boolean"){b="b:"+(e?"1":"0")}else{if(Ext.isDate(e)){b="d:"+e.toGMTString()}else{if(Ext.isArray(e)){for(a=e.length;d<a;d++){g+=this.encodeValue(e[d]);if(d!=a-1){g+="^"}}b="a:"+g}else{if(typeof e=="object"){for(c in e){if(typeof e[c]!="function"&&e[c]!==undefined){g+=c+"="+this.encodeValue(e[c])+"^"}}b="o:"+g.substring(0,g.length-1)}else{b="s:"+e}}}}}}return escape(b)}});Ext.define("Ext.state.Manager",{singleton:true,requires:["Ext.state.Provider"],constructor:function(){this.provider=new Ext.state.Provider()},setProvider:function(a){this.provider=a},get:function(b,a){return this.provider.get(b,a)},set:function(a,b){this.provider.set(a,b)},clear:function(a){this.provider.clear(a)},getProvider:function(){return this.provider}});Ext.define("Ext.state.Stateful",{mixins:{observable:"Ext.util.Observable"},requires:["Ext.state.Manager"],stateful:false,saveDelay:100,constructor:function(a){var b=this;a=a||{};if(a.stateful!==undefined){b.stateful=a.stateful}if(a.saveDelay!==undefined){b.saveDelay=a.saveDelay}b.stateId=b.stateId||a.stateId;if(!b.stateEvents){b.stateEvents=[]}if(a.stateEvents){b.stateEvents.concat(a.stateEvents)}this.addEvents("beforestaterestore","staterestore","beforestatesave","statesave");b.mixins.observable.constructor.call(b);if(b.stateful!==false){b.addStateEvents(b.stateEvents);b.initState()}},addStateEvents:function(c){var e=this,b,d,a;if(e.stateful&&e.getStateId()){if(typeof c=="string"){c=Array.prototype.slice.call(arguments,0)}a=e.stateEventsByName||(e.stateEventsByName={});for(b=c.length;b--;){d=c[b];if(!a[d]){a[d]=1;e.on(d,e.onStateChange,e)}}}},onStateChange:function(){var c=this,a=c.saveDelay,d,b;if(!c.stateful){return}if(a){if(!c.stateTask){d=Ext.state.Stateful;b=d.runner||(d.runner=new Ext.util.TaskRunner());c.stateTask=b.newTask({run:c.saveState,scope:c,interval:a,repeat:1})}c.stateTask.start()}else{c.saveState()}},saveState:function(){var b=this,d=b.stateful&&b.getStateId(),a=b.hasListeners,c;if(d){c=b.getState()||{};if(!a.beforestatesave||b.fireEvent("beforestatesave",b,c)!==false){Ext.state.Manager.set(d,c);if(a.statesave){b.fireEvent("statesave",b,c)}}}},getState:function(){return null},applyState:function(a){if(a){Ext.apply(this,a)}},getStateId:function(){var a=this;return a.stateId||(a.autoGenId?null:a.id)},initState:function(){var b=this,d=b.stateful&&b.getStateId(),a=b.hasListeners,c;if(d){c=Ext.state.Manager.get(d);if(c){c=Ext.apply({},c);if(!a.beforestaterestore||b.fireEvent("beforestaterestore",b,c)!==false){b.applyState(c);if(a.staterestore){b.fireEvent("staterestore",b,c)}}}}},savePropToState:function(g,e,d){var b=this,c=b[g],a=b.initialConfig;if(b.hasOwnProperty(g)){if(!a||a[g]!==c){if(e){e[d||g]=c}return true}}return false},savePropsToState:function(e,c){var b=this,a,d;if(typeof e=="string"){b.savePropToState(e,c)}else{for(a=0,d=e.length;a<d;++a){b.savePropToState(e[a],c)}}return c},destroy:function(){var b=this,a=b.stateTask;if(a){a.destroy();b.stateTask=null}b.clearListeners()}});Ext.define("Ext.AbstractComponent",{requires:["Ext.ComponentQuery","Ext.ComponentManager","Ext.util.ProtoElement"],mixins:{observable:"Ext.util.Observable",animate:"Ext.util.Animate",elementCt:"Ext.util.ElementContainer",renderable:"Ext.util.Renderable",state:"Ext.state.Stateful"},uses:["Ext.PluginManager","Ext.Element","Ext.DomHelper","Ext.XTemplate","Ext.ComponentQuery","Ext.ComponentLoader","Ext.EventManager","Ext.layout.Context","Ext.layout.Layout","Ext.layout.component.Auto","Ext.LoadMask","Ext.ZIndexManager"],statics:{AUTO_ID:1000,pendingLayouts:null,layoutSuspendCount:0,cancelLayout:function(a,c){var b=this.runningLayoutContext||this.pendingLayouts;if(b){b.cancelComponent(a,false,c)}},flushLayouts:function(){var b=this,a=b.pendingLayouts;if(a&&a.invalidQueue.length){b.pendingLayouts=null;b.runningLayoutContext=a;Ext.override(a,{runComplete:function(){b.runningLayoutContext=null;return this.callParent()}});a.run()}},resumeLayouts:function(a){if(this.layoutSuspendCount&&!--this.layoutSuspendCount){if(a){this.flushLayouts()}}},suspendLayouts:function(){++this.layoutSuspendCount},updateLayout:function(b,e){var c=this,a=c.runningLayoutContext,d;if(a){a.queueInvalidate(b)}else{d=c.pendingLayouts||(c.pendingLayouts=new Ext.layout.Context());d.queueInvalidate(b);if(!e&&!c.layoutSuspendCount&&!b.isLayoutSuspended()){c.flushLayouts()}}}},isComponent:true,getAutoId:function(){this.autoGenId=true;return ++Ext.AbstractComponent.AUTO_ID},deferLayouts:false,autoGenId:false,renderTpl:"{%this.renderContent(out,values)%}",frameSize:{left:0,top:0,right:0,bottom:0,width:0,height:0},tplWriteMode:"overwrite",baseCls:Ext.baseCSSPrefix+"component",disabledCls:Ext.baseCSSPrefix+"item-disabled",ui:"default",uiCls:[],hidden:false,disabled:false,draggable:false,floating:false,hideMode:"display",styleHtmlContent:false,styleHtmlCls:Ext.baseCSSPrefix+"html",autoShow:false,autoRender:false,allowDomMove:true,rendered:false,componentLayoutCounter:0,shrinkWrap:2,weight:0,maskOnDisable:true,_isLayoutRoot:false,constructor:function(c){var e=this,d,a,b;if(c){Ext.apply(e,c);b=e.xhooks;if(b){delete e.xhooks;Ext.override(e,b)}}else{c={}}e.initialConfig=c;e.mixins.elementCt.constructor.call(e);e.addEvents("beforeactivate","activate","beforedeactivate","deactivate","added","disable","enable","beforeshow","show","beforehide","hide","removed","beforerender","render","afterrender","boxready","beforedestroy","destroy","resize","move","focus","blur");e.getId();e.setupProtoEl();if(e.cls){e.initialCls=e.cls;e.protoEl.addCls(e.cls)}if(e.style){e.initialStyle=e.style;e.protoEl.setStyle(e.style)}e.mons=[];e.renderData=e.renderData||{};e.renderSelectors=e.renderSelectors||{};if(e.plugins){e.plugins=e.constructPlugins()}if(!e.hasListeners){e.hasListeners=new e.HasListeners()}e.initComponent();Ext.ComponentManager.register(e);e.mixins.observable.constructor.call(e);e.mixins.state.constructor.call(e,c);this.addStateEvents("resize");if(e.plugins){for(d=0,a=e.plugins.length;d<a;d++){e.plugins[d]=e.initPlugin(e.plugins[d])}}e.loader=e.getLoader();if(e.renderTo){e.render(e.renderTo)}if(e.autoShow&&!e.isContained){e.show()}},initComponent:function(){this.plugins=this.constructPlugins();this.setSize(this.width,this.height)},getState:function(){var b=this,c=null,a=b.getSizeModel();if(a.width.configured){c=b.addPropertyToState(c,"width")}if(a.height.configured){c=b.addPropertyToState(c,"height")}return c},addPropertyToState:function(e,d,c){var b=this,a=arguments.length;if(a==3||b.hasOwnProperty(d)){if(a<3){c=b[d]}if(c!==b.initialConfig[d]){(e||(e={}))[d]=c}}return e},show:Ext.emptyFn,animate:function(b){var k=this,e,g,d,p,o,m,l,j,n,i,c,a;b=b||{};o=b.to||{};if(Ext.fx.Manager.hasFxBlock(k.id)){return k}e=Ext.isDefined(o.width);if(e){p=Ext.Number.constrain(o.width,k.minWidth,k.maxWidth)}g=Ext.isDefined(o.height);if(g){d=Ext.Number.constrain(o.height,k.minHeight,k.maxHeight)}if(!b.dynamic&&(e||g)){j=(b.from?b.from.width:undefined)||k.getWidth();n=j;i=(b.from?b.from.height:undefined)||k.getHeight();c=i;a=false;if(g&&d>i){c=d;a=true}if(e&&p>j){n=p;a=true}if(a){m=!Ext.isNumber(k.width);l=!Ext.isNumber(k.height);k.setSize(n,c);k.el.setSize(j,i);if(m){delete k.width}if(l){delete k.height}}if(e){o.width=p}if(g){o.height=d}}return k.mixins.animate.animate.apply(k,arguments)},onHide:function(){this.updateLayout({isRoot:false})},onShow:function(){this.updateLayout({isRoot:false})},constructPlugin:function(a){if(a.ptype&&typeof a.init!="function"){a.cmp=this;a=Ext.PluginManager.create(a)}else{if(typeof a=="string"){a=Ext.PluginManager.create({ptype:a,cmp:this})}}return a},constructPlugins:function(){var e=this,c,b=[],d,a;if(e.plugins){c=Ext.isArray(e.plugins)?e.plugins:[e.plugins];for(d=0,a=c.length;d<a;d++){b[d]=e.constructPlugin(c[d])}return b}},initPlugin:function(a){a.init(this);return a},updateAria:Ext.emptyFn,registerFloatingItem:function(b){var a=this;if(!a.floatingDescendants){a.floatingDescendants=new Ext.ZIndexManager(a)}a.floatingDescendants.register(b)},unregisterFloatingItem:function(b){var a=this;if(a.floatingDescendants){a.floatingDescendants.unregister(b)}},layoutSuspendCount:0,suspendLayouts:function(){var a=this;if(!a.rendered){return}if(++a.layoutSuspendCount==1){a.suspendLayout=true}},resumeLayouts:function(b){var a=this;if(!a.rendered){return}if(!--a.layoutSuspendCount){a.suspendLayout=false;if(b&&!a.isLayoutSuspended()){a.updateLayout(b)}}},setupProtoEl:function(){var b=this,a=[b.baseCls,b.getComponentLayout().targetCls];if(Ext.isDefined(b.cmpCls)){if(Ext.isDefined(Ext.global.console)){Ext.global.console.warn("Ext.Component: cmpCls has been deprecated. Please use componentCls.")}b.componentCls=b.cmpCls;delete b.cmpCls}if(b.componentCls){a.push(b.componentCls)}else{b.componentCls=b.baseCls}b.protoEl=new Ext.util.ProtoElement({cls:a.join(" ")})},setUI:function(g){var e=this,b=Ext.Array.clone(e.uiCls),h=[],d=[],a,c;for(c=0;c<b.length;c++){a=b[c];d=d.concat(e.removeClsWithUI(a,true));h.push(a)}if(d.length){e.removeCls(d)}e.removeUIFromElement();e.ui=g;e.addUIToElement();d=[];for(c=0;c<h.length;c++){a=h[c];d=d.concat(e.addClsWithUI(a,true))}if(d.length){e.addCls(d)}if(e.rendered){e.updateLayout()}},addClsWithUI:function(c,h){var g=this,e=[],d,b=0,a;if(typeof c==="string"){c=(c.indexOf(" ")<0)?[c]:Ext.String.splitWords(c)}d=c.length;g.uiCls=Ext.Array.clone(g.uiCls);for(;b<d;b++){a=c[b];if(a&&!g.hasUICls(a)){g.uiCls.push(a);e=e.concat(g.addUIClsToElement(a))}}if(h!==true){g.addCls(e)}return e},removeClsWithUI:function(c,h){var g=this,e=[],b=0,d,a;if(typeof c==="string"){c=(c.indexOf(" ")<0)?[c]:Ext.String.splitWords(c)}d=c.length;for(b=0;b<d;b++){a=c[b];if(a&&g.hasUICls(a)){g.uiCls=Ext.Array.remove(g.uiCls,a);e=e.concat(g.removeUIClsFromElement(a))}}if(h!==true){g.removeCls(e)}return e},hasUICls:function(a){var b=this,c=b.uiCls||[];return Ext.Array.contains(c,a)},frameElementsArray:["tl","tc","tr","ml","mc","mr","bl","bc","br"],addUIClsToElement:function(m){var k=this,b=k.baseCls+"-"+k.ui+"-"+m,n=[Ext.baseCSSPrefix+m,k.baseCls+"-"+m,b],l=k.frameElementCls,h,g,e,a,d,j;if(k.frame&&!Ext.supports.CSS3BorderRadius){h=k.frameElementsArray;g=h.length;e=0;for(;e<g;e++){d=h[e];a=k["frame"+d.toUpperCase()];j=b+"-"+d;if(a&&a.dom){a.addCls(j)}else{if(Ext.Array.indexOf(l[d],j)==-1){l[d].push(j)}}}}k.frameElementCls=l;return n},removeUIClsFromElement:function(m){var k=this,b=k.baseCls+"-"+k.ui+"-"+m,n=[Ext.baseCSSPrefix+m,k.baseCls+"-"+m,b],l=k.frameElementCls,h,g,e,a,d,j;if(k.frame&&!Ext.supports.CSS3BorderRadius){h=k.frameElementsArray;g=h.length;e=0;for(;e<g;e++){d=h[e];a=k["frame"+d.toUpperCase()];j=b+"-"+d;if(a&&a.dom){a.addCls(j)}else{Ext.Array.remove(l[d],j)}}}k.frameElementCls=l;return n},addUIToElement:function(){var j=this,k=j.baseCls+"-"+j.ui,l=j.frameElementCls,g,e,d,a,b,h;j.addCls(k);if(j.frame&&!Ext.supports.CSS3BorderRadius){g=j.frameElementsArray;e=g.length;d=0;for(;d<e;d++){b=g[d];a=j["frame"+b.toUpperCase()];h=k+"-"+b;if(a){a.addCls(h)}else{if(!Ext.Array.contains(l[b],h)){l[b].push(h)}}}}},removeUIFromElement:function(){var j=this,k=j.baseCls+"-"+j.ui,l=j.frameElementCls,g,e,d,a,b,h;j.removeCls(k);if(j.frame&&!Ext.supports.CSS3BorderRadius){g=j.frameElementsArray;e=g.length;d=0;for(;d<e;d++){b=g[d];a=j["frame"+b.toUpperCase()];h=k+"-"+b;if(a){a.removeCls(h)}else{Ext.Array.remove(l[b],h)}}}},getTpl:function(a){return Ext.XTemplate.getTpl(this,a)},initStyles:function(j){var d=this,b=Ext.Element,g=d.padding,c=d.margin,h=d.x,e=d.y,a,i;if(g!==undefined){j.setStyle("padding",b.unitizeBox((g===true)?5:g))}if(c!==undefined){j.setStyle("margin",b.unitizeBox((c===true)?5:c))}if(d.border!==undefined){d.setBorder(d.border,j)}if(d.cls&&d.cls!=d.initialCls){j.addCls(d.cls);delete d.cls;delete d.initialCls}if(d.style&&d.style!=d.initialStyle){j.setStyle(d.style);delete d.style;delete d.initialStyle}if(h!==undefined){j.setStyle("left",(typeof h=="number")?(h+"px"):h)}if(e!==undefined){j.setStyle("top",(typeof e=="number")?(e+"px"):e)}if(!d.getFrameInfo()){a=d.width;i=d.height;if(a!==undefined){if(typeof a==="number"){if(Ext.isBorderBox){j.setStyle("width",a+"px")}}else{j.setStyle("width",a)}}if(i!==undefined){if(typeof i==="number"){if(Ext.isBorderBox){j.setStyle("height",i+"px")}}else{j.setStyle("height",i)}}}},initEvents:function(){var c=this,e=c.afterRenderEvents,b,d,a=function(g){c.mon(b,g)};if(e){for(d in e){if(e.hasOwnProperty(d)){b=c[d];if(b&&b.on){Ext.each(e[d],a)}}}}c.addFocusListener()},addFocusListener:function(){var c=this,b=c.getFocusEl(),a;if(b){if(b.isComponent){return b.addFocusListener()}a=b.needsTabIndex();if(!c.focusListenerAdded&&(!a||Ext.FocusManager.enabled)){if(a){b.dom.tabIndex=-1}b.on({focus:c.onFocus,blur:c.onBlur,scope:c});c.focusListenerAdded=true}}},getFocusEl:Ext.emptyFn,isFocusable:function(d){var b=this,a;if((b.focusable!==false)&&(a=b.getFocusEl())&&b.rendered&&!b.destroying&&!b.isDestroyed&&!b.disabled&&b.isVisible(true)){if(a.isComponent){return a.isFocusable()}return a&&a.dom&&a.isVisible()}},preFocus:Ext.emptyFn,onFocus:function(d){var c=this,b=c.focusCls,a=c.getFocusEl();if(!c.disabled){c.preFocus(d);if(b&&a){a.addCls(c.addClsWithUI(b,true))}if(!c.hasFocus){c.hasFocus=true;c.fireEvent("focus",c,d)}}},beforeBlur:Ext.emptyFn,onBlur:function(d){var c=this,b=c.focusCls,a=c.getFocusEl();if(c.destroying){return}c.beforeBlur(d);if(b&&a){a.removeCls(c.removeClsWithUI(b,true))}if(c.validateOnBlur){c.validate()}c.hasFocus=false;c.fireEvent("blur",c,d);c.postBlur(d)},postBlur:Ext.emptyFn,is:function(a){return Ext.ComponentQuery.is(this,a)},up:function(b){var a=this.getBubbleTarget();if(b){for(;a;a=a.getBubbleTarget()){if(Ext.ComponentQuery.is(a,b)){return a}}}return a},nextSibling:function(b){var g=this.ownerCt,d,e,a,h;if(g){d=g.items;a=d.indexOf(this)+1;if(a){if(b){for(e=d.getCount();a<e;a++){if((h=d.getAt(a)).is(b)){return h}}}else{if(a<d.getCount()){return d.getAt(a)}}}}return null},previousSibling:function(b){var e=this.ownerCt,d,a,g;if(e){d=e.items;a=d.indexOf(this);if(a!=-1){if(b){for(--a;a>=0;a--){if((g=d.getAt(a)).is(b)){return g}}}else{if(a){return d.getAt(--a)}}}}return null},previousNode:function(b,d){var j=this,h=j.ownerCt,a,g,e,c;if(d&&j.is(b)){return j}if(h){for(g=h.items.items,e=Ext.Array.indexOf(g,j)-1;e>-1;e--){c=g[e];if(c.query){a=c.query(b);a=a[a.length-1];if(a){return a}}if(c.is(b)){return c}}return h.previousNode(b,true)}return null},nextNode:function(d,j){var b=this,c=b.ownerCt,k,e,h,g,a;if(j&&b.is(d)){return b}if(c){for(e=c.items.items,g=Ext.Array.indexOf(e,b)+1,h=e.length;g<h;g++){a=e[g];if(a.is(d)){return a}if(a.down){k=a.down(d);if(k){return k}}}return c.nextNode(d)}return null},getId:function(){return this.id||(this.id="ext-comp-"+(this.getAutoId()))},getItemId:function(){return this.itemId||this.id},getEl:function(){return this.el},getTargetEl:function(){return this.frameBody||this.el},getOverflowStyle:function(){var b=this,a=null;if(typeof b.autoScroll=="boolean"){a={overflow:b.autoScroll?"auto":""}}else{if(b.overflowX!==undefined||b.overflowY!==undefined){a={"overflow-x":(b.overflowX||""),"overflow-y":(b.overflowY||"")}}}if(a&&(Ext.isIE6||Ext.isIE7)){a.position="relative"}return a},isXType:function(b,a){if(a){return this.xtype===b}else{return this.xtypesMap[b]}},getXTypes:function(){var c=this.self,d,b,a;if(!c.xtypes){d=[];b=this;while(b){a=b.xtypes;if(a!==undefined){d.unshift.apply(d,a)}b=b.superclass}c.xtypeChain=d;c.xtypes=d.join("/")}return c.xtypes},update:function(b,c,a){var d=this;if(d.tpl&&!Ext.isString(b)){d.data=b;if(d.rendered){d.tpl[d.tplWriteMode](d.getTargetEl(),b||{})}}else{d.html=Ext.isObject(b)?Ext.DomHelper.markup(b):b;if(d.rendered){d.getTargetEl().update(d.html,c,a)}}if(d.rendered){d.updateLayout()}},setVisible:function(a){return this[a?"show":"hide"]()},isVisible:function(a){var c=this,e=c,d=c.rendered&&!c.hidden,b=c.ownerCt;c.hiddenAncestor=false;if(c.destroyed){return false}if(a&&d&&b){while(b){if(b.hidden||(b.collapsed&&!(b.getDockedItems&&Ext.Array.contains(b.getDockedItems(),e)))){c.hiddenAncestor=b;d=false;break}e=b;b=b.ownerCt}}return d},onBoxReady:function(){var a=this;if(a.disableOnBoxReady){a.onDisable()}else{if(a.enableOnBoxReady){a.onEnable()}}if(a.resizable){a.initResizable(a.resizable)}if(a.draggable){a.initDraggable()}},enable:function(a){var b=this;delete b.disableOnBoxReady;b.removeCls(b.disabledCls);if(b.rendered){b.onEnable()}else{b.enableOnBoxReady=true}b.disabled=false;delete b.resetDisable;if(a!==true){b.fireEvent("enable",b)}return b},disable:function(a){var b=this;delete b.enableOnBoxReady;b.addCls(b.disabledCls);if(b.rendered){b.onDisable()}else{b.disableOnBoxReady=true}b.disabled=true;if(a!==true){delete b.resetDisable;b.fireEvent("disable",b)}return b},onEnable:function(){if(this.maskOnDisable){this.el.dom.disabled=false;this.unmask()}},onDisable:function(){var c=this,b=c.focusCls,a=c.getFocusEl();if(b&&a){a.removeCls(c.removeClsWithUI(b,true))}if(c.maskOnDisable){c.el.dom.disabled=true;c.mask()}},mask:function(){var b=this.lastBox,c=this.getMaskTarget(),a=[];if(b){a[2]=b.height}c.mask.apply(c,a)},unmask:function(){this.getMaskTarget().unmask()},getMaskTarget:function(){return this.el},isDisabled:function(){return this.disabled},setDisabled:function(a){return this[a?"disable":"enable"]()},isHidden:function(){return this.hidden},addCls:function(a){var c=this,b=c.rendered?c.el:c.protoEl;b.addCls.apply(b,arguments);return c},addClass:function(){return this.addCls.apply(this,arguments)},hasCls:function(a){var c=this,b=c.rendered?c.el:c.protoEl;return b.hasCls.apply(b,arguments)},removeCls:function(a){var c=this,b=c.rendered?c.el:c.protoEl;b.removeCls.apply(b,arguments);return c},addOverCls:function(){var a=this;if(!a.disabled){a.el.addCls(a.overCls)}},removeOverCls:function(){this.el.removeCls(this.overCls)},addListener:function(b,g,e,a){var h=this,d,c;if(Ext.isString(b)&&(Ext.isObject(g)||a&&a.element)){if(a.element){d=g;g={};g[b]=d;b=a.element;if(e){g.scope=e}for(c in a){if(a.hasOwnProperty(c)){if(h.eventOptionsRe.test(c)){g[c]=a[c]}}}}if(h[b]&&h[b].on){h.mon(h[b],g)}else{h.afterRenderEvents=h.afterRenderEvents||{};if(!h.afterRenderEvents[b]){h.afterRenderEvents[b]=[]}h.afterRenderEvents[b].push(g)}}return h.mixins.observable.addListener.apply(h,arguments)},removeManagedListenerItem:function(b,a,i,d,g,e){var h=this,c=a.options?a.options.element:null;if(c){c=h[c];if(c&&c.un){if(b||(a.item===i&&a.ename===d&&(!g||a.fn===g)&&(!e||a.scope===e))){c.un(a.ename,a.fn,a.scope);if(!b){Ext.Array.remove(h.managedListeners,a)}}}}else{return h.mixins.observable.removeManagedListenerItem.apply(h,arguments)}},getBubbleTarget:function(){return this.ownerCt},isFloating:function(){return this.floating},isDraggable:function(){return !!this.draggable},isDroppable:function(){return !!this.droppable},onAdded:function(a,c){var b=this;b.ownerCt=a;if(b.hasListeners.added){b.fireEvent("added",b,a,c)}},onRemoved:function(b){var a=this;if(a.hasListeners.removed){a.fireEvent("removed",a,a.ownerCt)}delete a.ownerCt;delete a.ownerLayout},beforeDestroy:Ext.emptyFn,onResize:Ext.emptyFn,setSize:function(b,a){var c=this;if(b&&typeof b=="object"){a=b.height;b=b.width}if(typeof b=="number"){c.width=Ext.Number.constrain(b,c.minWidth,c.maxWidth)}else{if(b===null){delete c.width}}if(typeof a=="number"){c.height=Ext.Number.constrain(a,c.minHeight,c.maxHeight)}else{if(a===null){delete c.height}}if(c.rendered&&c.isVisible()){c.updateLayout({isRoot:false})}return c},isLayoutRoot:function(){var a=this,b=a.ownerLayout;if(!b||a._isLayoutRoot||a.floating){return true}return b.isItemLayoutRoot(a)},isLayoutSuspended:function(){var a=this,b;while(a){if(a.layoutSuspendCount||a.suspendLayout){return true}b=a.ownerLayout;if(!b){break}a=b.owner}return false},updateLayout:function(b){var c=this,d,a=b&&b.isRoot;if(!c.rendered||c.layoutSuspendCount||c.suspendLayout){return}if(c.hidden){Ext.AbstractComponent.cancelLayout(c)}else{if(typeof a!="boolean"){a=c.isLayoutRoot()}}if(a||!c.ownerLayout||!c.ownerLayout.onContentChange(c)){if(!c.isLayoutSuspended()){d=(b&&b.hasOwnProperty("defer"))?b.defer:c.deferLayouts;Ext.AbstractComponent.updateLayout(c,d)}}},getSizeModel:function(j){var n=this,a=Ext.layout.SizeModel,d=n.componentLayout.ownerContext,b=n.width,p=n.height,q,c,g,e,h,o,l,m,k,i;if(d){i=d.widthModel;h=d.heightModel}if(!i||!h){g=((q=typeof b)=="number");e=((c=typeof p)=="number");k=n.floating||!(o=n.ownerLayout);if(k){l=Ext.layout.Layout.prototype.autoSizePolicy;m=n.floating?3:n.shrinkWrap;if(g){i=a.configured}if(e){h=a.configured}}else{l=o.getItemSizePolicy(n,j);m=o.isItemShrinkWrap(n)}m=(m===true)?3:(m||0);if(k&&m){if(b&&q=="string"){m&=2}if(p&&c=="string"){m&=1}}if(m!==3){if(!j){j=n.ownerCt&&n.ownerCt.getSizeModel()}if(j){m|=(j.width.shrinkWrap?1:0)|(j.height.shrinkWrap?2:0)}}if(!i){if(!l.setsWidth){if(g){i=a.configured}else{i=(m&1)?a.shrinkWrap:a.natural}}else{if(l.readsWidth){if(g){i=a.calculatedFromConfigured}else{i=(m&1)?a.calculatedFromShrinkWrap:a.calculatedFromNatural}}else{i=a.calculated}}}if(!h){if(!l.setsHeight){if(e){h=a.configured}else{h=(m&2)?a.shrinkWrap:a.natural}}else{if(l.readsHeight){if(e){h=a.calculatedFromConfigured}else{h=(m&2)?a.calculatedFromShrinkWrap:a.calculatedFromNatural}}else{h=a.calculated}}}}return i.pairsByHeightOrdinal[h.ordinal]},isDescendant:function(a){if(a.isContainer){for(var b=this.ownerCt;b;b=b.ownerCt){if(b===a){return true}}}return false},doComponentLayout:function(){this.updateLayout();return this},forceComponentLayout:function(){this.updateLayout()},setComponentLayout:function(b){var a=this.componentLayout;if(a&&a.isLayout&&a!=b){a.setOwner(null)}this.componentLayout=b;b.setOwner(this)},getComponentLayout:function(){var a=this;if(!a.componentLayout||!a.componentLayout.isLayout){a.setComponentLayout(Ext.layout.Layout.create(a.componentLayout,"autocomponent"))}return a.componentLayout},afterComponentLayout:function(a,k,b,j){var g=this,h,d,c,e;if(++g.componentLayoutCounter===1){g.afterFirstLayout(a,k)}if(g.floatingItems){h=g.floatingItems.items;d=h.length;for(c=0;c<d;c++){e=h[c];if(!e.rendered&&e.autoShow){e.show()}}}if(g.hasListeners.resize&&(a!==b||k!==j)){g.fireEvent("resize",g,a,k,b,j)}},beforeComponentLayout:function(b,a){return true},setPosition:function(a,e,b){var c=this,d=c.beforeSetPosition.apply(c,arguments);if(d&&c.rendered){d=c.convertPosition(d);if(d.left!==c.el.getLeft()||d.top!==c.el.getTop()){if(b){c.stopAnimation();c.animate(Ext.apply({duration:1000,listeners:{afteranimate:Ext.Function.bind(c.afterSetPosition,c,[d.left,d.top])},to:d},b))}else{if(d.left!==undefined&&d.top!==undefined){c.el.setLeftTop(d.left,d.top)}else{if(d.left!==undefined){c.el.setLeft(d.left)}else{if(d.top!==undefined){c.el.setTop(d.top)}}}c.afterSetPosition(d.left,d.top)}}}return c},beforeSetPosition:function(a,e,b){var d,c;if(!a||Ext.isNumber(a)){d={x:a,y:e,anim:b}}else{if(Ext.isNumber(c=a[0])){d={x:c,y:a[1],anim:e}}else{d={x:a.x,y:a.y,anim:e}}}d.hasX=Ext.isNumber(d.x);d.hasY=Ext.isNumber(d.y);this.x=d.x;this.y=d.y;return(d.hasX||d.hasY)?d:null},afterSetPosition:function(a,c){var b=this;b.onPosition(a,c);if(b.hasListeners.move){b.fireEvent("move",b,a,c)}},convertPosition:function(d,b){var a={},c=Ext.Element;if(d.hasX){a.left=b?c.addUnits(d.x):d.x}if(d.hasY){a.top=b?c.addUnits(d.y):d.y}return a},onPosition:Ext.emptyFn,setWidth:function(a){return this.setSize(a)},setHeight:function(a){return this.setSize(undefined,a)},getSize:function(){return this.el.getSize()},getWidth:function(){return this.el.getWidth()},getHeight:function(){return this.el.getHeight()},getLoader:function(){var c=this,b=c.autoLoad?(Ext.isObject(c.autoLoad)?c.autoLoad:{url:c.autoLoad}):null,a=c.loader||b;if(a){if(!a.isLoader){c.loader=new Ext.ComponentLoader(Ext.apply({target:c,autoLoad:b},a))}else{a.setTarget(c)}return c.loader}return null},setDocked:function(b,c){var a=this;a.dock=b;if(c&&a.ownerCt&&a.rendered){a.ownerCt.updateLayout()}return a},setBorder:function(b,d){var c=this,a=!!d;if(c.rendered||a){if(!a){d=c.el}if(!b){b=0}else{b=Ext.Element.unitizeBox((b===true)?1:b)}d.setStyle("border-width",b);if(!a){c.updateLayout()}}c.border=b},onDestroy:function(){var a=this;if(a.monitorResize&&Ext.EventManager.resizeEvent){Ext.EventManager.resizeEvent.removeListener(a.setSize,a)}Ext.destroy(a.componentLayout,a.loadMask,a.floatingDescendants)},destroy:function(){var d=this,b=d.renderSelectors,a,c;if(!d.isDestroyed){if(!d.hasListeners.beforedestroy||d.fireEvent("beforedestroy",d)!==false){d.destroying=true;d.beforeDestroy();if(d.floating){delete d.floatParent;if(d.zIndexManager){d.zIndexManager.unregister(d)}}else{if(d.ownerCt&&d.ownerCt.remove){d.ownerCt.remove(d,false)}}d.onDestroy();Ext.destroy(d.plugins);if(d.hasListeners.destroy){d.fireEvent("destroy",d)}Ext.ComponentManager.unregister(d);d.mixins.state.destroy.call(d);d.clearListeners();if(d.rendered){if(!d.preserveElOnDestroy){d.el.remove()}d.mixins.elementCt.destroy.call(d);if(b){for(a in b){if(b.hasOwnProperty(a)){c=d[a];if(c){delete d[a];c.remove()}}}}delete d.el;delete d.frameBody;delete d.rendered}d.destroying=false;d.isDestroyed=true}}},getPlugin:function(b){var c=0,a=this.plugins,d=a.length;for(;c<d;c++){if(a[c].pluginId===b){return a[c]}}},isDescendantOf:function(a){return !!this.findParentBy(function(b){return b===a})}},function(){var a=this;a.createAlias({on:"addListener",prev:"previousSibling",next:"nextSibling"});Ext.resumeLayouts=function(b){a.resumeLayouts(b)};Ext.suspendLayouts=function(){a.suspendLayouts()};Ext.batchLayouts=function(c,b){a.suspendLayouts();c.call(b);a.resumeLayouts(true)}});Ext.define("Ext.AbstractPlugin",{disabled:false,constructor:function(a){this.initialConfig=a;Ext.apply(this,a)},clone:function(){return new this.self(this.initialConfig)},getCmp:function(){return this.cmp},init:Ext.emptyFn,destroy:Ext.emptyFn,enable:function(){this.disabled=false},disable:function(){this.disabled=true}});Ext.define("Ext.Action",{constructor:function(a){this.initialConfig=a;this.itemId=a.itemId=(a.itemId||a.id||Ext.id());this.items=[]},isAction:true,setText:function(a){this.initialConfig.text=a;this.callEach("setText",[a])},getText:function(){return this.initialConfig.text},setIconCls:function(a){this.initialConfig.iconCls=a;this.callEach("setIconCls",[a])},getIconCls:function(){return this.initialConfig.iconCls},setDisabled:function(a){this.initialConfig.disabled=a;this.callEach("setDisabled",[a])},enable:function(){this.setDisabled(false)},disable:function(){this.setDisabled(true)},isDisabled:function(){return this.initialConfig.disabled},setHidden:function(a){this.initialConfig.hidden=a;this.callEach("setVisible",[!a])},show:function(){this.setHidden(false)},hide:function(){this.setHidden(true)},isHidden:function(){return this.initialConfig.hidden},setHandler:function(b,a){this.initialConfig.handler=b;this.initialConfig.scope=a;this.callEach("setHandler",[b,a])},each:function(b,a){Ext.each(this.items,b,a)},callEach:function(g,c){var b=this.items,d=0,a=b.length,e;Ext.suspendLayouts();for(;d<a;d++){e=b[d];e[g].apply(e,c)}Ext.resumeLayouts(true)},addComponent:function(a){this.items.push(a);a.on("destroy",this.removeComponent,this)},removeComponent:function(a){Ext.Array.remove(this.items,a)},execute:function(){this.initialConfig.handler.apply(this.initialConfig.scope||Ext.global,arguments)}});Ext.define("Ext.data.Connection",{mixins:{observable:"Ext.util.Observable"},statics:{requestId:0},url:null,async:true,method:null,username:"",password:"",disableCaching:true,withCredentials:false,cors:false,disableCachingParam:"_dc",timeout:30000,useDefaultHeader:true,defaultPostHeader:"application/x-www-form-urlencoded; charset=UTF-8",useDefaultXhrHeader:true,defaultXhrHeader:"XMLHttpRequest",constructor:function(a){a=a||{};Ext.apply(this,a);this.requests={};this.mixins.observable.constructor.call(this)},request:function(k){k=k||{};var g=this,j=k.scope||window,e=k.username||g.username,h=k.password||g.password||"",b,c,d,a,i;if(g.fireEvent("beforerequest",g,k)!==false){c=g.setOptions(k,j);if(g.isFormUpload(k)){g.upload(k.form,c.url,c.data,k);return null}if(k.autoAbort||g.autoAbort){g.abort()}b=k.async!==false?(k.async||g.async):false;i=g.openRequest(k,c,b,e,h);a=g.setupHeaders(i,k,c.data,c.params);d={id:++Ext.data.Connection.requestId,xhr:i,headers:a,options:k,async:b,timeout:setTimeout(function(){d.timedout=true;g.abort(d)},k.timeout||g.timeout)};g.requests[d.id]=d;g.latestId=d.id;if(b){i.onreadystatechange=Ext.Function.bind(g.onStateChange,g,[d])}i.send(c.data);if(!b){return g.onComplete(d)}return d}else{Ext.callback(k.callback,k.scope,[k,undefined,undefined]);return null}},upload:function(b,g,s,e){b=Ext.getDom(b);e=e||{};var n=Ext.id(),l=document.createElement("iframe"),c=[],d="multipart/form-data",r={target:b.target,method:b.method,encoding:b.encoding,enctype:b.enctype,action:b.action},a=function(h,u){i=document.createElement("input");Ext.fly(i).set({type:"hidden",value:u,name:h});b.appendChild(i);c.push(i)},i,k,p,t,o,j,m,q;Ext.fly(l).set({id:n,name:n,cls:Ext.baseCSSPrefix+"hide-display",src:Ext.SSL_SECURE_URL});document.body.appendChild(l);if(document.frames){document.frames[n].name=n}Ext.fly(b).set({target:n,method:"POST",enctype:d,encoding:d,action:g||r.action});if(s){k=Ext.Object.fromQueryString(s)||{};for(t in k){if(k.hasOwnProperty(t)){p=k[t];if(Ext.isArray(p)){o=p.length;for(j=0;j<o;j++){a(t,p[j])}}else{a(t,p)}}}}Ext.fly(l).on("load",Ext.Function.bind(this.onUploadComplete,this,[l,e]),null,{single:true});b.submit();Ext.fly(b).set(r);m=c.length;for(q=0;q<m;q++){Ext.removeNode(c[q])}},onUploadComplete:function(i,c){var d=this,b={responseText:"",responseXML:null},h,a;try{h=i.contentWindow.document||i.contentDocument||window.frames[i.id].document;if(h){if(h.body){if((a=h.body.firstChild)&&/pre/i.test(a.tagName)){b.responseText=a.innerText}else{if(a=h.getElementsByTagName("textarea")[0]){b.responseText=a.value}else{b.responseText=h.body.textContent||h.body.innerText}}}b.responseXML=h.XMLDocument||h}}catch(g){}d.fireEvent("requestcomplete",d,b,c);Ext.callback(c.success,c.scope,[b,c]);Ext.callback(c.callback,c.scope,[c,true,b]);setTimeout(function(){Ext.removeNode(i)},100)},isFormUpload:function(a){var b=this.getForm(a);if(b){return(a.isUpload||(/multipart\/form-data/i).test(b.getAttribute("enctype")))}return false},getForm:function(a){return Ext.getDom(a.form)||null},setOptions:function(l,k){var i=this,e=l.params||{},h=i.extraParams,d=l.urlParams,c=l.url||i.url,j=l.jsonData,b,a,g;if(Ext.isFunction(e)){e=e.call(k,l)}if(Ext.isFunction(c)){c=c.call(k,l)}c=this.setupUrl(l,c);g=l.rawData||l.xmlData||j||null;if(j&&!Ext.isPrimitive(j)){g=Ext.encode(g)}if(Ext.isObject(e)){e=Ext.Object.toQueryString(e)}if(Ext.isObject(h)){h=Ext.Object.toQueryString(h)}e=e+((h)?((e)?"&":"")+h:"");d=Ext.isObject(d)?Ext.Object.toQueryString(d):d;e=this.setupParams(l,e);b=(l.method||i.method||((e||g)?"POST":"GET")).toUpperCase();this.setupMethod(l,b);a=l.disableCaching!==false?(l.disableCaching||i.disableCaching):false;if(b==="GET"&&a){c=Ext.urlAppend(c,(l.disableCachingParam||i.disableCachingParam)+"="+(new Date().getTime()))}if((b=="GET"||g)&&e){c=Ext.urlAppend(c,e);e=null}if(d){c=Ext.urlAppend(c,d)}return{url:c,method:b,data:g||e||null}},setupUrl:function(b,a){var c=this.getForm(b);if(c){a=a||c.action}return a},setupParams:function(a,d){var c=this.getForm(a),b;if(c&&!this.isFormUpload(a)){b=Ext.Element.serializeForm(c);d=d?(d+"&"+b):b}return d},setupMethod:function(a,b){if(this.isFormUpload(a)){return"POST"}return b},setupHeaders:function(m,n,d,c){var i=this,b=Ext.apply({},n.headers||{},i.defaultHeaders||{}),l=i.defaultPostHeader,j=n.jsonData,a=n.xmlData,k,g;if(!b["Content-Type"]&&(d||c)){if(d){if(n.rawData){l="text/plain"}else{if(a&&Ext.isDefined(a)){l="text/xml"}else{if(j&&Ext.isDefined(j)){l="application/json"}}}}b["Content-Type"]=l}if(i.useDefaultXhrHeader&&!b["X-Requested-With"]){b["X-Requested-With"]=i.defaultXhrHeader}try{for(k in b){if(b.hasOwnProperty(k)){g=b[k];m.setRequestHeader(k,g)}}}catch(h){i.fireEvent("exception",k,g)}return b},newRequest:function(a){var b;if((a.cors||this.cors)&&Ext.isIE&&Ext.ieVersion>=8){b=new XDomainRequest()}else{b=this.getXhrInstance()}return b},openRequest:function(c,a,d,g,b){var e=this.newRequest(c);if(g){e.open(a.method,a.url,d,g,b)}else{e.open(a.method,a.url,d)}if(c.withCredentials||this.withCredentials){e.withCredentials=true}return e},getXhrInstance:(function(){var b=[function(){return new XMLHttpRequest()},function(){return new ActiveXObject("MSXML2.XMLHTTP.3.0")},function(){return new ActiveXObject("MSXML2.XMLHTTP")},function(){return new ActiveXObject("Microsoft.XMLHTTP")}],c=0,a=b.length,g;for(;c<a;++c){try{g=b[c];g();break}catch(d){}}return g}()),isLoading:function(a){if(!a){a=this.getLatest()}if(!(a&&a.xhr)){return false}var b=a.xhr.readyState;return !(b===0||b==4)},abort:function(b){var a=this,d;if(!b){b=a.getLatest()}if(b&&a.isLoading(b)){d=b.xhr;try{d.onreadystatechange=null}catch(c){d=Ext.emptyFn}d.abort();a.clearTimeout(b);if(!b.timedout){b.aborted=true}a.onComplete(b);a.cleanup(b)}},abortAll:function(){var b=this.requests,a;for(a in b){if(b.hasOwnProperty(a)){this.abort(b[a])}}},getLatest:function(){var b=this.latestId,a;if(b){a=this.requests[b]}return a||null},onStateChange:function(a){if(a.xhr.readyState==4){this.clearTimeout(a);this.onComplete(a);this.cleanup(a)}},clearTimeout:function(a){clearTimeout(a.timeout);delete a.timeout},cleanup:function(a){a.xhr=null;delete a.xhr},onComplete:function(g){var d=this,c=g.options,a,i,b;try{a=d.parseStatus(g.xhr.status)}catch(h){a={success:false,isException:false}}i=a.success;if(i){b=d.createResponse(g);d.fireEvent("requestcomplete",d,b,c);Ext.callback(c.success,c.scope,[b,c])}else{if(a.isException||g.aborted||g.timedout){b=d.createException(g)}else{b=d.createResponse(g)}d.fireEvent("requestexception",d,b,c);Ext.callback(c.failure,c.scope,[b,c])}Ext.callback(c.callback,c.scope,[c,i,b]);delete d.requests[g.id];return b},parseStatus:function(a){a=a==1223?204:a;var c=(a>=200&&a<300)||a==304,b=false;if(!c){switch(a){case 12002:case 12029:case 12030:case 12031:case 12152:case 13030:b=true;break}}return{success:c,isException:b}},createResponse:function(c){var i=c.xhr,a={},j=i.getAllResponseHeaders().replace(/\r\n/g,"\n").split("\n"),d=j.length,k,e,h,g,b;while(d--){k=j[d];e=k.indexOf(":");if(e>=0){h=k.substr(0,e).toLowerCase();if(k.charAt(e+1)==" "){++e}a[h]=k.substr(e+1)}}c.xhr=null;delete c.xhr;b={request:c,requestId:c.id,status:i.status,statusText:i.statusText,getResponseHeader:function(l){return a[l.toLowerCase()]},getAllResponseHeaders:function(){return a},responseText:i.responseText,responseXML:i.responseXML};i=null;return b},createException:function(a){return{request:a,requestId:a.id,status:a.aborted?-1:0,statusText:a.aborted?"transaction aborted":"communication failure",aborted:a.aborted,timedout:a.timedout}}});Ext.define("Ext.Ajax",{extend:"Ext.data.Connection",singleton:true,autoAbort:false});Ext.define("Ext.util.Floating",{uses:["Ext.Layer","Ext.window.Window"],focusOnToFront:true,shadow:"sides",constructor:function(b){var a=this;a.el=new Ext.Layer(Ext.apply({hideMode:a.hideMode,hidden:a.hidden,shadow:(typeof a.shadow!="undefined")?a.shadow:"sides",shadowOffset:a.shadowOffset,constrain:false,shim:(a.shim===false)?false:undefined},a.floating),b);a.floating=true;a.registerWithOwnerCt()},registerWithOwnerCt:function(){var a=this;if(a.zIndexParent){a.zIndexParent.unregisterFloatingItem(a)}a.zIndexParent=a.up("[floating]");a.setFloatParent(a.ownerCt);delete a.ownerCt;if(a.zIndexParent){a.zIndexParent.registerFloatingItem(a)}else{Ext.WindowManager.register(a)}},setFloatParent:function(b){var a=this;if(a.floatParent){a.mun(a.floatParent,{hide:a.onFloatParentHide,show:a.onFloatParentShow,scope:a})}a.floatParent=b;if(b){a.mon(a.floatParent,{hide:a.onFloatParentHide,show:a.onFloatParentShow,scope:a})}if((a.constrain||a.constrainHeader)&&!a.constrainTo){a.constrainTo=b?b.getTargetEl():a.container}},onAfterFloatLayout:function(){this.syncShadow()},onFloatParentHide:function(){var a=this;if(a.hideOnParentHide!==false&&a.isVisible()){a.hide();a.showOnParentShow=true}},onFloatParentShow:function(){if(this.showOnParentShow){delete this.showOnParentShow;this.show()}},setZIndex:function(a){var b=this;b.el.setZIndex(a);a+=10;if(b.floatingDescendants){a=Math.floor(b.floatingDescendants.setBase(a)/100)*100+10000}return a},doConstrain:function(b){var c=this,a=c.getConstrainVector(b),d;if(a){d=c.getPosition(!!c.floatParent);d[0]+=a[0];d[1]+=a[1];c.setPosition(d)}},getConstrainVector:function(a){var b=this;if(b.constrain||b.constrainHeader){a=a||(b.floatParent&&b.floatParent.getTargetEl())||b.container||b.el.getScopeParent();return(b.constrainHeader?b.header.el:b.el).getConstrainVector(a)}},alignTo:function(b,a,c){this.setPagePosition(this.el.getAlignToXY(b.el||b,a,c));return this},toFront:function(b){var a=this;if(a.zIndexParent&&a.bringParentToFront!==false){a.zIndexParent.toFront(true)}if(!Ext.isDefined(b)){b=!a.focusOnToFront}if(b){a.preventFocusOnActivate=true}if(a.zIndexManager.bringToFront(a)){if(!b){a.focus(false,true)}}delete a.preventFocusOnActivate;return a},setActive:function(b,c){var a=this;if(b){if(a.el.shadow&&!a.maximized){a.el.enableShadow(true)}if(a.modal&&!a.preventFocusOnActivate){a.focus(false,true)}a.fireEvent("activate",a)}else{if(a.isWindow&&(c&&c.isWindow)){a.el.disableShadow()}a.fireEvent("deactivate",a)}},toBack:function(){this.zIndexManager.sendToBack(this);return this},center:function(){var a=this,b;if(a.isVisible()){b=a.el.getAlignToXY(a.container,"c-c");a.setPagePosition(b)}else{a.needsCenter=true}return a},onFloatShow:function(){if(this.needsCenter){this.center()}delete this.needsCenter},syncShadow:function(){if(this.floating){this.el.sync(true)}},fitContainer:function(){var c=this,b=c.floatParent,a=b?b.getTargetEl():c.container;c.setSize(a.getViewSize(false));c.setPosition.apply(c,b?[0,0]:a.getXY())}});Ext.define("Ext.Component",{alias:["widget.component","widget.box"],extend:"Ext.AbstractComponent",requires:["Ext.util.DelayedTask"],uses:["Ext.Layer","Ext.resizer.Resizer","Ext.util.ComponentDragger"],mixins:{floating:"Ext.util.Floating"},statics:{DIRECTION_TOP:"top",DIRECTION_RIGHT:"right",DIRECTION_BOTTOM:"bottom",DIRECTION_LEFT:"left",VERTICAL_DIRECTION_Re:/^(?:top|bottom)$/,INVALID_ID_CHARS_Re:/[\.,\s]/g},resizeHandles:"all",floating:false,toFrontOnShow:true,hideMode:"display",bubbleEvents:[],monPropRe:/^(?:scope|delay|buffer|single|stopEvent|preventDefault|stopPropagation|normalized|args|delegate)$/,defaultComponentLayoutType:"autocomponent",constructor:function(a){var b=this;a=a||{};if(a.initialConfig){if(a.isAction){b.baseAction=a}a=a.initialConfig}else{if(a.tagName||a.dom||Ext.isString(a)){a={applyTo:a,id:a.id||a}}}b.callParent([a]);if(b.baseAction){b.baseAction.addComponent(b)}},initComponent:function(){var a=this;a.callParent();if(a.listeners){a.on(a.listeners);a.listeners=null}a.enableBubble(a.bubbleEvents);a.mons=[]},afterRender:function(){var a=this;a.callParent();if(!(a.x&&a.y)&&(a.pageX||a.pageY)){a.setPagePosition(a.pageX,a.pageY)}},setAutoScroll:function(a){var b=this;b.autoScroll=!!a;if(b.rendered){b.getTargetEl().setStyle(b.getOverflowStyle())}b.updateLayout();return b},setOverflowXY:function(b,a){var c=this,d=arguments.length;if(d){c.overflowX=b||"";if(d>1){c.overflowY=a||""}}if(c.rendered){c.getTargetEl().setStyle(c.getOverflowStyle())}c.updateLayout();return c},beforeRender:function(){var b=this,c=b.floating,a;if(c){b.addCls(Ext.baseCSSPrefix+"layer");a=c.cls;if(a){b.addCls(a)}}return b.callParent()},afterComponentLayout:function(){this.callParent(arguments);if(this.floating){this.onAfterFloatLayout()}},makeFloating:function(a){this.mixins.floating.constructor.call(this,a)},wrapPrimaryEl:function(a){if(this.floating){this.makeFloating(a)}else{this.callParent(arguments)}},initResizable:function(a){var b=this;a=Ext.apply({target:b,dynamic:false,constrainTo:b.constrainTo||(b.floatParent?b.floatParent.getTargetEl():null),handles:b.resizeHandles},a);a.target=b;b.resizer=new Ext.resizer.Resizer(a)},getDragEl:function(){return this.el},initDraggable:function(){var c=this,a=(c.resizer&&c.resizer.el!==c.el)?c.resizerComponent=new Ext.Component({el:c.resizer.el,rendered:true,container:c.container}):c,b=Ext.applyIf({el:a.getDragEl(),constrainTo:c.constrain?(c.constrainTo||(c.floatParent?c.floatParent.getTargetEl():c.el.getScopeParent())):undefined},c.draggable);if(c.constrain||c.constrainDelegate){b.constrain=c.constrain;b.constrainDelegate=c.constrainDelegate}c.dd=new Ext.util.ComponentDragger(a,b)},scrollBy:function(b,a,c){var d;if((d=this.getTargetEl())&&d.dom){d.scrollBy.apply(d,arguments)}},setLoading:function(c,d){var b=this,a;if(b.rendered){Ext.destroy(b.loadMask);b.loadMask=null;if(c!==false&&!b.collapsed){if(Ext.isObject(c)){a=Ext.apply({},c)}else{if(Ext.isString(c)){a={msg:c}}else{a={}}}if(d){Ext.applyIf(a,{useTargetEl:true})}b.loadMask=new Ext.LoadMask(b,a);b.loadMask.show()}}return b.loadMask},beforeSetPosition:function(){var b=this,c=b.callParent(arguments),a;if(c){a=b.adjustPosition(c.x,c.y);c.x=a.x;c.y=a.y}return c||null},afterSetPosition:function(b,a){this.onPosition(b,a);this.fireEvent("move",this,b,a)},showAt:function(a,d,b){var c=this;if(!c.rendered&&(c.autoRender||c.floating)){c.doAutoRender();c.hidden=true}if(c.floating){c.setPosition(a,d,b)}else{c.setPagePosition(a,d,b)}c.show()},setPagePosition:function(a,g,b){var c=this,d,e;if(Ext.isArray(a)){g=a[1];a=a[0]}c.pageX=a;c.pageY=g;if(c.floating){if(c.isContainedFloater()){e=c.floatParent.getTargetEl().getViewRegion();if(Ext.isNumber(a)&&Ext.isNumber(e.left)){a-=e.left}if(Ext.isNumber(g)&&Ext.isNumber(e.top)){g-=e.top}}else{d=c.el.translatePoints(a,g);a=d.left;g=d.top}c.setPosition(a,g,b)}else{d=c.el.translatePoints(a,g);c.setPosition(d.left,d.top,b)}return c},isContainedFloater:function(){return(this.floating&&this.floatParent)},getBox:function(b){var c=b?this.getPosition(b):this.el.getXY(),a=this.getSize();a.x=c[0];a.y=c[1];return a},updateBox:function(a){this.setSize(a.width,a.height);this.setPagePosition(a.x,a.y);return this},getOuterSize:function(){var a=this.el;return{width:a.getWidth()+a.getMargin("lr"),height:a.getHeight()+a.getMargin("tb")}},adjustPosition:function(a,d){var b=this,c;if(b.isContainedFloater()){c=b.floatParent.getTargetEl().getViewRegion();a+=c.left;d+=c.top}return{x:a,y:d}},getPosition:function(a){var c=this,b=c.el,e,d=c.isContainedFloater(),g;if((a===true)&&!d){return[b.getLocalX(),b.getLocalY()]}e=c.el.getXY();if((a===true)&&d){g=c.floatParent.getTargetEl().getViewRegion();e[0]-=g.left;e[1]-=g.top}return e},getId:function(){var a=this,b;if(!a.id){b=a.getXType();if(b){b=b.replace(Ext.Component.INVALID_ID_CHARS_Re,"-")}else{b=Ext.name.toLowerCase()+"-comp"}a.id=b+"-"+a.getAutoId()}return a.id},show:function(d,a,b){var c=this,e=c.rendered;if(e&&c.isVisible()){if(c.toFrontOnShow&&c.floating){c.toFront()}}else{if(c.fireEvent("beforeshow",c)!==false){c.hidden=false;if(!e&&(c.autoRender||c.floating)){c.doAutoRender();e=c.rendered}if(e){c.beforeShow();c.onShow.apply(c,arguments);c.afterShow.apply(c,arguments)}}else{c.onShowVeto()}}return c},onShowVeto:Ext.emptyFn,beforeShow:Ext.emptyFn,onShow:function(){var a=this;a.el.show();a.callParent(arguments);if(a.floating){if(a.maximized){a.fitContainer()}else{if(a.constrain){a.doConstrain()}}}},afterShow:function(h,b,e){var g=this,a,c,d;h=h||g.animateTarget;if(!g.ghost){h=null}if(h){h=h.el?h.el:Ext.get(h);c=g.el.getBox();a=h.getBox();g.el.addCls(Ext.baseCSSPrefix+"hide-offsets");d=g.ghost();d.el.stopAnimation();d.el.setX(-10000);d.el.animate({from:a,to:c,listeners:{afteranimate:function(){delete d.componentLayout.lastComponentSize;g.unghost();g.el.removeCls(Ext.baseCSSPrefix+"hide-offsets");g.onShowComplete(b,e)}}})}else{g.onShowComplete(b,e)}},onShowComplete:function(a,b){var c=this;if(c.floating){c.toFront();c.onFloatShow()}Ext.callback(a,b||c);c.fireEvent("show",c);delete c.hiddenByLayout},hide:function(){var a=this;a.showOnParentShow=false;if(!(a.rendered&&!a.isVisible())&&a.fireEvent("beforehide",a)!==false){a.hidden=true;if(a.rendered){a.onHide.apply(a,arguments)}}return a},onHide:function(g,a,d){var e=this,c,b;g=g||e.animateTarget;if(!e.ghost){g=null}if(g){g=g.el?g.el:Ext.get(g);c=e.ghost();c.el.stopAnimation();b=g.getBox();b.width+="px";b.height+="px";c.el.animate({to:b,listeners:{afteranimate:function(){delete c.componentLayout.lastComponentSize;c.el.hide();e.afterHide(a,d)}}})}e.el.hide();if(!g){e.afterHide(a,d)}},afterHide:function(a,b){var c=this;delete c.hiddenByLayout;Ext.AbstractComponent.prototype.onHide.call(this);Ext.callback(a,b||c);c.fireEvent("hide",c)},onDestroy:function(){var a=this;if(a.rendered){Ext.destroy(a.proxy,a.proxyWrap,a.resizer,a.resizerComponent)}delete a.focusTask;a.callParent()},deleteMembers:function(){var b=arguments,a=b.length,c=0;for(;c<a;++c){delete this[b[c]]}},focus:function(e,c){var d=this,a,g,b;if(c){if(!d.focusTask){d.focusTask=new Ext.util.DelayedTask(d.focus)}d.focusTask.delay(Ext.isNumber(c)?c:10,null,d,[e,false]);return d}if(d.rendered&&!d.isDestroyed&&d.isVisible(true)&&(a=d.getFocusEl())){if(a.isComponent){return a.focus(e,c)}if((g=a.dom)){if(a.needsTabIndex()){g.tabIndex=-1}if(d.floating){b=d.container.dom.scrollTop}a.focus();if(e===true){g.select()}}if(d.floating){d.toFront(true);if(b!==undefined){d.container.dom.scrollTop=b}}}return d},cancelFocus:function(){var a=this.focusTask;if(a){a.cancel()}},blur:function(){var a;if(this.rendered&&(a=this.getFocusEl())){a.blur()}return this},getEl:function(){return this.el},getResizeEl:function(){return this.el},getPositionEl:function(){return this.el},getActionEl:function(){return this.el},getVisibilityEl:function(){return this.el},onResize:Ext.emptyFn,getBubbleTarget:function(){return this.ownerCt||this.floatParent},getContentTarget:function(){return this.el},cloneConfig:function(c){c=c||{};var d=c.id||Ext.id(),a=Ext.applyIf(c,this.initialConfig),b;a.id=d;b=Ext.getClass(this);return new b(a)},getXType:function(){return this.self.xtype},findParentBy:function(a){var b;for(b=this.getBubbleTarget();b&&!a(b,this);b=b.getBubbleTarget()){}return b||null},findParentByType:function(a){return Ext.isFunction(a)?this.findParentBy(function(b){return b.constructor===a}):this.up(a)},bubble:function(c,b,a){var d=this;while(d){if(c.apply(b||d,a||[d])===false){break}d=d.getBubbleTarget()}return this},getProxy:function(){var a=this,b;if(!a.proxy){b=Ext.getBody();if(Ext.scopeResetCSS){a.proxyWrap=b=Ext.getBody().createChild({cls:Ext.resetCls})}a.proxy=a.el.createProxy(Ext.baseCSSPrefix+"proxy-el",b,true)}return a.proxy}});Ext.define("Ext.ElementLoader",{mixins:{observable:"Ext.util.Observable"},uses:["Ext.data.Connection","Ext.Ajax"],statics:{Renderer:{Html:function(a,b,c){a.getTarget().update(b.responseText,c.scripts===true);return true}}},url:null,params:null,baseParams:null,autoLoad:false,target:null,loadMask:false,ajaxOptions:null,scripts:false,isLoader:true,constructor:function(b){var c=this,a;b=b||{};Ext.apply(c,b);c.setTarget(c.target);c.addEvents("beforeload","exception","load");c.mixins.observable.constructor.call(c);if(c.autoLoad){a=c.autoLoad;if(a===true){a={}}c.load(a)}},setTarget:function(b){var a=this;b=Ext.get(b);if(a.target&&a.target!=b){a.abort()}a.target=b},getTarget:function(){return this.target||null},abort:function(){var a=this.active;if(a!==undefined){Ext.Ajax.abort(a.request);if(a.mask){this.removeMask()}delete this.active}},removeMask:function(){this.target.unmask()},addMask:function(a){this.target.mask(a===true?null:a)},load:function(i){i=Ext.apply({},i);var e=this,d=e.target,j=Ext.isDefined(i.loadMask)?i.loadMask:e.loadMask,b=Ext.apply({},i.params),a=Ext.apply({},i.ajaxOptions),g=i.callback||e.callback,h=i.scope||e.scope||e,c;Ext.applyIf(a,e.ajaxOptions);Ext.applyIf(i,a);Ext.applyIf(b,e.params);Ext.apply(b,e.baseParams);Ext.applyIf(i,{url:e.url});Ext.apply(i,{scope:e,params:b,callback:e.onComplete});if(e.fireEvent("beforeload",e,i)===false){return}if(j){e.addMask(j)}c=Ext.Ajax.request(i);e.active={request:c,options:i,mask:j,scope:h,callback:g,success:i.success||e.success,failure:i.failure||e.failure,renderer:i.renderer||e.renderer,scripts:Ext.isDefined(i.scripts)?i.scripts:e.scripts};e.setOptions(e.active,i)},setOptions:Ext.emptyFn,onComplete:function(b,h,a){var d=this,g=d.active,c=g.scope,e=d.getRenderer(g.renderer);if(h){h=e.call(d,d,a,g)!==false}if(h){Ext.callback(g.success,c,[d,a,b]);d.fireEvent("load",d,a,b)}else{Ext.callback(g.failure,c,[d,a,b]);d.fireEvent("exception",d,a,b)}Ext.callback(g.callback,c,[d,h,a,b]);if(g.mask){d.removeMask()}delete d.active},getRenderer:function(a){if(Ext.isFunction(a)){return a}return this.statics().Renderer.Html},startAutoRefresh:function(a,b){var c=this;c.stopAutoRefresh();c.autoRefresh=setInterval(function(){c.load(b)},a)},stopAutoRefresh:function(){clearInterval(this.autoRefresh);delete this.autoRefresh},isAutoRefreshing:function(){return Ext.isDefined(this.autoRefresh)},destroy:function(){var a=this;a.stopAutoRefresh();delete a.target;a.abort();a.clearListeners()}});Ext.define("Ext.ComponentLoader",{extend:"Ext.ElementLoader",statics:{Renderer:{Data:function(a,b,d){var g=true;try{a.getTarget().update(Ext.decode(b.responseText))}catch(c){g=false}return g},Component:function(a,c,h){var i=true,g=a.getTarget(),b=[];try{b=Ext.decode(c.responseText)}catch(d){i=false}if(i){g.suspendLayouts();if(h.removeAll){g.removeAll()}g.add(b);g.resumeLayouts(true)}return i}}},target:null,loadMask:false,renderer:"html",setTarget:function(b){var a=this;if(Ext.isString(b)){b=Ext.getCmp(b)}if(a.target&&a.target!=b){a.abort()}a.target=b},removeMask:function(){this.target.setLoading(false)},addMask:function(a){this.target.setLoading(a)},setOptions:function(b,a){b.removeAll=Ext.isDefined(a.removeAll)?a.removeAll:this.removeAll},getRenderer:function(b){if(Ext.isFunction(b)){return b}var a=this.statics().Renderer;switch(b){case"component":return a.Component;case"data":return a.Data;default:return Ext.ElementLoader.Renderer.Html}}});Ext.define("Ext.Template",{requires:["Ext.dom.Helper","Ext.util.Format"],inheritableStatics:{from:function(b,a){b=Ext.getDom(b);return new this(b.value||b.innerHTML,a||"")}},constructor:function(d){var g=this,b=arguments,a=[],c=0,e=b.length,h;g.initialConfig={};if(e===1&&Ext.isArray(d)){b=d;e=b.length}if(e>1){for(;c<e;c++){h=b[c];if(typeof h=="object"){Ext.apply(g.initialConfig,h);Ext.apply(g,h)}else{a.push(h)}}}else{a.push(d)}g.html=a.join("");if(g.compiled){g.compile()}},isTemplate:true,disableFormats:false,re:/\{([\w\-]+)(?:\:([\w\.]*)(?:\((.*?)?\))?)?\}/g,apply:function(a){var h=this,d=h.disableFormats!==true,g=Ext.util.Format,c=h,b;if(h.compiled){return h.compiled(a).join("")}function e(i,k,l,j){if(l&&d){if(j){j=[a[k]].concat(Ext.functionFactory("return ["+j+"];")())}else{j=[a[k]]}if(l.substr(0,5)=="this."){return c[l.substr(5)].apply(c,j)}else{return g[l].apply(g,j)}}else{return a[k]!==undefined?a[k]:""}}b=h.html.replace(h.re,e);return b},applyOut:function(a,b){var c=this;if(c.compiled){b.push.apply(b,c.compiled(a))}else{b.push(c.apply(a))}return b},applyTemplate:function(){return this.apply.apply(this,arguments)},set:function(a,c){var b=this;b.html=a;b.compiled=null;return c?b.compile():b},compileARe:/\\/g,compileBRe:/(\r\n|\n)/g,compileCRe:/'/g,compile:function(){var me=this,fm=Ext.util.Format,useFormat=me.disableFormats!==true,body,bodyReturn;function fn(m,name,format,args){if(format&&useFormat){args=args?","+args:"";if(format.substr(0,5)!="this."){format="fm."+format+"("}else{format="this."+format.substr(5)+"("}}else{args="";format="(values['"+name+"'] == undefined ? '' : "}return"',"+format+"values['"+name+"']"+args+") ,'"}bodyReturn=me.html.replace(me.compileARe,"\\\\").replace(me.compileBRe,"\\n").replace(me.compileCRe,"\\'").replace(me.re,fn);body="this.compiled = function(values){ return ['"+bodyReturn+"'];};";eval(body);return me},insertFirst:function(b,a,c){return this.doInsert("afterBegin",b,a,c)},insertBefore:function(b,a,c){return this.doInsert("beforeBegin",b,a,c)},insertAfter:function(b,a,c){return this.doInsert("afterEnd",b,a,c)},append:function(b,a,c){return this.doInsert("beforeEnd",b,a,c)},doInsert:function(b,d,a,e){var c=Ext.DomHelper.insertHtml(b,Ext.getDom(d),this.apply(a));return e?Ext.get(c):c},overwrite:function(c,a,d){var b=Ext.DomHelper.overwrite(Ext.getDom(c),this.apply(a));return d?Ext.get(b):b}});Ext.define("Ext.XTemplateParser",{constructor:function(a){Ext.apply(this,a)},doTpl:Ext.emptyFn,parse:function(l){var v=this,p=l.length,o={elseif:"elif"},q=v.topRe,c=v.actionsRe,e,d,j,n,h,k,i,u,r,b,g,a;v.level=0;v.stack=d=[];for(e=0;e<p;e=b){q.lastIndex=e;n=q.exec(l);if(!n){v.doText(l.substring(e,p));break}r=n.index;b=q.lastIndex;if(e<r){v.doText(l.substring(e,r))}if(n[1]){b=l.indexOf("%}",r+2);v.doEval(l.substring(r+2,b));b+=2}else{if(n[2]){b=l.indexOf("]}",r+2);v.doExpr(l.substring(r+2,b));b+=2}else{if(n[3]){v.doTag(n[3])}else{if(n[4]){g=null;while((u=c.exec(n[4]))!==null){j=u[2]||u[3];if(j){j=Ext.String.htmlDecode(j);h=u[1];h=o[h]||h;g=g||{};k=g[h];if(typeof k=="string"){g[h]=[k,j]}else{if(k){g[h].push(j)}else{g[h]=j}}}}if(!g){if(v.elseRe.test(n[4])){v.doElse()}else{if(v.defaultRe.test(n[4])){v.doDefault()}else{v.doTpl();d.push({type:"tpl"})}}}else{if(g["if"]){v.doIf(g["if"],g);d.push({type:"if"})}else{if(g["switch"]){v.doSwitch(g["switch"],g);d.push({type:"switch"})}else{if(g["case"]){v.doCase(g["case"],g)}else{if(g.elif){v.doElseIf(g.elif,g)}else{if(g["for"]){++v.level;if(a=v.propRe.exec(n[4])){g.propName=a[1]||a[2]}v.doFor(g["for"],g);d.push({type:"for",actions:g})}else{if(g.exec){v.doExec(g.exec,g);d.push({type:"exec",actions:g})}}}}}}}}else{if(n[0].length===5){d.push({type:"tpl"})}else{i=d.pop();v.doEnd(i.type,i.actions);if(i.type=="for"){--v.level}}}}}}}},topRe:/(?:(\{\%)|(\{\[)|\{([^{}]*)\})|(?:<tpl([^>]*)\>)|(?:<\/tpl>)/g,actionsRe:/\s*(elif|elseif|if|for|exec|switch|case|eval)\s*\=\s*(?:(?:"([^"]*)")|(?:'([^']*)'))\s*/g,propRe:/prop=(?:(?:"([^"]*)")|(?:'([^']*)'))/,defaultRe:/^\s*default\s*$/,elseRe:/^\s*else\s*$/});Ext.define("Ext.XTemplateCompiler",{extend:"Ext.XTemplateParser",useEval:Ext.isGecko,useIndex:Ext.isIE6||Ext.isIE7,useFormat:true,propNameRe:/^[\w\d\$]*$/,compile:function(a){var c=this,b=c.generate(a);return c.useEval?c.evalTpl(b):(new Function("Ext",b))(Ext)},generate:function(a){var d=this,b="var fm=Ext.util.Format,ts=Object.prototype.toString;",c;d.maxLevel=0;d.body=["var c0=values, a0="+d.createArrayTest(0)+", p0=parent, n0=xcount, i0=xindex, v;\n"];if(d.definitions){if(typeof d.definitions==="string"){d.definitions=[d.definitions,b]}else{d.definitions.push(b)}}else{d.definitions=[b]}d.switches=[];d.parse(a);d.definitions.push((d.useEval?"$=":"return")+" function ("+d.fnArgs+") {",d.body.join(""),"}");c=d.definitions.join("\n");d.definitions.length=d.body.length=d.switches.length=0;delete d.definitions;delete d.body;delete d.switches;return c},doText:function(c){var b=this,a=b.body;c=c.replace(b.aposRe,"\\'").replace(b.newLineRe,"\\n");if(b.useIndex){a.push("out[out.length]='",c,"'\n")}else{a.push("out.push('",c,"')\n")}},doExpr:function(b){var a=this.body;a.push("if ((v="+b+")!==undefined) out");if(this.useIndex){a.push("[out.length]=v+''\n")}else{a.push(".push(v+'')\n")}},doTag:function(a){this.doExpr(this.parseTag(a))},doElse:function(){this.body.push("} else {\n")},doEval:function(a){this.body.push(a,"\n")},doIf:function(b,c){var a=this;if(b==="."){a.body.push("if (values) {\n")}else{if(a.propNameRe.test(b)){a.body.push("if (",a.parseTag(b),") {\n")}else{a.body.push("if (",a.addFn(b),a.callFn,") {\n")}}if(c.exec){a.doExec(c.exec)}},doElseIf:function(b,c){var a=this;if(b==="."){a.body.push("else if (values) {\n")}else{if(a.propNameRe.test(b)){a.body.push("} else if (",a.parseTag(b),") {\n")}else{a.body.push("} else if (",a.addFn(b),a.callFn,") {\n")}}if(c.exec){a.doExec(c.exec)}},doSwitch:function(b){var a=this;if(b==="."){a.body.push("switch (values) {\n")}else{if(a.propNameRe.test(b)){a.body.push("switch (",a.parseTag(b),") {\n")}else{a.body.push("switch (",a.addFn(b),a.callFn,") {\n")}}a.switches.push(0)},doCase:function(e){var d=this,c=Ext.isArray(e)?e:[e],g=d.switches.length-1,a,b;if(d.switches[g]){d.body.push("break;\n")}else{d.switches[g]++}for(b=0,g=c.length;b<g;++b){a=d.intRe.exec(c[b]);c[b]=a?a[1]:("'"+c[b].replace(d.aposRe,"\\'")+"'")}d.body.push("case ",c.join(": case "),":\n")},doDefault:function(){var a=this,b=a.switches.length-1;if(a.switches[b]){a.body.push("break;\n")}else{a.switches[b]++}a.body.push("default:\n")},doEnd:function(b,d){var c=this,a=c.level-1;if(b=="for"){if(d.exec){c.doExec(d.exec)}c.body.push("}\n");c.body.push("parent=p",a,";values=r",a+1,";xcount=n",a,";xindex=i",a,"\n")}else{if(b=="if"||b=="switch"){c.body.push("}\n")}}},doFor:function(g,i){var e=this,d,b=e.level,a=b-1,c="p"+b,h;if(g==="."){d="values"}else{if(e.propNameRe.test(g)){d=e.parseTag(g)}else{d=e.addFn(g)+e.callFn}}if(e.maxLevel<b){e.maxLevel=b;e.body.push("var ")}if(g=="."){h="c"+b}else{h="a"+a+"?c"+a+"[i"+a+"]:p"+b}e.body.push("i",b,"=0,n",b,"=0,c",b,"=",d,",a",b,"=",e.createArrayTest(b),",p",b,"=c",a,",r",b,"=values;\n","parent=",h,"\n","if (c",b,"){if(a",b,"){n",b,"=c",b,".length;}else if (c",b,".isMixedCollection){c",b,"=c",b,".items;n",b,"=c",b,".length;}else if(c",b,".isStore){c",b,"=c",b,".data.items;n",b,"=c",b,".length;}else{c",b,"=[c",b,"];n",b,"=1;}}\n","for (xcount=n",b,";i",b,"<n"+b+";++i",b,"){\n","values=c",b,"[i",b,"]");if(i.propName){e.body.push(".",i.propName)}e.body.push("\n","xindex=i",b,"+1\n")},createArrayTest:("isArray" in Array)?function(a){return"Array.isArray(c"+a+")"}:function(a){return"ts.call(c"+a+')==="[object Array]"'},doExec:function(c,d){var b=this,a="f"+b.definitions.length;b.definitions.push("function "+a+"("+b.fnArgs+") {"," try { with(values) {"," "+c," }} catch(e) {","}","}");b.body.push(a+b.callFn+"\n")},addFn:function(a){var c=this,b="f"+c.definitions.length;if(a==="."){c.definitions.push("function "+b+"("+c.fnArgs+") {"," return values","}")}else{if(a===".."){c.definitions.push("function "+b+"("+c.fnArgs+") {"," return parent","}")}else{c.definitions.push("function "+b+"("+c.fnArgs+") {"," try { with(values) {"," return("+a+")"," }} catch(e) {","}","}")}}return b},parseTag:function(b){var h=this,a=h.tagRe.exec(b),e=a[1],i=a[2],d=a[3],g=a[4],c;if(e=="."){if(!h.validTypes){h.definitions.push("var validTypes={string:1,number:1,boolean:1};");h.validTypes=true}c='validTypes[typeof values] || ts.call(values) === "[object Date]" ? values : ""'}else{if(e=="#"){c="xindex"}else{if(e.substr(0,7)=="parent."){c=e}else{if(isNaN(e)&&e.indexOf("-")==-1&&e.indexOf(".")!=-1){c="values."+e}else{c="values['"+e+"']"}}}}if(g){c="("+c+g+")"}if(i&&h.useFormat){d=d?","+d:"";if(i.substr(0,5)!="this."){i="fm."+i+"("}else{i+="("}}else{return c}return i+c+d+")"},evalTpl:function($){eval($);return $},newLineRe:/\r\n|\r|\n/g,aposRe:/[']/g,intRe:/^\s*(\d+)\s*$/,tagRe:/([\w-\.\#]+)(?:\:([\w\.]*)(?:\((.*?)?\))?)?(\s?[\+\-\*\/]\s?[\d\.\+\-\*\/\(\)]+)?/},function(){var a=this.prototype;a.fnArgs="out,values,parent,xindex,xcount";a.callFn=".call(this,"+a.fnArgs+")"});Ext.define("Ext.XTemplate",{extend:"Ext.Template",requires:"Ext.XTemplateCompiler",emptyObj:{},apply:function(a,b){return this.applyOut(a,[],b).join("")},applyOut:function(a,b,d){var g=this,c;if(!g.fn){c=new Ext.XTemplateCompiler({useFormat:g.disableFormats!==true,definitions:g.definitions});g.fn=c.compile(g.html)}try{g.fn.call(g,b,a,d||g.emptyObj,1,1)}catch(h){}return b},compile:function(){return this},statics:{getTpl:function(a,c){var b=a[c],d;if(b&&!b.isTemplate){b=Ext.ClassManager.dynInstantiate("Ext.XTemplate",b);if(a.hasOwnProperty(c)){a[c]=b}else{for(d=a.self.prototype;d;d=d.superclass){if(d.hasOwnProperty(c)){d[c]=b;break}}}}return b||null}}});Ext.define("Ext.layout.Layout",{requires:["Ext.XTemplate"],uses:["Ext.layout.Context"],isLayout:true,initialized:false,running:false,autoSizePolicy:{setsWidth:0,setsHeight:0},statics:{layoutsByType:{},create:function(g,e){var k=Ext.ClassManager,c=this.layoutsByType,d,h,b,a,i,j;if(!g||typeof g==="string"){i=g||e;b={}}else{if(g.isLayout){return g}else{b=g;i=g.type||e}}if(!(a=c[i])){d="layout."+i;h=k.getNameByAlias(d);if(!h){j=true}a=k.get(h);if(j||!a){return k.instantiateByAlias(d,b||{})}c[i]=a}return new a(b)}},constructor:function(a){var b=this;b.id=Ext.id(null,b.type+"-");Ext.apply(b,a);b.layoutCount=0},beginLayout:Ext.emptyFn,beginLayoutCycle:function(c){var b=this,a=b.context,d;if(b.lastWidthModel!=c.widthModel){if(b.lastWidthModel){d=true}b.lastWidthModel=c.widthModel}if(b.lastHeightModel!=c.heightModel){if(b.lastWidthModel){d=true}b.lastHeightModel=c.heightModel}if(d){(a=c.context).clearTriggers(b,false);a.clearTriggers(b,true);b.triggerCount=0}},finishedLayout:function(){this.ownerContext=null},redoLayout:Ext.emptyFn,undoLayout:Ext.emptyFn,getAnimatePolicy:function(){return this.animatePolicy},getItemSizePolicy:function(a){return this.autoSizePolicy},isItemBoxParent:function(a){return false},isItemLayoutRoot:function(d){var c=d.getSizeModel(),b=c.width,a=c.height;if(!d.componentLayout.lastComponentSize&&(b.calculated||a.calculated)){return false}return !b.shrinkWrap&&!a.shrinkWrap},isItemShrinkWrap:function(a){return a.shrinkWrap},isRunning:function(){return !!this.ownerContext},getItemsRenderTree:function(d,b){var h=d.length,e,g,c,a;if(h){a=[];for(e=0;e<h;++e){g=d[e];if(!g.rendered){if(b&&(b[g.id]!==undefined)){c=b[g.id]}else{this.configureItem(g);c=g.getRenderTree();if(b){b[g.id]=c}}if(c){a.push(c)}}}}return a},finishRender:Ext.emptyFn,finishRenderItems:function(e,a){var d=a.length,b,c;for(b=0;b<d;b++){c=a[b];if(c.rendering){c.finishRender(b);this.afterRenderItem(c)}}},renderChildren:function(){var b=this,a=b.getLayoutItems(),c=b.getRenderTarget();b.renderItems(a,c)},renderItems:function(a,g){var e=this,d=a.length,b=0,c;if(d){Ext.suspendLayouts();for(;b<d;b++){c=a[b];if(c&&!c.rendered){e.renderItem(c,g,b)}else{if(!e.isValidParent(c,g,b)){e.moveItem(c,g,b)}else{e.configureItem(c)}}}Ext.resumeLayouts(true)}},isValidParent:function(d,e,a){var b=d.el?d.el.dom:Ext.getDom(d),c=(e&&e.dom)||e;if(b.parentNode&&b.parentNode.className.indexOf(Ext.baseCSSPrefix+"resizable-wrap")!==-1){b=b.parentNode}if(b&&c){if(typeof a=="number"){return b===c.childNodes[a]}return b.parentNode===c}return false},configureItem:function(a){a.ownerLayout=this},renderItem:function(c,d,a){var b=this;if(!c.rendered){b.configureItem(c);c.render(d,a);b.afterRenderItem(c)}},moveItem:function(b,c,a){c=c.dom||c;if(typeof a=="number"){a=c.childNodes[a]}c.insertBefore(b.el.dom,a||null);b.container=Ext.get(c);this.configureItem(b)},onContentChange:function(){this.owner.updateLayout();return true},initLayout:function(){this.initialized=true},setOwner:function(a){this.owner=a},getLayoutItems:function(){return[]},afterRenderItem:Ext.emptyFn,onAdd:Ext.emptyFn,onRemove:Ext.emptyFn,onDestroy:Ext.emptyFn,afterRemove:function(e){var d=this,c=e.el,b=d.owner,a;if(e.rendered){a=[].concat(d.itemCls||[]);if(b.itemCls){a=Ext.Array.push(a,b.itemCls)}if(a.length){c.removeCls(a)}}delete e.ownerLayout},destroy:function(){var a=this,b;if(a.targetCls){b=a.getTarget();if(b){b.removeCls(a.targetCls)}}a.onDestroy()},sortWeightedItems:function(a,d){for(var b=0,c=a.length;b<c;++b){a[b].$i=b}Ext.Array.sort(a,function(g,e){var h=e.weight-g.weight;if(!h){h=g.$i-e.$i;if(g[d]){h=-h}}return h});for(b=0;b<c;++b){delete a[b].$i}}},function(){var l=this,k={},m=[],g,e,b,a,d;l.prototype.sizeModels=l.sizeModels=k;var h=function(j){var n=this,i=j.name;Ext.apply(Ext.apply(n,c),j);n[i]=true;h[i]=k[i]=n;n.fixed=!(n.auto=n.natural||n.shrinkWrap);n.ordinal=m.length;m.push(n)};Ext.layout.SizeModel=h;var c={calculated:false,configured:false,constrainedMax:false,constrainedMin:false,natural:false,shrinkWrap:false,calculatedFromConfigured:false,calculatedFromNatural:false,calculatedFromShrinkWrap:false,names:null};new h({name:"calculated"});new h({name:"configured",names:{width:"width",height:"height"}});new h({name:"natural"});new h({name:"shrinkWrap"});new h({name:"calculatedFromConfigured",configured:true,names:{width:"width",height:"height"}});new h({name:"calculatedFromNatural",natural:true});new h({name:"calculatedFromShrinkWrap",shrinkWrap:true});new h({name:"constrainedMax",configured:true,constrained:true,names:{width:"maxWidth",height:"maxHeight"}});new h({name:"constrainedMin",configured:true,constrained:true,names:{width:"minWidth",height:"minHeight"}});for(g=0,b=m.length;g<b;++g){d=m[g];d.pairsByHeightOrdinal=a=[];for(e=0;e<b;++e){a.push({width:d,height:m[e]})}}});Ext.define("Ext.layout.container.Container",{extend:"Ext.layout.Layout",alternateClassName:"Ext.layout.ContainerLayout",mixins:{elementCt:"Ext.util.ElementContainer"},requires:["Ext.XTemplate"],type:"container",manageOverflow:0,beginCollapse:Ext.emptyFn,beginExpand:Ext.emptyFn,animatePolicy:null,childEls:["overflowPadderEl"],renderTpl:["{%this.renderBody(out,values)%}"],usesContainerHeight:true,usesContainerWidth:true,usesHeight:true,usesWidth:true,reserveScrollbar:false,lastOverflowAdjust:{width:0,height:0},constructor:function(){this.callParent(arguments);this.mixins.elementCt.constructor.call(this)},destroy:function(){this.callParent();this.mixins.elementCt.destroy.call(this)},initLayout:function(){var b=this,a=Ext.getScrollbarSize().width;b.callParent();if(a&&b.manageOverflow&&!b.hasOwnProperty("lastOverflowAdjust")){if(b.owner.autoScroll||b.reserveScrollbar){b.lastOverflowAdjust={width:a,height:0}}}},beginLayout:function(a){this.callParent(arguments);a.targetContext=a.getEl("getTarget",this);this.cacheChildItems(a)},beginLayoutCycle:function(c,a){var b=this,d=b.overflowPadderEl;b.callParent(arguments);if(!c.state.overflowAdjust){c.state.overflowAdjust=b.lastOverflowAdjust}if(a){if(b.usesContainerHeight){++c.consumersContainerHeight}if(b.usesContainerWidth){++c.consumersContainerWidth}}if(d){d.setStyle("display","none")}},completeLayout:function(a){this.lastOverflowAdjust=a.state.overflowAdjust},cacheChildItems:function(e){var c=e.context,g=[],a=this.getVisibleItems(),d=a.length,b;e.childItems=g;e.visibleItems=a;for(b=0;b<d;++b){g.push(c.getCmp(a[b]))}},cacheElements:function(){var a=this.owner;this.applyChildEls(a.el,a.id)},calculateContentSize:function(q,m){var B=this,d=(m||0)|B.manageOverflow|((q.widthModel.shrinkWrap?1:0)|(q.heightModel.shrinkWrap?2:0)),c=(d&1)||undefined,j=(d&2)||undefined,b=q.childItems,g=b.length,w=0,u=0,n=0,e=q.props,r,p,o,A,h,l,t,z,y,s,x,a,v,k;if(c){if(isNaN(e.contentWidth)){++n}else{c=undefined}}if(j){if(isNaN(e.contentHeight)){++n}else{j=undefined}}if(n){for(x=0;x<g;++x){t=b[x];l=t.target;s=j&&t.getProp("height");v=c&&t.getProp("width");a=t.getMarginInfo();if((c&&isNaN(l.x))||(j&&isNaN(l.y))){k=l.el.getXY();if(!r){r=q.targetContext.el.getXY();h=q.targetContext.getBorderInfo();p=r[0]+h.left;o=r[1]+h.top}z=k[0]-p;y=k[1]-o}else{z=l.x;y=l.y}s+=a.bottom;v+=a.right;w=Math.max(w,y+s);u=Math.max(u,z+v);if(isNaN(w)&&isNaN(u)){B.done=false;return}}if(c||j){A=q.targetContext.getPaddingInfo()}if(c&&!q.setContentWidth(u+A.right)){B.done=false}if(j&&!q.setContentHeight(w+A.bottom)){B.done=false}}},calculateOverflow:function(n,s,h){var w=this,a=w.owner,l=w.manageOverflow,d=n.state,m=d.overflowAdjust,g,k,c,o,b,q,t,j,r,e,p,u,i,v;if(l&&!d.secondPass&&!w.reserveScrollbar){if(a.autoScroll){i=v=true}else{if(a.overflowX){i=a.overflowX=="auto"}else{q=n.targetContext.getStyle("overflow-x");i=q&&q!="hidden"&&q!="scroll"}if(a.overflowY){v=a.overflowY=="auto"}else{q=n.targetContext.getStyle("overflow-y");v=q&&q!="hidden"&&q!="scroll"}}if(!s.gotWidth){i=false}if(!s.gotHeight){v=false}if(i||v){t=Ext.getScrollbarSize();j=n.peek("contentWidth");r=n.peek("contentHeight");e=s.width;p=s.height;u=w.getScrollbarsNeeded(e,p,j,r);d.overflowState=u;if(typeof h=="number"){u&=~h}m={width:(i&&(u&2))?t.width:0,height:(v&&(u&1))?t.height:0};if(m.width!==w.lastOverflowAdjust.width||m.height!==w.lastOverflowAdjust.height){w.done=false;n.invalidate({state:{overflowAdjust:m,overflowState:d.overflowState,secondPass:true}})}}}if(!w.done){return}c=n.padElContext||(n.padElContext=n.getEl("overflowPadderEl",w));if(c){u=d.overflowState;g=s.width;k=0;if(u){o=n.targetContext.getPaddingInfo();b=w.scrollRangeFlags;if((u&2)&&(b&1)){k+=o.bottom}if((u&1)&&(b&4)){g+=o.right}c.setProp("display","");c.setSize(g,k)}else{c.setProp("display","none")}}},configureItem:function(c){var b=this,a=b.owner.itemCls,d=[].concat(b.itemCls||[]);b.callParent(arguments);if(a){d=Ext.Array.push(d,a)}c.addCls(d)},doRenderBody:function(a,b){this.renderItems(a,b);this.renderContent(a,b)},doRenderContainer:function(b,e){var c=e.$comp.layout,a=c.getRenderTpl(),d=c.getRenderData();a.applyOut(d,b)},doRenderItems:function(b,d){var c=d.$layout,a=c.getRenderTree();if(a){Ext.DomHelper.generateMarkup(a,b)}},doRenderPadder:function(b,d){var c=d.$layout,a=c.owner,e=c.getScrollRangeFlags();if(c.manageOverflow==2){if(e&5){b.push('<div id="',a.id,'-overflowPadderEl" ','style="font-size: 1px; width:1px; height: 1px;');b.push('"></div>');c.scrollRangeFlags=e}}},finishRender:function(){var b=this,c,a;b.callParent();b.cacheElements();c=b.getRenderTarget();a=b.getLayoutItems();if(b.targetCls){b.getTarget().addCls(b.targetCls)}b.finishRenderItems(c,a)},notifyOwner:function(){this.owner.afterLayout(this)},getContainerSize:function(c,h){var d=c.targetContext,g=d.getFrameInfo(),k=d.getPaddingInfo(),j=0,l=0,a=c.state.overflowAdjust,e,i,b,m;if(!c.widthModel.shrinkWrap){++l;b=h?d.getDomProp("width"):d.getProp("width");e=(typeof b=="number");if(e){++j;b-=g.width+k.width;if(a){b-=a.width}}}if(!c.heightModel.shrinkWrap){++l;m=h?d.getDomProp("height"):d.getProp("height");i=(typeof m=="number");if(i){++j;m-=g.height+k.height;if(a){m-=a.height}}}return{width:b,height:m,needed:l,got:j,gotAll:j==l,gotWidth:e,gotHeight:i}},getLayoutItems:function(){var a=this.owner,b=a&&a.items;return(b&&b.items)||[]},getRenderData:function(){var a=this.owner;return{$comp:a,$layout:this,ownerId:a.id}},getRenderedItems:function(){var e=this,h=e.getRenderTarget(),a=e.getLayoutItems(),d=a.length,g=[],b,c;for(b=0;b<d;b++){c=a[b];if(c.rendered&&e.isValidParent(c,h,b)){g.push(c)}}return g},getRenderTarget:function(){return this.owner.getTargetEl()},getElementTarget:function(){return this.getRenderTarget()},getRenderTpl:function(){var a=this,b=Ext.XTemplate.getTpl(this,"renderTpl");if(!b.renderContent){a.owner.setupRenderTpl(b)}return b},getRenderTree:function(){var a,c=this.owner.items,d,b={};do{d=c.generation;a=this.getItemsRenderTree(this.getLayoutItems(),b)}while(c.generation!==d);return a},getScrollbarsNeeded:function(c,i,b,h){var a=Ext.getScrollbarSize(),e=typeof c=="number",j=typeof i=="number",g=0,d=0;if(!a.width){return 0}if(j&&i<h){d=2;c-=a.width}if(e&&c<b){g=1;if(!d&&j){i-=a.height;if(i<h){d=2}}}return d+g},getScrollRangeFlags:(function(){var a=-1;return function(){if(a<0){var g=Ext.getBody().createChild({cls:Ext.baseCSSPrefix+"border-box",style:{width:"100px",height:"100px",padding:"10px",overflow:"auto"},children:[{style:{border:"1px solid red",width:"150px",height:"150px",margin:"0 5px 5px 0"}}]}),d=g.dom.scrollHeight,c=g.dom.scrollWidth,e={175:0,165:1,170:2,160:3},b={175:0,165:4,170:8,160:12};a=(e[d]||0)|(b[c]||0);g.remove()}return a}}()),getTarget:function(){return this.owner.getTargetEl()},getVisibleItems:function(){var g=this.getRenderTarget(),b=this.getLayoutItems(),e=b.length,a=[],c,d;for(c=0;c<e;c++){d=b[c];if(d.rendered&&this.isValidParent(d,g,c)&&d.hidden!==true){a.push(d)}}return a},setupRenderTpl:function(b){var a=this;b.renderBody=a.doRenderBody;b.renderContainer=a.doRenderContainer;b.renderItems=a.doRenderItems;b.renderPadder=a.doRenderPadder}});Ext.define("Ext.layout.container.Editor",{alias:"layout.editor",extend:"Ext.layout.container.Container",autoSizeDefault:{width:"field",height:"field"},getItemSizePolicy:function(c){var b=this,a=b.owner.autoSize;return b.sizePolicy||(b.sizePolicy={setsWidth:a&&a.width==="boundEl"?1:0,setsHeight:a&&a.height==="boundEl"?1:0})},calculate:function(g){var e=this,b=e.owner,a=b.autoSize,d,c;if(a===true){a=e.autoSizeDefault}if(a){d=e.getDimension(b,a.width,"getWidth",b.width);c=e.getDimension(b,a.height,"getHeight",b.height)}g.childItems[0].setSize(d,c);g.setWidth(d);g.setHeight(c);g.setContentSize(d||b.field.getWidth(),c||b.field.getHeight())},getDimension:function(a,b,d,c){switch(b){case"boundEl":return a.boundEl[d]();case"field":return undefined;default:return c}}});Ext.define("Ext.layout.component.Component",{extend:"Ext.layout.Layout",type:"component",isComponentLayout:true,nullBox:{},usesContentHeight:true,usesContentWidth:true,usesHeight:true,usesWidth:true,beginLayoutCycle:function(c,p){var k=this,b=k.owner,e=c.ownerCtContext,g=c.heightModel,h=c.widthModel,i=b.el.dom===document.body,d=b.lastBox||k.nullBox,n=b.el.lastBox||k.nullBox,a=!i,m,o,l,j;k.callParent(arguments);if(p){if(k.usesContentWidth){++c.consumersContentWidth}if(k.usesContentHeight){++c.consumersContentHeight}if(k.usesWidth){++c.consumersWidth}if(k.usesHeight){++c.consumersHeight}if(e&&!e.hasRawContent){m=b.ownerLayout;if(m.usesWidth){++c.consumersWidth}if(m.usesHeight){++c.consumersHeight}}}if(h.configured){l=h.names.width;if(!i){a=p?b[l]!==n.width:h.constrained}c.setWidth(b[l],a)}else{if(c.isTopLevel){if(h.calculated){o=d.width;c.setWidth(o,o!=n.width)}o=d.x;c.setProp("x",o,o!=n.x)}}if(g.configured){j=g.names.height;if(!i){a=p?b[j]!==n.height:g.constrained}c.setHeight(b[j],a)}else{if(c.isTopLevel){if(g.calculated){o=d.height;c.setHeight(o,o!=n.height)}o=d.y;c.setProp("y",o,o!=n.y)}}},finishedLayout:function(b){var h=this,l=b.children,a=h.owner,e,c,k,d,g,j;if(l){e=l.length;for(c=0;c<e;c++){k=l[c];k.el.lastBox=k.props}}b.previousSize=h.lastComponentSize;h.lastComponentSize=a.el.lastBox=g=b.props;a.lastBox=d={};j=g.x;if(j!==undefined){d.x=j}j=g.y;if(j!==undefined){d.y=j}j=g.width;if(j!==undefined){d.width=j}j=g.height;if(j!==undefined){d.height=j}h.callParent(arguments)},notifyOwner:function(d){var c=this,a=c.lastComponentSize,e=d.previousSize,b=[a.width,a.height];if(e){b.push(e.width,e.height)}c.owner.afterComponentLayout.apply(c.owner,b)},getTarget:function(){return this.owner.el},getRenderTarget:function(){return this.owner.el},cacheTargetInfo:function(b){var a=this,d=a.targetInfo,c;if(!d){c=b.getEl("getTarget",a);a.targetInfo=d={padding:c.getPaddingInfo(),border:c.getBorderInfo()}}return d},measureAutoDimensions:function(m,i){var t=this,a=t.owner,q=a.layout,d=m.heightModel,h=m.widthModel,c=m.boxParent,n=m.isBoxParent,b=m.props,j,u={gotWidth:false,gotHeight:false,isContainer:(j=!m.hasRawContent)},s=i||3,p,e,k=0,g=0,l,o,r;if(h.shrinkWrap&&m.consumersContentWidth){++k;p=!(s&1);if(j){if(p){u.contentWidth=0;u.gotWidth=true;++g}else{if((u.contentWidth=m.getProp("contentWidth"))!==undefined){u.gotWidth=true;++g}}}else{o=b.contentWidth;if(typeof o=="number"){u.contentWidth=o;u.gotWidth=true;++g}else{if(p){l=true}else{if(!m.hasDomProp("containerChildrenDone")){l=false}else{if(n||!c||c.widthModel.shrinkWrap){l=true}else{l=c.hasDomProp("width")}}}if(l){if(p){r=0}else{if(q&&q.measureContentWidth){r=q.measureContentWidth(m)}else{r=t.measureContentWidth(m)}}if(!isNaN(u.contentWidth=r)){m.setContentWidth(r,true);u.gotWidth=true;++g}}}}}else{if(h.natural&&m.consumersWidth){++k;o=b.width;if(typeof o=="number"){u.width=o;u.gotWidth=true;++g}else{if(n||!c){l=true}else{l=c.hasDomProp("width")}if(l){if(!isNaN(u.width=t.measureOwnerWidth(m))){m.setWidth(u.width,false);u.gotWidth=true;++g}}}}}if(d.shrinkWrap&&m.consumersContentHeight){++k;e=!(s&2);if(j){if(e){u.contentHeight=0;u.gotHeight=true;++g}else{if((u.contentHeight=m.getProp("contentHeight"))!==undefined){u.gotHeight=true;++g}}}else{o=b.contentHeight;if(typeof o=="number"){u.contentHeight=o;u.gotHeight=true;++g}else{if(e){l=true}else{if(!m.hasDomProp("containerChildrenDone")){l=false}else{if(a.noWrap){l=true}else{if(!h.shrinkWrap){l=(m.bodyContext||m).hasDomProp("width")}else{if(n||!c||c.widthModel.shrinkWrap){l=true}else{l=c.hasDomProp("width")}}}}}if(l){if(e){r=0}else{if(q&&q.measureContentHeight){r=q.measureContentHeight(m)}else{r=t.measureContentHeight(m)}}if(!isNaN(u.contentHeight=r)){m.setContentHeight(r,true);u.gotHeight=true;++g}}}}}else{if(d.natural&&m.consumersHeight){++k;o=b.height;if(typeof o=="number"){u.height=o;u.gotHeight=true;++g}else{if(n||!c){l=true}else{l=c.hasDomProp("width")}if(l){if(!isNaN(u.height=t.measureOwnerHeight(m))){m.setHeight(u.height,false);u.gotHeight=true;++g}}}}}if(c){m.onBoxMeasured()}u.gotAll=g==k;return u},measureContentWidth:function(a){return a.el.getWidth()-a.getFrameInfo().width},measureContentHeight:function(a){return a.el.getHeight()-a.getFrameInfo().height},measureOwnerHeight:function(a){return a.el.getHeight()},measureOwnerWidth:function(a){return a.el.getWidth()}});Ext.define("Ext.layout.component.Auto",{alias:"layout.autocomponent",extend:"Ext.layout.component.Component",type:"autocomponent",setHeightInDom:false,setWidthInDom:false,waitForOuterHeightInDom:false,waitForOuterWidthInDom:false,beginLayoutCycle:function(d,b){var c=this,g=c.lastWidthModel,e=c.lastHeightModel,a=c.owner;c.callParent(arguments);if(g&&g.fixed&&d.widthModel.shrinkWrap){a.el.setWidth(null)}if(e&&e.fixed&&d.heightModel.shrinkWrap){a.el.setHeight(null)}},calculate:function(h){var g=this,e=g.measureAutoDimensions(h),b=h.heightModel,c=h.widthModel,d,a;if(e.gotWidth){if(c.shrinkWrap){g.publishOwnerWidth(h,e.contentWidth)}else{if(g.publishInnerWidth){g.publishInnerWidth(h,e.width)}}}else{if(!c.auto&&g.publishInnerWidth){d=g.waitForOuterWidthInDom?h.getDomProp("width"):h.getProp("width");if(d===undefined){g.done=false}else{g.publishInnerWidth(h,d)}}}if(e.gotHeight){if(b.shrinkWrap){g.publishOwnerHeight(h,e.contentHeight)}else{if(g.publishInnerHeight){g.publishInnerHeight(h,e.height)}}}else{if(!b.auto&&g.publishInnerHeight){a=g.waitForOuterHeightInDom?h.getDomProp("height"):h.getProp("height");if(a===undefined){g.done=false}else{g.publishInnerHeight(h,a)}}}if(!e.gotAll){g.done=false}},calculateOwnerHeightFromContentHeight:function(b,a){return a+b.getFrameInfo().height},calculateOwnerWidthFromContentWidth:function(b,a){return a+b.getFrameInfo().width},publishOwnerHeight:function(i,g){var e=this,b=e.owner,a=e.calculateOwnerHeightFromContentHeight(i,g),h,d,c;if(isNaN(a)){e.done=false}else{h=Ext.Number.constrain(a,b.minHeight,b.maxHeight);if(h==a){d=e.setHeightInDom}else{c=e.sizeModels[(h<a)?"constrainedMax":"constrainedMin"];a=h;if(i.heightModel.calculatedFromShrinkWrap){i.heightModel=c}else{i.invalidate({heightModel:c})}}i.setHeight(a,d)}},publishOwnerWidth:function(h,b){var g=this,a=g.owner,e=g.calculateOwnerWidthFromContentWidth(h,b),i,d,c;if(isNaN(e)){g.done=false}else{i=Ext.Number.constrain(e,a.minWidth,a.maxWidth);if(i==e){d=g.setWidthInDom}else{c=g.sizeModels[(i<e)?"constrainedMax":"constrainedMin"];e=i;if(h.widthModel.calculatedFromShrinkWrap){h.widthModel=c}else{h.invalidate({widthModel:c})}}h.setWidth(e,d)}}});Ext.define("Ext.layout.container.Auto",{alias:["layout.auto","layout.autocontainer"],extend:"Ext.layout.container.Container",type:"autocontainer",childEls:["clearEl"],renderTpl:["{%this.renderBody(out,values)%}",'<div id="{ownerId}-clearEl" class="',Ext.baseCSSPrefix,'clear" role="presentation"></div>'],calculate:function(b){var a=this,c;if(!b.hasDomProp("containerChildrenDone")){a.done=false}else{c=a.getContainerSize(b);if(!c.gotAll){a.done=false}a.calculateContentSize(b)}}});Ext.define("Ext.util.Filter",{anyMatch:false,exactMatch:false,caseSensitive:false,constructor:function(a){var b=this;Ext.apply(b,a);b.filter=b.filter||b.filterFn;if(b.filter===undefined){if(b.property===undefined||b.value===undefined){}else{b.filter=b.createFilterFn()}b.filterFn=b.filter}},createFilterFn:function(){var a=this,c=a.createValueMatcher(),b=a.property;return function(d){var e=a.getRoot.call(a,d)[b];return c===null?e===null:c.test(e)}},getRoot:function(b){var a=this.root;return a===undefined?b:b[a]},createValueMatcher:function(){var d=this,e=d.value,g=d.anyMatch,c=d.exactMatch,a=d.caseSensitive,b=Ext.String.escapeRegex;if(e===null){return e}if(!e.exec){e=String(e);if(g===true){e=b(e)}else{e="^"+b(e);if(c===true){e+="$"}}e=new RegExp(e,a?"":"i")}return e}});Ext.define("Ext.util.AbstractMixedCollection",{requires:["Ext.util.Filter"],mixins:{observable:"Ext.util.Observable"},isMixedCollection:true,generation:0,constructor:function(b,a){var c=this;c.items=[];c.map={};c.keys=[];c.length=0;c.allowFunctions=b===true;if(a){c.getKey=a}c.mixins.observable.constructor.call(c)},allowFunctions:false,add:function(b,e){var d=this,g=e,c=b,a;if(arguments.length==1){g=c;c=d.getKey(g)}if(typeof c!="undefined"&&c!==null){a=d.map[c];if(typeof a!="undefined"){return d.replace(c,g)}d.map[c]=g}d.generation++;d.length++;d.items.push(g);d.keys.push(c);if(d.hasListeners.add){d.fireEvent("add",d.length-1,g,c)}return g},getKey:function(a){return a.id},replace:function(c,e){var d=this,a,b;if(arguments.length==1){e=arguments[0];c=d.getKey(e)}a=d.map[c];if(typeof c=="undefined"||c===null||typeof a=="undefined"){return d.add(c,e)}d.generation++;b=d.indexOfKey(c);d.items[b]=e;d.map[c]=e;if(d.hasListeners.replace){d.fireEvent("replace",c,a,e)}return e},addAll:function(g){var e=this,d=0,b,a,c;if(arguments.length>1||Ext.isArray(g)){b=arguments.length>1?arguments:g;for(a=b.length;d<a;d++){e.add(b[d])}}else{for(c in g){if(g.hasOwnProperty(c)){if(e.allowFunctions||typeof g[c]!="function"){e.add(c,g[c])}}}}},each:function(e,d){var b=[].concat(this.items),c=0,a=b.length,g;for(;c<a;c++){g=b[c];if(e.call(d||g,g,c,a)===false){break}}},eachKey:function(e,d){var g=this.keys,b=this.items,c=0,a=g.length;for(;c<a;c++){e.call(d||window,g[c],b[c],c,a)}},findBy:function(e,d){var g=this.keys,b=this.items,c=0,a=b.length;for(;c<a;c++){if(e.call(d||window,b[c],g[c])){return b[c]}}return null},find:function(){if(Ext.isDefined(Ext.global.console)){Ext.global.console.warn("Ext.util.MixedCollection: find has been deprecated. Use findBy instead.")}return this.findBy.apply(this,arguments)},insert:function(a,b,e){var d=this,c=b,g=e;if(arguments.length==2){g=c;c=d.getKey(g)}if(d.containsKey(c)){d.suspendEvents();d.removeAtKey(c);d.resumeEvents()}if(a>=d.length){return d.add(c,g)}d.generation++;d.length++;Ext.Array.splice(d.items,a,0,g);if(typeof c!="undefined"&&c!==null){d.map[c]=g}Ext.Array.splice(d.keys,a,0,c);if(d.hasListeners.add){d.fireEvent("add",a,g,c)}return g},remove:function(a){this.generation++;return this.removeAt(this.indexOf(a))},removeAll:function(b){b=[].concat(b);var c,a=b.length;for(c=0;c<a;c++){this.remove(b[c])}return this},removeAt:function(a){var c=this,d,b;if(a<c.length&&a>=0){c.length--;d=c.items[a];Ext.Array.erase(c.items,a,1);b=c.keys[a];if(typeof b!="undefined"){delete c.map[b]}Ext.Array.erase(c.keys,a,1);if(c.hasListeners.remove){c.fireEvent("remove",d,b)}c.generation++;return d}return false},removeAtKey:function(a){return this.removeAt(this.indexOfKey(a))},getCount:function(){return this.length},indexOf:function(a){return Ext.Array.indexOf(this.items,a)},indexOfKey:function(a){return Ext.Array.indexOf(this.keys,a)},get:function(b){var d=this,a=d.map[b],c=a!==undefined?a:(typeof b=="number")?d.items[b]:undefined;return typeof c!="function"||d.allowFunctions?c:null},getAt:function(a){return this.items[a]},getByKey:function(a){return this.map[a]},contains:function(a){return typeof this.map[this.getKey(a)]!="undefined"},containsKey:function(a){return typeof this.map[a]!="undefined"},clear:function(){var a=this;a.length=0;a.items=[];a.keys=[];a.map={};a.generation++;if(a.hasListeners.clear){a.fireEvent("clear")}},first:function(){return this.items[0]},last:function(){return this.items[this.length-1]},sum:function(h,b,j,a){var c=this.extractValues(h,b),g=c.length,e=0,d;j=j||0;a=(a||a===0)?a:g-1;for(d=j;d<=a;d++){e+=c[d]}return e},collect:function(k,e,h){var l=this.extractValues(k,e),a=l.length,b={},c=[],j,g,d;for(d=0;d<a;d++){j=l[d];g=String(j);if((h||!Ext.isEmpty(j))&&!b[g]){b[g]=true;c.push(j)}}return c},extractValues:function(c,a){var b=this.items;if(a){b=Ext.Array.pluck(b,a)}return Ext.Array.pluck(b,c)},getRange:function(g,a){var e=this,c=e.items,b=[],d;if(c.length<1){return b}g=g||0;a=Math.min(typeof a=="undefined"?e.length-1:a,e.length-1);if(g<=a){for(d=g;d<=a;d++){b[b.length]=c[d]}}else{for(d=g;d>=a;d--){b[b.length]=c[d]}}return b},filter:function(d,c,g,a){var b=[],e;if(Ext.isString(d)){b.push(new Ext.util.Filter({property:d,value:c,anyMatch:g,caseSensitive:a}))}else{if(Ext.isArray(d)||d instanceof Ext.util.Filter){b=b.concat(d)}}e=function(h){var n=true,o=b.length,j,m,l,k;for(j=0;j<o;j++){m=b[j];l=m.filterFn;k=m.scope;n=n&&l.call(k,h)}return n};return this.filterBy(e)},filterBy:function(e,d){var j=this,a=new this.self(),h=j.keys,b=j.items,g=b.length,c;a.getKey=j.getKey;for(c=0;c<g;c++){if(e.call(d||j,b[c],h[c])){a.add(h[c],b[c])}}return a},findIndex:function(c,b,e,d,a){if(Ext.isEmpty(b,false)){return -1}b=this.createValueMatcher(b,d,a);return this.findIndexBy(function(g){return g&&b.test(g[c])},null,e)},findIndexBy:function(e,d,j){var h=this,g=h.keys,b=h.items,c=j||0,a=b.length;for(;c<a;c++){if(e.call(d||h,b[c],g[c])){return c}}return -1},createValueMatcher:function(c,e,a,b){if(!c.exec){var d=Ext.String.escapeRegex;c=String(c);if(e===true){c=d(c)}else{c="^"+d(c);if(b===true){c+="$"}}c=new RegExp(c,a?"":"i")}return c},clone:function(){var e=this,g=new this.self(),d=e.keys,b=e.items,c=0,a=b.length;for(;c<a;c++){g.add(d[c],b[c])}g.getKey=e.getKey;return g}});Ext.define("Ext.util.Sorter",{direction:"ASC",constructor:function(a){var b=this;Ext.apply(b,a);b.updateSortFunction()},createSortFunction:function(b){var c=this,d=c.property,e=c.direction||"ASC",a=e.toUpperCase()=="DESC"?-1:1;return function(h,g){return a*b.call(c,h,g)}},defaultSorterFn:function(d,c){var b=this,a=b.transform,g=b.getRoot(d)[b.property],e=b.getRoot(c)[b.property];if(a){g=a(g);e=a(e)}return g>e?1:(g<e?-1:0)},getRoot:function(a){return this.root===undefined?a:a[this.root]},setDirection:function(b){var a=this;a.direction=b?b.toUpperCase():b;a.updateSortFunction()},toggle:function(){var a=this;a.direction=Ext.String.toggle(a.direction,"ASC","DESC");a.updateSortFunction()},updateSortFunction:function(a){var b=this;a=a||b.sorterFn||b.defaultSorterFn;b.sort=b.createSortFunction(a)}});Ext.define("Ext.util.Sortable",{isSortable:true,defaultSortDirection:"ASC",requires:["Ext.util.Sorter"],initSortable:function(){var a=this,b=a.sorters;a.sorters=new Ext.util.AbstractMixedCollection(false,function(c){return c.id||c.property});if(b){a.sorters.addAll(a.decodeSorters(b))}},sort:function(h,g,c,e){var d=this,i,b,a;if(Ext.isArray(h)){e=c;c=g;a=h}else{if(Ext.isObject(h)){e=c;c=g;a=[h]}else{if(Ext.isString(h)){i=d.sorters.get(h);if(!i){i={property:h,direction:g};a=[i]}else{if(g===undefined){i.toggle()}else{i.setDirection(g)}}}}}if(a&&a.length){a=d.decodeSorters(a);if(Ext.isString(c)){if(c==="prepend"){h=d.sorters.clone().items;d.sorters.clear();d.sorters.addAll(a);d.sorters.addAll(h)}else{d.sorters.addAll(a)}}else{d.sorters.clear();d.sorters.addAll(a)}}if(e!==false){d.onBeforeSort(a);h=d.sorters.items;if(h.length){d.doSort(d.generateComparator())}}return h},generateComparator:function(){var a=this.sorters.getRange();return a.length?this.createComparator(a):this.emptyComparator},createComparator:function(a){return function(d,c){var b=a[0].sort(d,c),g=a.length,e=1;for(;e<g;e++){b=b||a[e].sort.call(this,d,c)}return b}},emptyComparator:function(){return 0},onBeforeSort:Ext.emptyFn,decodeSorters:function(g){if(!Ext.isArray(g)){if(g===undefined){g=[]}else{g=[g]}}var d=g.length,h=Ext.util.Sorter,a=this.model?this.model.prototype.fields:null,e,b,c;for(c=0;c<d;c++){b=g[c];if(!(b instanceof h)){if(Ext.isString(b)){b={property:b}}Ext.applyIf(b,{root:this.sortRoot,direction:"ASC"});if(b.fn){b.sorterFn=b.fn}if(typeof b=="function"){b={sorterFn:b}}if(a&&!b.transform){e=a.get(b.property);b.transform=e?e.sortType:undefined}g[c]=new Ext.util.Sorter(b)}}return g},getSorters:function(){return this.sorters.items},getFirstSorter:function(){var c=this.sorters.items,a=c.length,b=0,d;for(;b<a;++b){d=c[b];if(!d.isGrouper){return d}}return null}});Ext.define("Ext.util.MixedCollection",{extend:"Ext.util.AbstractMixedCollection",mixins:{sortable:"Ext.util.Sortable"},constructor:function(){var a=this;a.callParent(arguments);a.addEvents("sort");a.mixins.sortable.initSortable.call(a)},doSort:function(a){this.sortBy(a)},_sort:function(l,a,k){var j=this,d,e,b=String(a).toUpperCase()=="DESC"?-1:1,h=[],m=j.keys,g=j.items;k=k||function(i,c){return i-c};for(d=0,e=g.length;d<e;d++){h[h.length]={key:m[d],value:g[d],index:d}}Ext.Array.sort(h,function(i,c){var n=k(i[l],c[l])*b;if(n===0){n=(i.index<c.index?-1:1)}return n});for(d=0,e=h.length;d<e;d++){g[d]=h[d].value;m[d]=h[d].key}j.fireEvent("sort",j)},sortBy:function(c){var h=this,b=h.items,g=h.keys,e=b.length,a=[],d;for(d=0;d<e;d++){a[d]={key:g[d],value:b[d],index:d}}Ext.Array.sort(a,function(j,i){var k=c(j.value,i.value);if(k===0){k=(j.index<i.index?-1:1)}return k});for(d=0;d<e;d++){b[d]=a[d].value;g[d]=a[d].key}h.fireEvent("sort",h,b,g)},findInsertionIndex:function(e,d){var g=this,b=g.items,i=0,a=b.length-1,c,h;if(!d){d=g.generateComparator()}while(i<=a){c=(i+a)>>1;h=d(e,b[c]);if(h>=0){i=c+1}else{if(h<0){a=c-1}}}return i},reorder:function(d){var h=this,b=h.items,c=0,g=b.length,a=[],e=[],i;h.suspendEvents();for(i in d){a[d[i]]=b[i]}for(c=0;c<g;c++){if(d[c]==undefined){e.push(b[c])}}for(c=0;c<g;c++){if(a[c]==undefined){a[c]=e.shift()}}h.clear();h.addAll(a);h.resumeEvents();h.fireEvent("sort",h)},sortByKey:function(a,b){this._sort("key",a,b||function(d,c){var g=String(d).toUpperCase(),e=String(c).toUpperCase();return g>e?1:(g<e?-1:0)})}});Ext.define("Ext.ZIndexManager",{alternateClassName:"Ext.WindowGroup",statics:{zBase:9000},constructor:function(a){var b=this;b.list={};b.zIndexStack=[];b.front=null;if(a){if(a.isContainer){a.on("resize",b._onContainerResize,b);b.zseed=Ext.Number.from(b.rendered?a.getEl().getStyle("zIndex"):undefined,b.getNextZSeed());b.targetEl=a.getTargetEl();b.container=a}else{Ext.EventManager.onWindowResize(b._onContainerResize,b);b.zseed=b.getNextZSeed();b.targetEl=Ext.get(a)}}else{Ext.EventManager.onWindowResize(b._onContainerResize,b);b.zseed=b.getNextZSeed();Ext.onDocumentReady(function(){b.targetEl=Ext.getBody()})}},getNextZSeed:function(){return(Ext.ZIndexManager.zBase+=10000)},setBase:function(b){this.zseed=b;var a=this.assignZIndices();this._activateLast();return a},assignZIndices:function(){var c=this.zIndexStack,b=c.length,e=0,g=this.zseed,d;for(;e<b;e++){d=c[e];if(d&&!d.hidden){g=d.setZIndex(g)}}this._activateLast();return g},_setActiveChild:function(b,a){var c=this.front;if(b!==c){if(c&&!c.destroying){c.setActive(false,b)}this.front=b;if(b&&b!=a){b.setActive(true);if(b.modal){this._showModalMask(b)}}}},onComponentHide:function(a){a.setActive(false);this._activateLast()},_activateLast:function(){var e=this,a=e.zIndexStack,d=a.length-1,c=e.front,b;e.front=undefined;for(;d>=0&&a[d].hidden;--d){}if((b=a[d])){e._setActiveChild(b,c);if(b.modal){return}}for(;d>=0;--d){b=a[d];if(b.isVisible()&&b.modal){e._showModalMask(b);return}}e._hideModalMask()},_showModalMask:function(a){var c=this,e=a.el.getStyle("zIndex")-4,b=a.floatParent?a.floatParent.getTargetEl():a.container,d=b.getBox();if(b.dom===document.body){d.height=Math.max(document.body.scrollHeight,Ext.dom.Element.getDocumentHeight());d.width=Math.max(document.body.scrollWidth,d.width)}if(!c.mask){c.mask=Ext.getBody().createChild({cls:Ext.baseCSSPrefix+"mask"});c.mask.setVisibilityMode(Ext.Element.DISPLAY);c.mask.on("click",c._onMaskClick,c)}c.mask.maskTarget=b;b.addCls(Ext.baseCSSPrefix+"body-masked");c.mask.setStyle("zIndex",e);c.mask.show();c.mask.setBox(d)},_hideModalMask:function(){var a=this.mask;if(a&&a.isVisible()){a.maskTarget.removeCls(Ext.baseCSSPrefix+"body-masked");a.maskTarget=undefined;a.hide()}},_onMaskClick:function(){if(this.front){this.front.focus()}},_onContainerResize:function(){var a=this.mask,b,c;if(a&&a.isVisible()){a.hide();b=a.maskTarget;if(b.dom===document.body){c={height:Math.max(document.body.scrollHeight,Ext.dom.Element.getDocumentHeight()),width:Math.max(document.body.scrollWidth,document.documentElement.clientWidth)}}else{c=b.getViewSize(true)}a.setSize(c);a.show()}},register:function(a){var b=this;if(a.zIndexManager){a.zIndexManager.unregister(a)}a.zIndexManager=b;b.list[a.id]=a;b.zIndexStack.push(a);a.on("hide",b.onComponentHide,b)},unregister:function(a){var b=this,c=b.list;delete a.zIndexManager;if(c&&c[a.id]){delete c[a.id];a.un("hide",b.onComponentHide);Ext.Array.remove(b.zIndexStack,a);b._activateLast()}},get:function(a){return a.isComponent?a:this.list[a]},bringToFront:function(b){var c=this,a=false,d=c.zIndexStack;b=c.get(b);if(b!==c.front){Ext.Array.remove(d,b);if(b.preventBringToFront){d.unshift(b)}else{d.push(b)}c.assignZIndices();a=true;this.front=b}if(a&&b.modal){c._showModalMask(b)}return a},sendToBack:function(a){var b=this;a=b.get(a);Ext.Array.remove(b.zIndexStack,a);b.zIndexStack.unshift(a);b.assignZIndices();this._activateLast();return a},hideAll:function(){var b=this.list,a,c;for(c in b){if(b.hasOwnProperty(c)){a=b[c];if(a.isComponent&&a.isVisible()){a.hide()}}}},hide:function(){var g=this,c=g.mask,e=0,b=g.zIndexStack,a=b.length,d;g.tempHidden=g.tempHidden||[];for(;e<a;e++){d=b[e];if(d.isVisible()){g.tempHidden.push(d);d.el.hide()}}if(c){c.hide()}},show:function(){var e=this,b=e.mask,d=0,g=e.tempHidden,a=g?g.length:0,c;for(;d<a;d++){c=g[d];c.el.show();c.setPosition(c.x,c.y)}e.tempHidden.length=0;if(b){b.show();b.alignTo(b.maskTarget,"tl-tl")}},getActive:function(){return this.front},getBy:function(g,e){var h=[],d=0,b=this.zIndexStack,a=b.length,c;for(;d<a;d++){c=b[d];if(g.call(e||c,c)!==false){h.push(c)}}return h},each:function(c,b){var d=this.list,e,a;for(e in d){if(d.hasOwnProperty(e)){a=d[e];if(a.isComponent&&c.call(b||a,a)===false){return}}}},eachBottomUp:function(g,e){var b=this.zIndexStack,d=0,a=b.length,c;for(;d<a;d++){c=b[d];if(c.isComponent&&g.call(e||c,c)===false){return}}},eachTopDown:function(e,d){var a=this.zIndexStack,c=a.length,b;for(;c-->0;){b=a[c];if(b.isComponent&&e.call(d||b,b)===false){return}}},destroy:function(){var b=this,c=b.list,a,d;for(d in c){if(c.hasOwnProperty(d)){a=c[d];if(a.isComponent){a.destroy()}}}delete b.zIndexStack;delete b.list;delete b.container;delete b.targetEl}},function(){Ext.WindowManager=Ext.WindowMgr=new this()});Ext.define("Ext.container.AbstractContainer",{extend:"Ext.Component",requires:["Ext.util.MixedCollection","Ext.layout.container.Auto","Ext.ZIndexManager"],renderTpl:"{%this.renderContainer(out,values)%}",suspendLayout:false,autoDestroy:true,defaultType:"panel",detachOnRemove:true,isContainer:true,layoutCounter:0,baseCls:Ext.baseCSSPrefix+"container",bubbleEvents:["add","remove"],defaultLayoutType:"auto",initComponent:function(){var a=this;a.addEvents("afterlayout","beforeadd","beforeremove","add","remove");a.callParent();a.getLayout();a.initItems()},initItems:function(){var b=this,a=b.items;b.items=new Ext.util.AbstractMixedCollection(false,b.getComponentId);if(a){if(!Ext.isArray(a)){a=[a]}b.add(a)}},getFocusEl:function(){return this.getTargetEl()},finishRenderChildren:function(){this.callParent();var a=this.getLayout();if(a){a.finishRender()}},beforeRender:function(){var b=this,a=b.getLayout();b.callParent();if(!a.initialized){a.initLayout()}},setupRenderTpl:function(b){var a=this.getLayout();this.callParent(arguments);a.setupRenderTpl(b)},setLayout:function(b){var a=this.layout;if(a&&a.isLayout&&a!=b){a.setOwner(null)}this.layout=b;b.setOwner(this)},getLayout:function(){var a=this;if(!a.layout||!a.layout.isLayout){a.setLayout(Ext.layout.Layout.create(a.layout,a.self.prototype.layout||"autocontainer"))}return a.layout},doLayout:function(){this.updateLayout();return this},afterLayout:function(b){var a=this;++a.layoutCounter;if(a.hasListeners.afterlayout){a.fireEvent("afterlayout",a,b)}},prepareItems:function(b,d){if(Ext.isArray(b)){b=b.slice()}else{b=[b]}var g=this,c=0,a=b.length,e;for(;c<a;c++){e=b[c];if(e==null){Ext.Array.erase(b,c,1);--c;--a}else{if(d){e=this.applyDefaults(e)}e.isContained=g;b[c]=g.lookupComponent(e);delete e.isContained}}return b},applyDefaults:function(a){var b=this.defaults;if(b){if(Ext.isFunction(b)){b=b.call(this,a)}if(Ext.isString(a)){a=Ext.ComponentManager.get(a)}Ext.applyIf(a,b)}return a},lookupComponent:function(a){return(typeof a=="string")?Ext.ComponentManager.get(a):Ext.ComponentManager.create(a,this.defaultType)},getComponentId:function(a){return a.getItemId()},add:function(){var j=this,g=Ext.Array.slice(arguments),d=(typeof g[0]=="number")?g.shift():-1,c=j.getLayout(),l,h,b,a,m,k,e;if(g.length==1&&Ext.isArray(g[0])){h=g[0];l=true}else{h=g}e=h=j.prepareItems(h,true);a=h.length;if(j.rendered){Ext.suspendLayouts()}if(!l&&a==1){e=h[0]}for(b=0;b<a;b++){m=h[b];k=(d<0)?j.items.length:(d+b);if(m.floating){j.floatingItems=j.floatingItems||new Ext.util.MixedCollection();j.floatingItems.add(m);m.onAdded(j,k)}else{if((!j.hasListeners.beforeadd||j.fireEvent("beforeadd",j,m,k)!==false)&&j.onBeforeAdd(m)!==false){j.items.insert(k,m);m.onAdded(j,k);j.onAdd(m,k);c.onAdd(m,k);if(j.hasListeners.add){j.fireEvent("add",j,m,k)}}}}j.updateLayout();if(j.rendered){Ext.resumeLayouts(true)}return e},onAdd:Ext.emptyFn,onRemove:Ext.emptyFn,insert:function(b,a){return this.add(b,a)},move:function(b,d){var a=this.items,c;c=a.removeAt(b);if(c===false){return false}a.insert(d,c);this.doLayout();return c},onBeforeAdd:function(c){var b=this,a=c.border;if(c.ownerCt&&c.ownerCt!==b){c.ownerCt.remove(c,false)}if(b.border===false||b.border===0){c.border=Ext.isDefined(a)&&a!==false&&a!==0}},remove:function(a,b){var d=this,e=d.getComponent(a);if(e&&(!d.hasListeners.beforeremove||d.fireEvent("beforeremove",d,e)!==false)){d.doRemove(e,b);if(d.hasListeners.remove){d.fireEvent("remove",d,e)}if(!d.destroying){d.doLayout()}}return e},doRemove:function(c,b){var e=this,d=e.layout,a=d&&e.rendered,g=b===true||(b!==false&&e.autoDestroy);b=b===true||(b!==false&&e.autoDestroy);e.items.remove(c);if(a){if(d.running){Ext.AbstractComponent.cancelLayout(c,g)}d.onRemove(c,g)}c.onRemoved(g);e.onRemove(c,g);if(g){c.destroy()}else{if(a){d.afterRemove(c)}if(e.detachOnRemove&&c.rendered){Ext.getDetachedBody().appendChild(c.getEl())}}},removeAll:function(c){var h=this,e=h.items.items.slice(),b=[],d=0,a=e.length,g;h.suspendLayouts();for(;d<a;d++){g=e[d];h.remove(g,c);if(g.ownerCt!==h){b.push(g)}}h.resumeLayouts(!!a);return b},getRefItems:function(c){var h=this,d=h.items.items,b=d.length,e=0,g,a=[];for(;e<b;e++){g=d[e];a.push(g);if(c&&g.getRefItems){a.push.apply(a,g.getRefItems(true))}}if(h.floatingItems){a.push.apply(a,h.floatingItems.items)}return a},cascade:function(l,m,a){var k=this,e=k.items?k.items.items:[],g=e.length,d=0,j,h=a?a.concat(k):[k],b=h.length-1;if(l.apply(m||k,h)!==false){for(;d<g;d++){j=e[d];if(j.cascade){j.cascade(l,m,a)}else{h[b]=j;l.apply(m||e,h)}}}return this},isAncestor:function(a){while(a){if(a.ownerCt===this){return true}a=a.ownerCt}},getComponent:function(a){if(Ext.isObject(a)){a=a.getItemId()}return this.items.get(a)},query:function(a){a=a||"*";return Ext.ComponentQuery.query(a,this)},queryBy:function(g,e){var c=[],b=this.getRefItems(true),d=0,a=b.length,h;for(;d<a;++d){h=b[d];if(g.call(e||h,h)!==false){c.push(h)}}return c},queryById:function(a){return this.down("#"+a)},child:function(a){a=a||"";return this.query("> "+a)[0]||null},nextChild:function(e,b){var c=this,a,d=c.items.indexOf(e);if(d!==-1){a=b?Ext.ComponentQuery(b,c.items.items.slice(d+1)):c.items.getAt(d+1);if(!a&&c.ownerCt){a=c.ownerCt.nextChild(c,b)}}return a},prevChild:function(e,b){var c=this,a,d=c.items.indexOf(e);if(d!==-1){a=b?Ext.ComponentQuery(b,c.items.items.slice(d+1)):c.items.getAt(d+1);if(!a&&c.ownerCt){a=c.ownerCt.nextChild(c,b)}}return a},down:function(a){return this.query(a)[0]||null},enable:function(){this.callParent(arguments);var d=this.getChildItemsToDisable(),c=d.length,b,a;for(a=0;a<c;a++){b=d[a];if(b.resetDisable){b.enable()}}return this},disable:function(){this.callParent(arguments);var d=this.getChildItemsToDisable(),c=d.length,b,a;for(a=0;a<c;a++){b=d[a];if(b.resetDisable!==false&&!b.disabled){b.disable();b.resetDisable=true}}return this},getChildItemsToDisable:function(){return this.query("[isFormField],button")},beforeLayout:function(){return true},beforeDestroy:function(){var b=this,a=b.items,d;if(a){while((d=a.first())){b.doRemove(d,true)}}Ext.destroy(b.layout);b.callParent()}});Ext.define("Ext.container.Container",{extend:"Ext.container.AbstractContainer",alias:"widget.container",alternateClassName:"Ext.Container",fireHierarchyEvent:function(a){this.hierarchyEventSource.fireEvent(a,this)},afterHide:function(){this.callParent(arguments);this.fireHierarchyEvent("hide")},afterShow:function(){this.callParent(arguments);this.fireHierarchyEvent("show")},onAdded:function(){this.callParent(arguments);if(this.hierarchyEventSource.hasListeners.added){this.fireHierarchyEvent("added")}},getChildByElement:function(e,a){var h,c,b=0,d=this.getRefItems(),g=d.length;e=Ext.getDom(e);for(;b<g;b++){h=d[b];c=h.getEl();if(c&&((c.dom===e)||c.contains(e))){return(a&&h.getChildByElement)?h.getChildByElement(e,a):h}}return null}},function(){this.hierarchyEventSource=this.prototype.hierarchyEventSource=new Ext.util.Observable({events:{hide:true,show:true,collapse:true,expand:true,added:true}})});Ext.define("Ext.Editor",{extend:"Ext.container.Container",alias:"widget.editor",requires:["Ext.layout.container.Editor"],layout:"editor",allowBlur:true,revertInvalid:true,value:"",alignment:"c-c?",offsets:[0,0],shadow:"frame",constrain:false,swallowKeys:true,completeOnEnter:true,cancelOnEsc:true,updateEl:false,hidden:true,baseCls:Ext.baseCSSPrefix+"editor",initComponent:function(){var a=this,b=a.field=Ext.ComponentManager.create(a.field,"textfield");Ext.apply(b,{inEditor:true,msgTarget:b.msgTarget=="title"?"title":"qtip"});a.mon(b,{scope:a,blur:{fn:a.onFieldBlur,delay:1},specialkey:a.onSpecialKey});if(b.grow){a.mon(b,"autosize",a.onFieldAutosize,a,{delay:1})}a.floating={constrain:a.constrain};a.items=b;a.callParent(arguments);a.addEvents("beforestartedit","startedit","beforecomplete","complete","canceledit","specialkey")},onFieldAutosize:function(){this.updateLayout()},afterRender:function(b,a){var c=this,e=c.field,d=e.inputEl;c.callParent(arguments);if(d){d.dom.name="";if(c.swallowKeys){d.swallowEvent(["keypress","keydown"])}}},onSpecialKey:function(g,e){var d=this,b=e.getKey(),a=d.completeOnEnter&&b==e.ENTER,c=d.cancelOnEsc&&b==e.ESC;if(a||c){e.stopEvent();Ext.defer(function(){if(a){d.completeEdit()}else{d.cancelEdit()}if(g.triggerBlur){g.triggerBlur(e)}},10)}d.fireEvent("specialkey",d,g,e)},startEdit:function(a,c){var b=this,d=b.field;b.completeEdit();b.boundEl=Ext.get(a);c=Ext.isDefined(c)?c:Ext.String.trim(b.boundEl.dom.innerText||b.boundEl.dom.innerHTML);if(!b.rendered){b.render(b.parentEl||document.body)}if(b.fireEvent("beforestartedit",b,b.boundEl,c)!==false){b.startValue=c;b.show();d.suspendEvents();d.reset();d.setValue(c);d.resumeEvents();b.realign(true);d.focus(false,10);if(d.autoSize){d.autoSize()}b.editing=true}},realign:function(a){var b=this;if(a===true){b.updateLayout()}b.alignTo(b.boundEl,b.alignment,b.offsets)},completeEdit:function(a){var b=this,d=b.field,c;if(!b.editing){return}if(d.assertValue){d.assertValue()}c=b.getValue();if(!d.isValid()){if(b.revertInvalid!==false){b.cancelEdit(a)}return}if(String(c)===String(b.startValue)&&b.ignoreNoChange){b.hideEdit(a);return}if(b.fireEvent("beforecomplete",b,c,b.startValue)!==false){c=b.getValue();if(b.updateEl&&b.boundEl){b.boundEl.update(c)}b.hideEdit(a);b.fireEvent("complete",b,c,b.startValue)}},onShow:function(){var a=this;a.callParent(arguments);if(a.hideEl!==false){a.boundEl.hide()}a.fireEvent("startedit",a,a.boundEl,a.startValue)},cancelEdit:function(a){var c=this,b=c.startValue,e=c.field,d;if(c.editing){d=c.getValue();e.suspendEvents();c.setValue(b);e.resumeEvents();c.hideEdit(a);c.fireEvent("canceledit",c,d,b)}},hideEdit:function(a){if(a!==true){this.editing=false;this.hide()}},onFieldBlur:function(d,c){var a=this,b;if(a.allowBlur===true&&a.editing&&a.selectSameEditor!==true){a.completeEdit()}if(c&&Ext.fly(b=c.getTarget()).focusable()){b.focus()}},onHide:function(){var a=this,b=a.field;if(a.editing){a.completeEdit();return}if(b.hasFocus){b.blur()}if(b.collapse){b.collapse()}if(a.hideEl!==false){a.boundEl.show()}a.callParent(arguments)},setValue:function(a){this.field.setValue(a)},getValue:function(){return this.field.getValue()},beforeDestroy:function(){var a=this;Ext.destroy(a.field);delete a.field;delete a.parentEl;delete a.boundEl;a.callParent(arguments)}});Ext.define("Ext.util.KeyMap",{alternateClassName:"Ext.KeyMap",eventName:"keydown",constructor:function(a){var b=this;if((arguments.length!==1)||(typeof a==="string")||a.dom||a.tagName||a===document||a.isComponent){b.legacyConstructor.apply(b,arguments);return}Ext.apply(b,a);b.bindings=[];if(!b.target.isComponent){b.target=Ext.get(b.target)}if(b.binding){b.addBinding(b.binding)}else{if(a.key){b.addBinding(a)}}b.enable()},legacyConstructor:function(b,d,a){var c=this;Ext.apply(c,{target:Ext.get(b),eventName:a||c.eventName,bindings:[]});if(d){c.addBinding(d)}c.enable()},addBinding:function(h){var g=h.key,j=false,d,e,b,c,a;if(Ext.isArray(h)){for(c=0,a=h.length;c<a;c++){this.addBinding(h[c])}return}if(Ext.isString(g)){e=[];b=g.toUpperCase();for(c=0,a=b.length;c<a;++c){e.push(b.charCodeAt(c))}g=e;j=true}if(!Ext.isArray(g)){g=[g]}if(!j){for(c=0,a=g.length;c<a;++c){d=g[c];if(Ext.isString(d)){g[c]=d.toUpperCase().charCodeAt(0)}}}this.bindings.push(Ext.apply({keyCode:g},h))},handleTargetEvent:(function(){var a=/input|textarea/i;return function(g){var e=this,j,c,b,h,d;if(this.enabled){j=this.bindings;c=0;b=j.length;g=e.processEvent.apply(e||e.processEventScope,arguments);if(e.ignoreInputFields){h=g.target;d=h.contentEditable;if(a.test(h.tagName)||(d===""||d==="true")){return}}if(!g.getKey){return g}for(;c<b;++c){this.processBinding(j[c],g)}}}}()),processEvent:function(a){return a},processBinding:function(g,a){if(this.checkModifiers(g,a)){var h=a.getKey(),k=g.fn||g.handler,l=g.scope||this,j=g.keyCode,b=g.defaultEventAction,c,e,d=new Ext.EventObjectImpl(a);for(c=0,e=j.length;c<e;++c){if(h===j[c]){if(k.call(l,h,a)!==true&&b){d[b]()}break}}}},checkModifiers:function(j,g){var d=["shift","ctrl","alt"],c=0,a=d.length,h,b;for(;c<a;++c){b=d[c];h=j[b];if(!(h===undefined||(h===g[b+"Key"]))){return false}}return true},on:function(b,d,c){var h,a,e,g;if(Ext.isObject(b)&&!Ext.isArray(b)){h=b.key;a=b.shift;e=b.ctrl;g=b.alt}else{h=b}this.addBinding({key:h,shift:a,ctrl:e,alt:g,fn:d,scope:c})},isEnabled:function(){return this.enabled},enable:function(){var a=this;if(!a.enabled){a.target.on(a.eventName,a.handleTargetEvent,a);a.enabled=true}},disable:function(){var a=this;if(a.enabled){a.target.removeListener(a.eventName,a.handleTargetEvent,a);a.enabled=false}},setDisabled:function(a){if(a){this.disable()}else{this.enable()}},destroy:function(c){var a=this,b=a.target;a.bindings=[];a.disable();if(c===true){if(b.isComponent){b.destroy()}else{b.remove()}}delete a.target}});Ext.define("Ext.util.KeyNav",{alternateClassName:"Ext.KeyNav",requires:["Ext.util.KeyMap"],statics:{keyOptions:{left:37,right:39,up:38,down:40,space:32,pageUp:33,pageDown:34,del:46,backspace:8,home:36,end:35,enter:13,esc:27,tab:9}},constructor:function(a){var b=this;if(arguments.length===2){b.legacyConstructor.apply(b,arguments);return}b.setConfig(a)},legacyConstructor:function(b,a){this.setConfig(Ext.apply({target:b},a))},setConfig:function(b){var e=this,c={target:b.target,ignoreInputFields:b.ignoreInputFields,eventName:e.getKeyEvent("forceKeyDown" in b?b.forceKeyDown:e.forceKeyDown,b.eventName)},g,a,i,d,h;if(e.map){e.map.destroy()}if(b.processEvent){c.processEvent=b.processEvent;c.processEventScope=b.processEventScope||e}g=e.map=new Ext.util.KeyMap(c);a=Ext.util.KeyNav.keyOptions;i=b.scope||e;for(d in a){if(a.hasOwnProperty(d)){if(h=b[d]){if(typeof h==="function"){h={handler:h,defaultAction:(b.defaultEventAction!==undefined)?b.defaultEventAction:e.defaultEventAction}}g.addBinding({key:a[d],handler:Ext.Function.bind(e.handleEvent,h.scope||i,h.handler||h.fn,true),defaultEventAction:(h.defaultEventAction!==undefined)?h.defaultAction:e.defaultEventAction})}}}g.disable();if(!b.disabled){g.enable()}},handleEvent:function(c,b,a){return a.call(this,b)},disabled:false,defaultEventAction:"stopEvent",forceKeyDown:false,eventName:"keypress",destroy:function(a){this.map.destroy(a);delete this.map},enable:function(){this.map.enable();this.disabled=false},disable:function(){this.map.disable();this.disabled=true},setDisabled:function(a){this.map.setDisabled(a);this.disabled=a},getKeyEvent:function(b,a){if(b||(Ext.EventManager.useKeyDown&&!a)){return"keydown"}else{return a||this.eventName}}});Ext.define("Ext.FocusManager",{singleton:true,alternateClassName:["Ext.FocusMgr"],mixins:{observable:"Ext.util.Observable"},requires:["Ext.AbstractComponent","Ext.Component","Ext.ComponentManager","Ext.ComponentQuery","Ext.util.HashMap","Ext.util.KeyNav"],enabled:false,focusElementCls:Ext.baseCSSPrefix+"focus-element",focusFrameCls:Ext.baseCSSPrefix+"focus-frame",whitelist:["textfield"],constructor:function(a){var b=this,c=Ext.ComponentQuery;b.mixins.observable.constructor.call(b,a);b.addEvents("beforecomponentfocus","componentfocus","disable","enable");b.focusTask=new Ext.util.DelayedTask(b.handleComponentFocus,b);Ext.override(Ext.AbstractComponent,{onFocus:function(){this.callParent(arguments);if(b.enabled&&this.hasFocus){Array.prototype.unshift.call(arguments,this);b.onComponentFocus.apply(b,arguments)}},onBlur:function(){this.callParent(arguments);if(b.enabled&&!this.hasFocus){Array.prototype.unshift.call(arguments,this);b.onComponentBlur.apply(b,arguments)}},onDestroy:function(){this.callParent(arguments);if(b.enabled){Array.prototype.unshift.call(arguments,this);b.onComponentDestroy.apply(b,arguments)}}});Ext.override(Ext.Component,{afterHide:function(){this.callParent(arguments);if(b.enabled){Array.prototype.unshift.call(arguments,this);b.onComponentHide.apply(b,arguments)}}});b.keyNav=new Ext.util.KeyNav(Ext.getDoc(),{disabled:true,scope:b,backspace:b.focusLast,enter:b.navigateIn,esc:b.navigateOut,tab:b.navigateSiblings,space:b.navigateIn,del:b.focusLast,left:b.navigateSiblings,right:b.navigateSiblings,down:b.navigateSiblings,up:b.navigateSiblings});b.focusData={};b.subscribers=new Ext.util.HashMap();b.focusChain={};Ext.apply(c.pseudos,{focusable:function(e){var d=e.length,h=[],g=0,j;for(;g<d;g++){j=e[g];if(j.isFocusable()){h.push(j)}}return h},nextFocus:function(g,e,j){j=j||1;e=parseInt(e,10);var d=g.length,h=e,k;for(;;){if((h+=j)>=d){h=0}else{if(h<0){h=d-1}}if(h===e){return[]}if((k=g[h]).isFocusable()){return[k]}}return[]},prevFocus:function(e,d){return this.nextFocus(e,d,-1)},root:function(e){var d=e.length,h=[],g=0,j;for(;g<d;g++){j=e[g];if(!j.ownerCt){h.push(j)}}return h}})},addXTypeToWhitelist:function(b){var a=this;if(Ext.isArray(b)){Ext.Array.forEach(b,a.addXTypeToWhitelist,a);return}if(!Ext.Array.contains(a.whitelist,b)){a.whitelist.push(b)}},clearComponent:function(a){clearTimeout(this.cmpFocusDelay);if(!a.isDestroyed){a.blur()}},disable:function(){var a=this;if(!a.enabled){return}delete a.options;a.enabled=false;a.removeDOM();a.keyNav.disable();a.fireEvent("disable",a)},enable:function(a){var b=this;if(a===true){a={focusFrame:true}}b.options=a=a||{};if(b.enabled){return}b.enabled=true;b.initDOM(a);b.keyNav.enable();b.focusEl.focus();delete b.focusedCmp;b.fireEvent("enable",b)},focusLast:function(b){var a=this;if(a.isWhitelisted(a.focusedCmp)){return true}if(a.previousFocusedCmp){a.previousFocusedCmp.focus()}},getRootComponents:function(){var a=this,c=Ext.ComponentQuery,b=c.query(":focusable:root:not([floating])"),d=c.query(":focusable:root[floating]");d.sort(function(g,e){return g.el.getZIndex()>e.el.getZIndex()});return d.concat(b)},initDOM:function(c){var g=this,b=g.focusFrameCls,e=Ext.ComponentQuery.query("{getFocusEl()}:not([focusListenerAdded])"),d=0,a=e.length;if(!Ext.isReady){return Ext.onReady(g.initDOM,g)}for(;d<a;d++){e[d].addFocusListener()}if(!g.focusEl){g.focusEl=Ext.getBody();g.focusEl.dom.tabIndex=-1}if(!g.focusFrame&&c.focusFrame){g.focusFrame=Ext.getBody().createChild({cls:b,children:[{cls:b+"-top"},{cls:b+"-bottom"},{cls:b+"-left"},{cls:b+"-right"}],style:"top: -100px; left: -100px;"});g.focusFrame.setVisibilityMode(Ext.Element.DISPLAY);g.focusFrame.hide().setLeftTop(0,0)}},isWhitelisted:function(a){return a&&Ext.Array.some(this.whitelist,function(b){return a.isXType(b)})},navigateIn:function(g){var c=this,a=c.focusedCmp,b,d;if(c.isWhitelisted(a)){return true}if(!a){b=c.getRootComponents()[0];if(b){if(b.getFocusEl()===c.focusEl){c.focusEl.blur()}b.focus()}}else{d=a.hasFocus?Ext.ComponentQuery.query(">:focusable",a)[0]:a;if(d){d.focus()}else{if(Ext.isFunction(a.onClick)){g.button=0;a.onClick(g);if(a.isVisible(true)){a.focus()}else{c.navigateOut()}}}}},navigateOut:function(c){var b=this,a;if(!b.focusedCmp||!(a=b.focusedCmp.up(":focusable"))){b.focusEl.focus()}else{a.focus()}return true},navigateSiblings:function(i,b,o){var j=this,a=b||j,p=i.getKey(),g=Ext.EventObject,k=i.shiftKey||p==g.LEFT||p==g.UP,c=p==g.LEFT||p==g.RIGHT||p==g.UP||p==g.DOWN,h=k?"prev":"next",n,d,m,l;m=(a.focusedCmp&&a.focusedCmp.comp)||a.focusedCmp;if(!m&&!o){return true}if(c&&j.isWhitelisted(m)){return true}if(!m||m.is(":root")){l=j.getRootComponents()}else{o=o||m.up();if(o){l=o.getRefItems()}}if(l){n=m?Ext.Array.indexOf(l,m):-1;d=Ext.ComponentQuery.query(":"+h+"Focus("+n+")",l)[0];if(d&&m!==d){d.focus();return d}}},onComponentBlur:function(b,c){var a=this;if(a.focusedCmp===b){a.previousFocusedCmp=b;delete a.focusedCmp}if(a.focusFrame){a.focusFrame.hide()}},onComponentFocus:function(d,g){var c=this,a=c.focusChain,b;if(!d.isFocusable()){c.clearComponent(d);if(a[d.id]){return}b=d.up();if(b){a[d.id]=true;b.focus()}return}c.focusChain={};c.focusTask.delay(10,null,null,[d,d.getFocusEl()])},handleComponentFocus:function(m,i){var k=this,p,a,d,h,o,b,l,e,g,c,n,j;if(k.fireEvent("beforecomponentfocus",k,m,k.previousFocusedCmp)===false){k.clearComponent(m);return}k.focusedCmp=m;if(k.shouldShowFocusFrame(m)){p="."+k.focusFrameCls+"-";a=k.focusFrame;h=i.getPageBox();o=h.top;b=h.left;l=h.width;e=h.height;g=a.child(p+"top");c=a.child(p+"bottom");n=a.child(p+"left");j=a.child(p+"right");g.setWidth(l).setLeftTop(b,o);c.setWidth(l).setLeftTop(b,o+e-2);n.setHeight(e-2).setLeftTop(b,o+2);j.setHeight(e-2).setLeftTop(b+l-2,o+2);a.show()}k.fireEvent("componentfocus",k,m,k.previousFocusedCmp)},onComponentHide:function(e){var d=this,b=false,a=d.focusedCmp,c;if(a){b=e.hasFocus||(e.isContainer&&e.isAncestor(d.focusedCmp))}d.clearComponent(e);if(b&&(c=e.up(":focusable"))){c.focus()}else{d.focusEl.focus()}},onComponentDestroy:function(){},removeDOM:function(){var a=this;if(a.enabled||a.subscribers.length){return}Ext.destroy(a.focusFrame);delete a.focusEl;delete a.focusFrame},removeXTypeFromWhitelist:function(b){var a=this;if(Ext.isArray(b)){Ext.Array.forEach(b,a.removeXTypeFromWhitelist,a);return}Ext.Array.remove(a.whitelist,b)},setupSubscriberKeys:function(a,g){var e=this,d=a.getFocusEl(),c=g.scope,b={backspace:e.focusLast,enter:e.navigateIn,esc:e.navigateOut,scope:e},h=function(i){if(e.focusedCmp===a){return e.navigateSiblings(i,e,a)}else{return e.navigateSiblings(i)}};Ext.iterate(g,function(j,i){b[j]=function(l){var k=h(l);if(Ext.isFunction(i)&&i.call(c||a,l,k)===true){return true}return k}},e);return new Ext.util.KeyNav(d,b)},shouldShowFocusFrame:function(c){var b=this,a=b.options||{},e=c.getFocusEl(),d=Ext.getDom(e).tagName;if(!b.focusFrame||!c){return false}if(a.focusFrame){return true}if(b.focusData[c.id].focusFrame){return true}return false}});Ext.define("Ext.Img",{extend:"Ext.Component",alias:["widget.image","widget.imagecomponent"],autoEl:"img",src:"",alt:"",imgCls:"",getElConfig:function(){var c=this,b=c.callParent(),a;if(c.autoEl=="img"){a=b}else{b.cn=[a={tag:"img",id:c.id+"-img"}]}if(c.imgCls){a.cls=(a.cls?a.cls+" ":"")+c.imgCls}a.src=c.src||Ext.BLANK_IMAGE_URL;if(c.alt){a.alt=c.alt}return b},onRender:function(){var b=this,a;b.callParent(arguments);a=b.el;b.imgEl=(b.autoEl=="img")?a:a.getById(b.id+"-img")},onDestroy:function(){Ext.destroy(this.imgEl);this.imgEl=null;this.callParent()},setSrc:function(c){var a=this,b=a.imgEl;a.src=c;if(b){b.dom.src=c||Ext.BLANK_IMAGE_URL}}});Ext.define("Ext.Layer",{extend:"Ext.Element",uses:["Ext.Shadow"],statics:{shims:[]},isLayer:true,constructor:function(b,a){b=b||{};var c=this,d=Ext.DomHelper,g=b.parentEl,e=g?Ext.getDom(g):document.body,h=b.hideMode;if(a){c.dom=Ext.getDom(a)}if(!c.dom){c.dom=d.append(e,b.dh||{tag:"div",cls:Ext.baseCSSPrefix+"layer"})}else{c.addCls(Ext.baseCSSPrefix+"layer");if(!c.dom.parentNode){e.appendChild(c.dom)}}if(b.id){c.id=c.dom.id=b.id}else{c.id=Ext.id(c.dom)}Ext.Element.addToCache(c);if(b.cls){c.addCls(b.cls)}c.constrain=b.constrain!==false;if(h){c.setVisibilityMode(Ext.Element[h.toUpperCase()]);if(c.visibilityMode==Ext.Element.ASCLASS){c.visibilityCls=b.visibilityCls}}else{if(b.useDisplay){c.setVisibilityMode(Ext.Element.DISPLAY)}else{c.setVisibilityMode(Ext.Element.VISIBILITY)}}if(b.shadow){c.shadowOffset=b.shadowOffset||4;c.shadow=new Ext.Shadow({offset:c.shadowOffset,mode:b.shadow});c.disableShadow()}else{c.shadowOffset=0}c.useShim=b.shim!==false&&Ext.useShims;if(b.hidden===true){c.hide()}else{c.show()}},getZIndex:function(){return parseInt((this.getShim()||this).getStyle("z-index"),10)},getShim:function(){var b=this,c,a;if(!b.useShim){return null}if(!b.shim){c=b.self.shims.shift();if(!c){c=b.createShim();c.enableDisplayMode("block");c.hide()}a=b.dom.parentNode;if(c.dom.parentNode!=a){a.insertBefore(c.dom,b.dom)}b.shim=c}return b.shim},hideShim:function(){var a=this;if(a.shim){a.shim.setDisplayed(false);a.self.shims.push(a.shim);delete a.shim}},disableShadow:function(){var a=this;if(a.shadow&&!a.shadowDisabled){a.shadowDisabled=true;a.shadow.hide();a.lastShadowOffset=a.shadowOffset;a.shadowOffset=0}},enableShadow:function(a){var b=this;if(b.shadow&&b.shadowDisabled){b.shadowDisabled=false;b.shadowOffset=b.lastShadowOffset;delete b.lastShadowOffset;if(a){b.sync(true)}}},sync:function(b){var j=this,n=j.shadow,i,e,a,d,c,o,m,g,k;if(!j.updating&&j.isVisible()&&(n||j.useShim)){d=j.getShim();c=j.getLocalX();o=j.getLocalY();m=j.dom.offsetWidth;g=j.dom.offsetHeight;if(n&&!j.shadowDisabled){if(b&&!n.isVisible()){n.show(j)}else{n.realign(c,o,m,g)}if(d){k=d.getStyle("z-index");if(k>j.zindex){j.shim.setStyle("z-index",j.zindex-2)}d.show();if(n.isVisible()){i=n.el.getXY();e=d.dom.style;a=n.el.getSize();if(Ext.supports.CSS3BoxShadow){a.height+=6;a.width+=4;i[0]-=2;i[1]-=4}e.left=(i[0])+"px";e.top=(i[1])+"px";e.width=(a.width)+"px";e.height=(a.height)+"px"}else{d.setSize(m,g);d.setLeftTop(c,o)}}}else{if(d){k=d.getStyle("z-index");if(k>j.zindex){j.shim.setStyle("z-index",j.zindex-2)}d.show();d.setSize(m,g);d.setLeftTop(c,o)}}}return j},remove:function(){this.hideUnders();this.callParent()},beginUpdate:function(){this.updating=true},endUpdate:function(){this.updating=false;this.sync(true)},hideUnders:function(){if(this.shadow){this.shadow.hide()}this.hideShim()},constrainXY:function(){if(this.constrain){var g=Ext.Element.getViewWidth(),b=Ext.Element.getViewHeight(),l=Ext.getDoc().getScroll(),k=this.getXY(),i=k[0],e=k[1],a=this.shadowOffset,j=this.dom.offsetWidth+a,c=this.dom.offsetHeight+a,d=false;if((i+j)>g+l.left){i=g-j-a;d=true}if((e+c)>b+l.top){e=b-c-a;d=true}if(i<l.left){i=l.left;d=true}if(e<l.top){e=l.top;d=true}if(d){Ext.Layer.superclass.setXY.call(this,[i,e]);this.sync()}}return this},getConstrainOffset:function(){return this.shadowOffset},setVisible:function(e,b,d,h,g){var c=this,a;a=function(){if(e){c.sync(true)}if(h){h()}};if(!e){c.hideUnders(true)}c.callParent([e,b,d,h,g]);if(!b){a()}return c},beforeFx:function(){this.beforeAction();return this.callParent(arguments)},afterFx:function(){this.callParent(arguments);this.sync(this.isVisible())},beforeAction:function(){if(!this.updating&&this.shadow){this.shadow.hide()}},setLeft:function(a){this.callParent(arguments);return this.sync()},setTop:function(a){this.callParent(arguments);return this.sync()},setLeftTop:function(b,a){this.callParent(arguments);return this.sync()},setXY:function(d,a,c,g,e){var b=this;g=b.createCB(g);b.fixDisplay();b.beforeAction();b.callParent([d,a,c,g,e]);if(!a){g()}return b},createCB:function(c){var a=this,b=a.shadow&&a.shadow.isVisible();return function(){a.constrainXY();a.sync(b);if(c){c()}}},setX:function(a,b,c,e,d){this.setXY([a,this.getY()],b,c,e,d);return this},setY:function(e,a,b,d,c){this.setXY([this.getX(),e],a,b,d,c);return this},setSize:function(a,c,b,e,i,g){var d=this;i=d.createCB(i);d.beforeAction();d.callParent([a,c,b,e,i,g]);if(!b){i()}return d},setWidth:function(a,b,d,g,e){var c=this;g=c.createCB(g);c.beforeAction();c.callParent([a,b,d,g,e]);if(!b){g()}return c},setHeight:function(b,a,d,g,e){var c=this;g=c.createCB(g);c.beforeAction();c.callParent([b,a,d,g,e]);if(!a){g()}return c},setBounds:function(h,g,a,j,b,c,i,d){var e=this;i=e.createCB(i);e.beforeAction();if(!b){Ext.Layer.superclass.setXY.call(e,[h,g]);Ext.Layer.superclass.setSize.call(e,a,j);i()}else{e.callParent([h,g,a,j,b,c,i,d])}return e},setZIndex:function(a){var b=this;b.zindex=a;if(b.getShim()){b.shim.setStyle("z-index",a++)}if(b.shadow){b.shadow.setZIndex(a++)}return b.setStyle("z-index",a)},onOpacitySet:function(a){var b=this.shadow;if(b){b.setOpacity(a)}}});Ext.define("Ext.util.Bindable",{bindStore:function(a,b){var c=this,d=c.store;if(!b&&c.store){c.onUnbindStore(d,b);if(a!==d&&d.autoDestroy){d.destroyStore()}else{c.unbindStoreListeners(d)}}if(a){a=Ext.data.StoreManager.lookup(a);c.bindStoreListeners(a);c.onBindStore(a,b)}c.store=a||null;return c},getStore:function(){return this.store},unbindStoreListeners:function(a){var b=this.storeListeners;if(b){a.un(b)}},bindStoreListeners:function(a){var c=this,b=Ext.apply({},c.getStoreListeners());if(!b.scope){b.scope=c}c.storeListeners=b;a.on(b)},getStoreListeners:Ext.emptyFn,onUnbindStore:Ext.emptyFn,onBindStore:Ext.emptyFn});Ext.define("Ext.LoadMask",{extend:"Ext.Component",alias:"widget.loadmask",mixins:{floating:"Ext.util.Floating",bindable:"Ext.util.Bindable"},uses:["Ext.data.StoreManager"],msg:"Loading...",msgCls:Ext.baseCSSPrefix+"mask-loading",maskCls:Ext.baseCSSPrefix+"mask",useMsg:true,useTargetEl:false,baseCls:Ext.baseCSSPrefix+"mask-msg",childEls:["msgEl"],renderTpl:'<div id="{id}-msgEl" style="position:relative" class="{[values.$comp.msgCls]}"></div>',floating:{shadow:"frame"},focusOnToFront:false,bringParentToFront:false,constructor:function(a,b){var c=this;if(!a.isComponent){a=Ext.get(a);this.isElement=true}c.ownerCt=a;if(!this.isElement){c.bindComponent(a)}c.callParent([b]);if(c.store){c.bindStore(c.store,true)}},bindComponent:function(a){var c=this,b={scope:this,resize:c.sizeMask,added:c.onComponentAdded,removed:c.onComponentRemoved},d=Ext.container.Container.hierarchyEventSource;if(a.floating){b.move=c.sizeMask;c.activeOwner=a}else{if(a.ownerCt){c.onComponentAdded(a.ownerCt)}else{c.preventBringToFront=true}}c.mon(a,b);c.mon(d,{show:c.onContainerShow,hide:c.onContainerHide,expand:c.onContainerExpand,collapse:c.onContainerCollapse,scope:c})},onComponentAdded:function(a){var b=this;delete b.activeOwner;b.floatParent=a;if(!a.floating){a=a.up("[floating]")}if(a){b.activeOwner=a;b.mon(a,"move",b.sizeMask,b)}a=b.floatParent.ownerCt;if(b.rendered&&b.isVisible()&&a){b.floatOwner=a;b.mon(a,"afterlayout",b.sizeMask,b,{single:true})}},onComponentRemoved:function(a){var c=this,d=c.activeOwner,b=c.floatOwner;if(d){c.mun(d,"move",c.sizeMask,c)}if(b){c.mun(b,"afterlayout",c.sizeMask,c)}delete c.activeOwner;delete c.floatOwner},afterRender:function(){this.callParent(arguments);this.container=this.floatParent.getContentTarget()},onContainerShow:function(a){if(this.isActiveContainer(a)){this.onComponentShow()}},onContainerHide:function(a){if(this.isActiveContainer(a)){this.onComponentHide()}},onContainerExpand:function(a){if(this.isActiveContainer(a)){this.onComponentShow()}},onContainerCollapse:function(a){if(this.isActiveContainer(a)){this.onComponentHide()}},isActiveContainer:function(a){return this.isDescendantOf(a)},onComponentHide:function(){var a=this;if(a.rendered&&a.isVisible()){a.hide();a.showNext=true}},onComponentShow:function(){if(this.showNext){this.show()}delete this.showNext},sizeMask:function(){var a=this,b;if(a.rendered&&a.isVisible()){a.center();b=a.getMaskTarget();a.getMaskEl().show().setSize(b.getSize()).alignTo(b,"tl-tl")}},bindStore:function(a,b){var c=this;c.mixins.bindable.bindStore.apply(c,arguments);a=c.store;if(a&&a.isLoading()){c.onBeforeLoad()}},getStoreListeners:function(){return{beforeload:this.onBeforeLoad,load:this.onLoad,exception:this.onLoad,cachemiss:this.onBeforeLoad,cachefilled:this.onLoad}},onDisable:function(){this.callParent(arguments);if(this.loading){this.onLoad()}},getOwner:function(){return this.ownerCt||this.floatParent},getMaskTarget:function(){var a=this.getOwner();return this.useTargetEl?a.getTargetEl():a.getEl()},onBeforeLoad:function(){var c=this,a=c.getOwner(),b;if(!c.disabled){c.loading=true;if(a.componentLayoutCounter){c.maybeShow()}else{b=a.afterComponentLayout;a.afterComponentLayout=function(){a.afterComponentLayout=b;b.apply(a,arguments);c.maybeShow()}}}},maybeShow:function(){var b=this,a=b.getOwner();if(!a.isVisible(true)){b.showNext=true}else{if(b.loading&&a.rendered){b.show()}}},getMaskEl:function(){var a=this;return a.maskEl||(a.maskEl=a.el.insertSibling({cls:a.maskCls,style:{zIndex:a.el.getStyle("zIndex")-2}},"before"))},onShow:function(){var b=this,a=b.msgEl;b.callParent(arguments);b.loading=true;if(b.useMsg){a.show().update(b.msg)}else{a.parent().hide()}},hide:function(){if(this.isElement){this.ownerCt.unmask();this.fireEvent("hide",this);return}delete this.showNext;return this.callParent(arguments)},onHide:function(){this.callParent();this.getMaskEl().hide()},show:function(){if(this.isElement){this.ownerCt.mask(this.useMsg?this.msg:"",this.msgCls);this.fireEvent("show",this);return}return this.callParent(arguments)},afterShow:function(){this.callParent(arguments);this.sizeMask()},setZIndex:function(b){var c=this,a=c.activeOwner;if(a){b=parseInt(a.el.getStyle("zIndex"),10)+1}c.getMaskEl().setStyle("zIndex",b-1);return c.mixins.floating.setZIndex.apply(c,arguments)},onLoad:function(){this.loading=false;this.hide()},onDestroy:function(){var a=this;if(a.isElement){a.ownerCt.unmask()}Ext.destroy(a.maskEl);a.callParent()}});Ext.define("Ext.data.association.Association",{alternateClassName:"Ext.data.Association",primaryKey:"id",defaultReaderType:"json",isAssociation:true,initialConfig:null,statics:{AUTO_ID:1000,create:function(a){if(Ext.isString(a)){a={type:a}}switch(a.type){case"belongsTo":return new Ext.data.association.BelongsTo(a);case"hasMany":return new Ext.data.association.HasMany(a);case"hasOne":return new Ext.data.association.HasOne(a);default:}return a}},constructor:function(a){Ext.apply(this,a);var d=this,b=Ext.ModelManager.types,c=a.ownerModel,g=a.associatedModel,e=b[c],h=b[g];d.initialConfig=a;d.ownerModel=e;d.associatedModel=h;Ext.applyIf(d,{ownerName:c,associatedName:g});d.associationId="association"+(++d.statics().AUTO_ID)},getReader:function(){var c=this,a=c.reader,b=c.associatedModel;if(a){if(Ext.isString(a)){a={type:a}}if(a.isReader){a.setModel(b)}else{Ext.applyIf(a,{model:b,type:c.defaultReaderType})}c.reader=Ext.createByAlias("reader."+a.type,a)}return c.reader||null}});Ext.define("Ext.ModelManager",{extend:"Ext.AbstractManager",alternateClassName:"Ext.ModelMgr",requires:["Ext.data.association.Association"],singleton:true,typeName:"mtype",associationStack:[],registerType:function(c,b){var d=b.prototype,a;if(d&&d.isModel){a=b}else{if(!b.extend){b.extend="Ext.data.Model"}a=Ext.define(c,b)}this.types[c]=a;return a},onModelDefined:function(c){var a=this.associationStack,g=a.length,e=[],b,d,h;for(d=0;d<g;d++){b=a[d];if(b.associatedModel==c.modelName){e.push(b)}}for(d=0,g=e.length;d<g;d++){h=e[d];this.types[h.ownerModel].prototype.associations.add(Ext.data.association.Association.create(h));Ext.Array.remove(a,h)}},registerDeferredAssociation:function(a){this.associationStack.push(a)},getModel:function(b){var a=b;if(typeof a=="string"){a=this.types[a]}return a},create:function(b,a,d){var c=typeof a=="function"?a:this.types[a||b.name];return new c(b,d)}},function(){Ext.regModel=function(){return this.ModelManager.registerType.apply(this.ModelManager,arguments)}});Ext.define("Ext.PluginManager",{extend:"Ext.AbstractManager",alternateClassName:"Ext.PluginMgr",singleton:true,typeName:"ptype",create:function(a,b){if(a.init){return a}else{return Ext.createByAlias("plugin."+(a.ptype||b),a)}},findByType:function(c,g){var e=[],b=this.types,a,d;for(a in b){if(!b.hasOwnProperty(a)){continue}d=b[a];if(d.type==c&&(!g||(g===true&&d.isDefault))){e.push(d)}}return e}},function(){Ext.preg=function(){return Ext.PluginManager.registerType.apply(Ext.PluginManager,arguments)}});Ext.define("Ext.layout.component.ProgressBar",{alias:["layout.progressbar"],extend:"Ext.layout.component.Auto",type:"progressbar",beginLayout:function(d){var b=this,a,c;b.callParent(arguments);if(!d.textEls){c=b.owner.textEl;if(c.isComposite){d.textEls=[];c=c.elements;for(a=c.length;a--;){d.textEls[a]=d.getEl(Ext.get(c[a]))}}else{d.textEls=[d.getEl("textEl")]}}},calculate:function(e){var c=this,a,d,b;c.callParent(arguments);if(Ext.isNumber(b=e.getProp("width"))){b-=e.getBorderInfo().width;d=e.textEls;for(a=d.length;a--;){d[a].setWidth(b)}}else{c.done=false}}});Ext.define("Ext.dom.CompositeElement",{alternateClassName:"Ext.CompositeElement",extend:"Ext.dom.CompositeElementLite",getElement:function(a){return a},transformElement:function(a){return Ext.get(a)}},function(){Ext.dom.Element.select=function(a,d,b){var c;if(typeof a=="string"){c=Ext.dom.Element.selectorFunction(a,b)}else{if(a.length!==undefined){c=a}else{}}return(d===true)?new Ext.CompositeElement(c):new Ext.CompositeElementLite(c)}});Ext.select=Ext.Element.select;Ext.define("Ext.ProgressBar",{extend:"Ext.Component",alias:"widget.progressbar",requires:["Ext.Template","Ext.CompositeElement","Ext.TaskManager","Ext.layout.component.ProgressBar"],uses:["Ext.fx.Anim"],baseCls:Ext.baseCSSPrefix+"progress",animate:false,text:"",waitTimer:null,childEls:["bar"],renderTpl:['<tpl if="internalText">','<div class="{baseCls}-text {baseCls}-text-back">{text}</div>',"</tpl>",'<div id="{id}-bar" class="{baseCls}-bar" style="width:{percentage}%">','<tpl if="internalText">','<div class="{baseCls}-text">',"<div>{text}</div>","</div>","</tpl>","</div>"],componentLayout:"progressbar",initComponent:function(){this.callParent();this.addEvents("update")},initRenderData:function(){var a=this;return Ext.apply(a.callParent(),{internalText:!a.hasOwnProperty("textEl"),text:a.text||" ",percentage:a.value?a.value*100:0})},onRender:function(){var a=this;a.callParent(arguments);if(a.textEl){a.textEl=Ext.get(a.textEl);a.updateText(a.text)}else{a.textEl=a.el.select("."+a.baseCls+"-text")}},updateProgress:function(d,e,a){var c=this,b=c.value;c.value=d||0;if(e){c.updateText(e)}if(c.rendered&&!c.isDestroyed){if(a===true||(a!==false&&c.animate)){c.bar.stopAnimation();c.bar.animate(Ext.apply({from:{width:(b*100)+"%"},to:{width:(c.value*100)+"%"}},c.animate))}else{c.bar.setStyle("width",(c.value*100)+"%")}}c.fireEvent("update",c,c.value,e);return c},updateText:function(b){var a=this;a.text=b;if(a.rendered){a.textEl.update(a.text)}return a},applyText:function(a){this.updateText(a)},getText:function(){return this.text},wait:function(c){var b=this,a;if(!b.waitTimer){a=b;c=c||{};b.updateText(c.text);b.waitTimer=Ext.TaskManager.start({run:function(d){var e=c.increment||10;d-=1;b.updateProgress(((((d+e)%e)+1)*(100/e))*0.01,null,c.animate)},interval:c.interval||1000,duration:c.duration,onStop:function(){if(c.fn){c.fn.apply(c.scope||b)}b.reset()},scope:a})}return b},isWaiting:function(){return this.waitTimer!==null},reset:function(a){var b=this;b.updateProgress(0);b.clearTimer();if(a===true){b.hide()}return b},clearTimer:function(){var a=this;if(a.waitTimer){a.waitTimer.onStop=null;Ext.TaskManager.stop(a.waitTimer);a.waitTimer=null}},onDestroy:function(){var a=this;a.clearTimer();if(a.rendered){if(a.textEl.isComposite){a.textEl.clear()}Ext.destroyMembers(a,"textEl","progressBar")}a.callParent()}});Ext.define("Ext.ShadowPool",{singleton:true,requires:["Ext.DomHelper"],markup:(function(){return Ext.String.format('<div class="{0}{1}-shadow" role="presentation"></div>',Ext.baseCSSPrefix,Ext.isIE&&!Ext.supports.CSS3BoxShadow?"ie":"css")}()),shadows:[],pull:function(){var a=this.shadows.shift();if(!a){a=Ext.get(Ext.DomHelper.insertHtml("beforeBegin",document.body.firstChild,this.markup));a.autoBoxAdjust=false}return a},push:function(a){this.shadows.push(a)},reset:function(){var c=[].concat(this.shadows),b,a=c.length;for(b=0;b<a;b++){c[b].remove()}this.shadows=[]}});Ext.define("Ext.Shadow",{requires:["Ext.ShadowPool"],constructor:function(b){var c=this,d,e,a;Ext.apply(c,b);if(!Ext.isString(c.mode)){c.mode=c.defaultMode}e=c.offset;a=Math.floor(e/2);c.opacity=50;switch(c.mode.toLowerCase()){case"drop":if(Ext.supports.CSS3BoxShadow){d={t:e,l:e,h:-e,w:-e}}else{d={t:-a,l:-a,h:-a,w:-a}}break;case"sides":if(Ext.supports.CSS3BoxShadow){d={t:e,l:0,h:-e,w:0}}else{d={t:-(1+a),l:1+a-2*e,h:-1,w:a-1}}break;case"frame":if(Ext.supports.CSS3BoxShadow){d={t:0,l:0,h:0,w:0}}else{d={t:1+a-2*e,l:1+a-2*e,h:e-a-1,w:e-a-1}}break}c.adjusts=d},getShadowSize:function(){var b=this,d=b.el?b.offset:0,a=[d,d,d,d],c=b.mode.toLowerCase();if(b.el&&c!=="frame"){a[0]=0;if(c=="drop"){a[3]=0}}return a},offset:4,defaultMode:"drop",boxShadowProperty:(function(){var b="boxShadow",a=document.documentElement.style;if(!("boxShadow" in a)){if("WebkitBoxShadow" in a){b="WebkitBoxShadow"}else{if("MozBoxShadow" in a){b="MozBoxShadow"}}}return b}()),show:function(c){var b=this,a;c=Ext.get(c);if(!b.el){b.el=Ext.ShadowPool.pull();if(b.el.dom.nextSibling!=c.dom){b.el.insertBefore(c)}}a=(parseInt(c.getStyle("z-index"),10)-1)||0;b.el.setStyle("z-index",b.zIndex||a);if(Ext.isIE&&!Ext.supports.CSS3BoxShadow){b.el.dom.style.filter="progid:DXImageTransform.Microsoft.alpha(opacity="+b.opacity+") progid:DXImageTransform.Microsoft.Blur(pixelradius="+(b.offset)+")"}b.realign(c.getLocalX(),c.getLocalY(),c.dom.offsetWidth,c.dom.offsetHeight);b.el.dom.style.display="block"},isVisible:function(){return this.el?true:false},realign:function(b,n,k,g){if(!this.el){return}var a=this.adjusts,i=this.el.dom,j=i.style,c,e,h,m;j.left=(b+a.l)+"px";j.top=(n+a.t)+"px";c=Math.max(k+a.w,0);e=Math.max(g+a.h,0);h=c+"px";m=e+"px";if(j.width!=h||j.height!=m){j.width=h;j.height=m;if(Ext.supports.CSS3BoxShadow){j[this.boxShadowProperty]="0 0 "+this.offset+"px #888"}}},hide:function(){var a=this;if(a.el){a.el.dom.style.display="none";Ext.ShadowPool.push(a.el);delete a.el}},setZIndex:function(a){this.zIndex=a;if(this.el){this.el.setStyle("z-index",a)}},setOpacity:function(a){if(this.el){if(Ext.isIE&&!Ext.supports.CSS3BoxShadow){a=Math.floor(a*100/2)/100}this.opacity=a;this.el.setOpacity(a)}}});Ext.define("Ext.app.Controller",{mixins:{observable:"Ext.util.Observable"},onClassExtended:function(j,c,i){var h=Ext.getClassName(j),d=h.match(/^(.*)\.controller\./),b,g,k,a,e;if(d!==null){b=Ext.Loader.getPrefix(h)||d[1];g=i.onBeforeCreated;k=[];a=["model","view","store"];i.onBeforeCreated=function(t,n){var o,q,l,r,m,p,s;for(o=0,q=a.length;o<q;o++){l=a[o];e=b+"."+l+".";r=Ext.Array.from(n[l+"s"]);for(m=0,p=r.length;m<p;m++){s=r[m];if(s.indexOf(".")!==-1&&(Ext.ClassManager.isCreated(s)||Ext.Loader.isAClassNameWithAKnownPrefix(s))){k.push(s)}else{k.push(e+s)}}}Ext.require(k,Ext.Function.pass(g,arguments,this))}}},constructor:function(a){this.mixins.observable.constructor.call(this,a);Ext.apply(this,a||{});this.createGetters("model",this.models);this.createGetters("store",this.stores);this.createGetters("view",this.views);if(this.refs){this.ref(this.refs)}},init:Ext.emptyFn,onLaunch:Ext.emptyFn,createGetters:function(g,j){g=Ext.String.capitalize(g);var e=0,a=(j)?j.length:0,h,b,c,k,d;for(;e<a;e++){h="get";b=j[e];c=b.split(".");d=c.length;for(k=0;k<d;k++){h+=Ext.String.capitalize(c[k])}h+=g;if(!this[h]){this[h]=Ext.Function.pass(this["get"+g],[b],this)}this[h](b)}},ref:function(a){a=Ext.Array.from(a);var g=this,b=0,e=a.length,h,d,c;g.references=g.references||[];for(;b<e;b++){h=a[b];d=h.ref;c="get"+Ext.String.capitalize(d);if(!g[c]){g[c]=Ext.Function.pass(g.getRef,[d,h],g)}g.references.push(d.toLowerCase())}},addRef:function(a){return this.ref([a])},getRef:function(d,e,a){this.refCache=this.refCache||{};e=e||{};a=a||{};Ext.apply(e,a);if(e.forceCreate){return Ext.ComponentManager.create(e,"component")}var c=this,b=c.refCache[d];if(!b){c.refCache[d]=b=Ext.ComponentQuery.query(e.selector)[0];if(!b&&e.autoCreate){c.refCache[d]=b=Ext.ComponentManager.create(e,"component")}if(b){b.on("beforedestroy",function(){c.refCache[d]=null})}}return b},hasRef:function(a){return this.references&&this.references.indexOf(a.toLowerCase())!==-1},control:function(a,b){this.application.control(a,b,this)},getController:function(a){return this.application.getController(a)},getStore:function(a){return this.application.getStore(a)},getModel:function(a){return this.application.getModel(a)},getView:function(a){return this.application.getView(a)}});Ext.define("Ext.data.IdGenerator",{isGenerator:true,constructor:function(a){var b=this;Ext.apply(b,a);if(b.id){Ext.data.IdGenerator.all[b.id]=b}},getRecId:function(a){return a.modelName+"-"+a.internalId},statics:{all:{},get:function(a){var c,d,b;if(typeof a=="string"){d=b=a;a=null}else{if(a.isGenerator){return a}else{d=a.id||a.type;b=a.type}}c=this.all[d];if(!c){c=Ext.create("idgen."+b,a)}return c}}});Ext.define("Ext.data.SortTypes",{singleton:true,none:function(a){return a},stripTagsRE:/<\/?[^>]+>/gi,asText:function(a){return String(a).replace(this.stripTagsRE,"")},asUCText:function(a){return String(a).toUpperCase().replace(this.stripTagsRE,"")},asUCString:function(a){return String(a).toUpperCase()},asDate:function(a){if(!a){return 0}if(Ext.isDate(a)){return a.getTime()}return Date.parse(String(a))},asFloat:function(a){var b=parseFloat(String(a).replace(/,/g,""));return isNaN(b)?0:b},asInt:function(a){var b=parseInt(String(a).replace(/,/g,""),10);return isNaN(b)?0:b}});Ext.define("Ext.data.Types",{singleton:true,requires:["Ext.data.SortTypes"]},function(){var a=Ext.data.SortTypes;Ext.apply(Ext.data.Types,{stripRe:/[\$,%]/g,AUTO:{sortType:a.none,type:"auto"},STRING:{convert:function(c){var b=this.useNull?null:"";return(c===undefined||c===null)?b:String(c)},sortType:a.asUCString,type:"string"},INT:{convert:function(b){return b!==undefined&&b!==null&&b!==""?parseInt(String(b).replace(Ext.data.Types.stripRe,""),10):(this.useNull?null:0)},sortType:a.none,type:"int"},FLOAT:{convert:function(b){return b!==undefined&&b!==null&&b!==""?parseFloat(String(b).replace(Ext.data.Types.stripRe,""),10):(this.useNull?null:0)},sortType:a.none,type:"float"},BOOL:{convert:function(b){if(this.useNull&&(b===undefined||b===null||b==="")){return null}return b===true||b==="true"||b==1},sortType:a.none,type:"bool"},DATE:{convert:function(c){var d=this.dateFormat,b;if(!c){return null}if(Ext.isDate(c)){return c}if(d){if(d=="timestamp"){return new Date(c*1000)}if(d=="time"){return new Date(parseInt(c,10))}return Ext.Date.parse(c,d)}b=Date.parse(c);return b?new Date(b):null},sortType:a.asDate,type:"date"}});Ext.apply(Ext.data.Types,{BOOLEAN:this.BOOL,INTEGER:this.INT,NUMBER:this.FLOAT})});Ext.define("Ext.data.Field",{requires:["Ext.data.Types","Ext.data.SortTypes"],alias:"data.field",isField:true,constructor:function(b){var d=this,c=Ext.data.Types,a;if(Ext.isString(b)){b={name:b}}Ext.apply(d,b);a=d.sortType;if(d.type){if(Ext.isString(d.type)){d.type=c[d.type.toUpperCase()]||c.AUTO}}else{d.type=c.AUTO}if(Ext.isString(a)){d.sortType=Ext.data.SortTypes[a]}else{if(Ext.isEmpty(a)){d.sortType=d.type.sortType}}if(!b.hasOwnProperty("convert")){d.convert=d.type.convert}else{if(!d.convert&&d.type.convert&&!b.hasOwnProperty("defaultValue")){d.defaultValue=d.type.convert(d.defaultValue)}}if(b.convert){d.hasCustomConvert=true}},dateFormat:null,useNull:false,defaultValue:"",mapping:null,sortType:null,sortDir:"ASC",allowBlank:true,persist:true});Ext.define("Ext.data.Errors",{extend:"Ext.util.MixedCollection",isValid:function(){return this.length===0},getByField:function(e){var d=[],a,c,b;for(b=0;b<this.length;b++){a=this.items[b];if(a.field==e){d.push(a)}}return d}});Ext.define("Ext.data.Operation",{synchronous:true,action:undefined,filters:undefined,sorters:undefined,groupers:undefined,start:undefined,limit:undefined,batch:undefined,callback:undefined,scope:undefined,started:false,running:false,complete:false,success:undefined,exception:false,error:undefined,actionCommitRecordsRe:/^(?:create|update)$/i,actionSkipSyncRe:/^destroy$/i,constructor:function(a){Ext.apply(this,a||{})},commitRecords:function(k){var h=this,j,g,a,c,b,d,e;if(!h.actionSkipSyncRe.test(h.action)){a=h.records;if(a&&a.length){if(a.length>1){if(h.action=="update"||a[0].clientIdProperty){j=new Ext.util.MixedCollection();j.addAll(k);for(g=a.length;g--;){b=a[g];c=j.findBy(h.matchClientRec,b);b.copyFrom(c)}}else{for(d=0,e=a.length;d<e;++d){b=a[d];c=k[d];if(b&&c){h.updateRecord(b,c)}}}}else{this.updateRecord(a[0],k[0])}if(h.actionCommitRecordsRe.test(h.action)){for(g=a.length;g--;){a[g].commit()}}}}},updateRecord:function(a,b){if(b&&(a.phantom||a.getId()===b.getId())){a.copyFrom(b)}},matchClientRec:function(c){var a=this,b=a.getId();if(b&&c.getId()===b){return true}return c.internalId===a.internalId},setStarted:function(){this.started=true;this.running=true},setCompleted:function(){this.complete=true;this.running=false},setSuccessful:function(){this.success=true},setException:function(a){this.exception=true;this.success=false;this.running=false;this.error=a},hasException:function(){return this.exception===true},getError:function(){return this.error},getRecords:function(){var a=this.getResultSet();return this.records||(a?a.records:null)},getResultSet:function(){return this.resultSet},isStarted:function(){return this.started===true},isRunning:function(){return this.running===true},isComplete:function(){return this.complete===true},wasSuccessful:function(){return this.isComplete()&&this.success===true},setBatch:function(a){this.batch=a},allowWrite:function(){return this.action!="read"}});Ext.define("Ext.data.validations",{singleton:true,presenceMessage:"must be present",lengthMessage:"is the wrong length",formatMessage:"is the wrong format",inclusionMessage:"is not included in the list of acceptable values",exclusionMessage:"is not an acceptable value",emailMessage:"is not a valid email address",emailRe:/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/,presence:function(a,b){if(arguments.length===1){b=a}return !!b||b===0},length:function(b,e){if(e===undefined||e===null){return false}var d=e.length,c=b.min,a=b.max;if((c&&d<c)||(a&&d>a)){return false}else{return true}},email:function(b,a){return Ext.data.validations.emailRe.test(a)},format:function(a,b){return !!(a.matcher&&a.matcher.test(b))},inclusion:function(a,b){return a.list&&Ext.Array.indexOf(a.list,b)!=-1},exclusion:function(a,b){return a.list&&Ext.Array.indexOf(a.list,b)==-1}});Ext.define("Ext.data.Model",{alternateClassName:"Ext.data.Record",mixins:{observable:"Ext.util.Observable"},requires:["Ext.ModelManager","Ext.data.IdGenerator","Ext.data.Field","Ext.data.Errors","Ext.data.Operation","Ext.data.validations","Ext.util.MixedCollection"],compareConvertFields:function(a,d){var c=a.convert&&a.type&&a.convert!==a.type.convert,b=d.convert&&d.type&&d.convert!==d.type.convert;if(c&&!b){return 1}if(!c&&b){return -1}return 0},itemNameFn:function(a){return a.name},onClassExtended:function(b,c,a){var d=a.onBeforeCreated;a.onBeforeCreated=function(g,D){var C=this,E=Ext.getClassName(g),r=g.prototype,x=g.prototype.superclass,j=D.validations||[],t=D.fields||[],h,m=D.associations||[],e=function(G,I){var H=0,F,J;if(G){G=Ext.Array.from(G);for(F=G.length;H<F;++H){J=G[H];if(!Ext.isObject(J)){J={model:J}}J.type=I;m.push(J)}}},u=D.idgen,A=new Ext.util.MixedCollection(false,r.itemNameFn),y=new Ext.util.MixedCollection(false,r.itemNameFn),q=x.validations,B=x.fields,l=x.associations,z,w,o,p=[],n=D.idProperty||g.prototype.idProperty,v=function(G,F,i){var H,I;if(A.events.add.firing){I=G;H=F}else{H=i;I=F.originalIndex}H.originalIndex=I;if(H.mapping===n||(H.mapping==null&&H.name===n)){H.defaultValue=undefined}},s=D.proxy||g.prototype.proxy||g.prototype.defaultProxyType,k=function(){A.sortBy(r.compareConvertFields)};g.modelName=E;r.modelName=E;if(q){j=q.concat(j)}D.validations=j;if(B){t=B.items.concat(t)}A.on({add:v,replace:v});for(w=0,o=t.length;w<o;++w){h=t[w];A.add(h.isField?h:new Ext.data.Field(h))}if(!A.get(n)){A.add(new Ext.data.Field(n))}k();A.on({add:k,replace:k});D.fields=A;if(u){D.idgen=Ext.data.IdGenerator.get(u)}e(D.belongsTo,"belongsTo");delete D.belongsTo;e(D.hasMany,"hasMany");delete D.hasMany;e(D.hasOne,"hasOne");delete D.hasOne;if(l){m=l.items.concat(m)}for(w=0,o=m.length;w<o;++w){p.push("association."+m[w].type.toLowerCase())}if(s&&!s.isProxy){p.push("proxy."+(typeof s==="string"?s:s.type))}Ext.require(p,function(){Ext.ModelManager.registerType(E,g);for(w=0,o=m.length;w<o;++w){z=m[w];if(z.isAssociation){z=Ext.applyIf({ownerModel:E,associatedModel:z.model},z.initialConfig)}else{Ext.apply(z,{ownerModel:E,associatedModel:z.model})}if(Ext.ModelManager.getModel(z.model)===undefined){Ext.ModelManager.registerDeferredAssociation(z)}else{y.add(Ext.data.association.Association.create(z))}}D.associations=y;d.call(C,g,D,a);g.setProxy(s);Ext.ModelManager.onModelDefined(g)})}},inheritableStatics:{setProxy:function(a){if(!a.isProxy){if(typeof a=="string"){a={type:a}}a=Ext.createByAlias("proxy."+a.type,a)}a.setModel(this);this.proxy=this.prototype.proxy=a;return a},getProxy:function(){return this.proxy},setFields:function(c,d,b){var j=this,h=j.prototype,g=h.fields,a=c?c.length:0,e=0;if(d){h.idProperty=d}if(b){h.clientIdProperty=b}if(g){g.clear()}else{g=j.prototype.fields=new Ext.util.MixedCollection(false,function(i){return i.name})}for(;e<a;e++){g.add(new Ext.data.Field(c[e]))}if(!g.get(h.idProperty)){g.add(new Ext.data.Field(h.idProperty))}j.fields=g;return g},getFields:function(){return this.prototype.fields.items},load:function(g,c){c=Ext.apply({},c);c=Ext.applyIf(c,{action:"read",id:g});var b=new Ext.data.Operation(c),d=c.scope||this,a=null,e;e=function(h){if(h.wasSuccessful()){a=h.getRecords()[0];Ext.callback(c.success,d,[a,h])}else{Ext.callback(c.failure,d,[a,h])}Ext.callback(c.callback,d,[a,h])};this.proxy.read(b,e,this)}},statics:{PREFIX:"ext-record",AUTO_ID:1,EDIT:"edit",REJECT:"reject",COMMIT:"commit",id:function(a){var b=[this.PREFIX,"-",this.AUTO_ID++].join("");a.phantom=true;a.internalId=b;return b}},idgen:{isGenerator:true,type:"default",generate:function(){return null},getRecId:function(a){return a.modelName+"-"+a.internalId}},editing:false,dirty:false,persistenceProperty:"data",evented:false,isModel:true,phantom:false,idProperty:"id",clientIdProperty:null,defaultProxyType:"ajax",constructor:function(j,d,o,b){j=j||{};var l=this,k,e,m,a,n,g,c,h;l.internalId=(d||d===0)?d:Ext.data.Model.id(l);l.raw=o||j;if(!l.data){l.data={}}l.modified={};if(l.persistanceProperty){l.persistenceProperty=l.persistanceProperty}l[l.persistenceProperty]=b||{};l.mixins.observable.constructor.call(l);if(!b){k=l.fields.items;e=k.length;h=0;c=l[l.persistenceProperty];if(Ext.isArray(j)){for(;h<e;h++){m=k[h];a=m.name;n=j[m.originalIndex];if(n===undefined){n=m.defaultValue}if(m.convert){n=m.convert(n,l)}if(n!==undefined){c[a]=n}}}else{for(;h<e;h++){m=k[h];a=m.name;n=j[a];if(n===undefined){n=m.defaultValue}if(m.convert){n=m.convert(n,l)}if(n!==undefined){c[a]=n}}}}l.stores=[];if(l.getId()){l.phantom=false}else{if(l.phantom){g=l.idgen.generate();if(g!==null){l.setId(g)}}}l.dirty=false;l.modified={};if(typeof l.init=="function"){l.init()}l.id=l.idgen.getRecId(l)},get:function(a){return this[this.persistenceProperty][a]},_singleProp:{},set:function(r,b){var j=this,h=j[j.persistenceProperty],i=j.fields,q=j.modified,o=(typeof r=="string"),p,k,g,n,e,a,c,d,l,m;if(o){m=j._singleProp;m[r]=b}else{m=r}for(a in m){if(m.hasOwnProperty(a)){l=m[a];if(i&&(k=i.get(a))&&k.convert){l=k.convert(l,j)}p=h[a];if(j.isEqual(p,l)){continue}h[a]=l;(e||(e=[])).push(a);if(k&&k.persist){if(q.hasOwnProperty(a)){if(j.isEqual(q[a],l)){delete q[a];j.dirty=false;for(n in q){if(q.hasOwnProperty(n)){j.dirty=true;break}}}}else{j.dirty=true;q[a]=p}}if(a==j.idProperty){g=true;c=p;d=l}}}if(o){delete m[r]}if(g){j.fireEvent("idchanged",j,c,d)}if(!j.editing&&e){j.afterEdit(e)}return e||null},copyFrom:function(g){if(g){var e=this,c=e.fields.items,k=c.length,h,a=0,d=e[e.persistenceProperty],b=g[g.persistenceProperty],j;for(;a<k;a++){h=c[a];j=b[h.name];if(j!==undefined){d[h.name]=j}}if(e.phantom&&!g.phantom){e.setId(g.getId())}}},isEqual:function(d,c){if(Ext.isDate(d)&&Ext.isDate(c)){return Ext.Date.isEqual(d,c)}return d===c},beginEdit:function(){var a=this;if(!a.editing){a.editing=true;a.dirtySave=a.dirty;a.dataSave=Ext.apply({},a[a.persistenceProperty]);a.modifiedSave=Ext.apply({},a.modified)}},cancelEdit:function(){var a=this;if(a.editing){a.editing=false;a.modified=a.modifiedSave;a[a.persistenceProperty]=a.dataSave;a.dirty=a.dirtySave;delete a.modifiedSave;delete a.dataSave;delete a.dirtySave}},endEdit:function(a,c){var b=this,d;if(b.editing){b.editing=false;if(!c){c=b.getModifiedFieldNames()}d=b.dirty||c.length>0;delete b.modifiedSave;delete b.dataSave;delete b.dirtySave;if(d&&a!==true){b.afterEdit(c)}}},getModifiedFieldNames:function(){var d=this,c=d.dataSave,e=d[d.persistenceProperty],a=[],b;for(b in e){if(e.hasOwnProperty(b)){if(!d.isEqual(e[b],c[b])){a.push(b)}}}return a},getChanges:function(){var a=this.modified,b={},c;for(c in a){if(a.hasOwnProperty(c)){b[c]=this.get(c)}}return b},isModified:function(a){return this.modified.hasOwnProperty(a)},setDirty:function(){var c=this,a=c.fields.items,g=a.length,e,b,d;c.dirty=true;for(d=0;d<g;d++){e=a[d];if(e.persist){b=e.name;c.modified[b]=c.get(b)}}},reject:function(a){var c=this,b=c.modified,d;for(d in b){if(b.hasOwnProperty(d)){if(typeof b[d]!="function"){c[c.persistenceProperty][d]=b[d]}}}c.dirty=false;c.editing=false;c.modified={};if(a!==true){c.afterReject()}},commit:function(a){var b=this;b.phantom=b.dirty=b.editing=false;b.modified={};if(a!==true){b.afterCommit()}},copy:function(a){var b=this;return new b.self(b.raw,a,null,Ext.apply({},b[b.persistenceProperty]))},setProxy:function(a){if(!a.isProxy){if(typeof a==="string"){a={type:a}}a=Ext.createByAlias("proxy."+a.type,a)}a.setModel(this.self);this.proxy=a;return a},getProxy:function(){return this.proxy},validate:function(){var k=new Ext.data.Errors(),c=this.validations,e=Ext.data.validations,b,d,j,a,h,g;if(c){b=c.length;for(g=0;g<b;g++){d=c[g];j=d.field||d.name;h=d.type;a=e[h](d,this.get(j));if(!a){k.add({field:j,message:d.message||e[h+"Message"]})}}}return k},isValid:function(){return this.validate().isValid()},save:function(m){m=Ext.apply({},m);var g=this,b=g.phantom?"create":"update",l=m.scope||g,j=g.stores,c=0,e,h,d,a,k;Ext.apply(m,{records:[g],action:b});a=new Ext.data.Operation(m);k=function(i){d=[g,i];if(i.wasSuccessful()){for(e=j.length;c<e;c++){h=j[c];h.fireEvent("write",h,i);h.fireEvent("datachanged",h)}Ext.callback(m.success,l,d)}else{Ext.callback(m.failure,l,d)}Ext.callback(m.callback,l,d)};g.getProxy()[b](a,k,g);return g},destroy:function(l){l=Ext.apply({},l);var e=this,k=l.scope||e,h=e.stores,b=0,d,g,c,a,j;Ext.apply(l,{records:[e],action:"destroy"});a=new Ext.data.Operation(l);j=function(i){c=[e,i];if(i.wasSuccessful()){for(d=h.length;b<d;b++){g=h[b];g.fireEvent("write",g,i);g.fireEvent("datachanged",g)}e.clearListeners();Ext.callback(l.success,k,c)}else{Ext.callback(l.failure,k,c)}Ext.callback(l.callback,k,c)};e.getProxy().destroy(a,j,e);return e},getId:function(){return this.get(this.idProperty)},getObservableId:function(){return this.id},setId:function(a){this.set(this.idProperty,a);this.phantom=!(a||a===0)},join:function(a){Ext.Array.include(this.stores,a);this.store=this.stores[0]},unjoin:function(a){Ext.Array.remove(this.stores,a);this.store=this.stores[0]||null},afterEdit:function(a){this.callStore("afterEdit",a)},afterReject:function(){this.callStore("afterReject")},afterCommit:function(){this.callStore("afterCommit")},callStore:function(g){var d=Ext.Array.clone(arguments),b=this.stores,e=0,a=b.length,c,h;d[0]=this;for(;e<a;++e){c=b[e];if(c&&typeof c[g]=="function"){c[g].apply(c,d)}h=c.treeStore;if(h&&typeof h[g]=="function"){h[g].apply(h,d)}}},getData:function(c){var d=this,a=d.fields.items,h=a.length,g={},b,e;for(e=0;e<h;e++){b=a[e].name;g[b]=d.get(b)}if(c===true){Ext.apply(g,d.getAssociatedData())}return g},getAssociatedData:function(){return this.prepareAssociatedData({},1)},prepareAssociatedData:function(w,z){var y=this,t=y.associations.items,e=t.length,x={},q=[],v=[],m=[],p,b,a,n,g,l,k,u,h,c,s,r,d,A;for(s=0;s<e;s++){c=t[s];u=c.associationId;k=w[u];if(k&&k!==z){continue}w[u]=z;d=c.type;A=c.name;if(d=="hasMany"){p=y[c.storeName];x[A]=[];if(p&&p.getCount()>0){b=p.data.items;h=b.length;for(r=0;r<h;r++){a=b[r];x[A][r]=a.getData();q.push(a);v.push(A);m.push(r)}}}else{if(d=="belongsTo"||d=="hasOne"){a=y[c.instanceName];if(a!==undefined){x[A]=a.getData();q.push(a);v.push(A);m.push(-1)}}}}for(s=0,h=q.length;s<h;++s){a=q[s];n=x[v[s]];g=m[s];l=a.prepareAssociatedData(w,z+1);if(g===-1){Ext.apply(n,l)}else{Ext.apply(n[g],l)}}return x}});Ext.define("Ext.data.StoreManager",{extend:"Ext.util.MixedCollection",alternateClassName:["Ext.StoreMgr","Ext.data.StoreMgr","Ext.StoreManager"],singleton:true,uses:["Ext.data.ArrayStore"],register:function(){for(var a=0,b;(b=arguments[a]);a++){this.add(b)}},unregister:function(){for(var a=0,b;(b=arguments[a]);a++){this.remove(this.lookup(b))}},lookup:function(c){if(Ext.isArray(c)){var b=["field1"],e=!Ext.isArray(c[0]),g=c,d,a;if(e){g=[];for(d=0,a=c.length;d<a;++d){g.push([c[d]])}}else{for(d=2,a=c[0].length;d<=a;++d){b.push("field"+d)}}return new Ext.data.ArrayStore({data:g,fields:b,autoDestroy:true,autoCreated:true,expanded:e})}if(Ext.isString(c)){return this.get(c)}else{return Ext.data.AbstractStore.create(c)}},getKey:function(a){return a.storeId}},function(){Ext.regStore=function(c,b){var a;if(Ext.isObject(c)){b=c}else{b.storeId=c}if(b instanceof Ext.data.Store){a=b}else{a=new Ext.data.Store(b)}return Ext.data.StoreManager.register(a)};Ext.getStore=function(a){return Ext.data.StoreManager.lookup(a)}});Ext.define("Ext.layout.component.Dock",{extend:"Ext.layout.component.Component",alias:"layout.dock",alternateClassName:"Ext.layout.component.AbstractDock",type:"dock",initializedBorders:-1,horizontalCollapsePolicy:{width:true,x:true},verticalCollapsePolicy:{height:true,y:true},finishRender:function(){var b=this,c,a;b.callParent();c=b.getRenderTarget();a=b.getDockedItems();b.finishRenderItems(c,a)},isItemBoxParent:function(a){return true},isItemShrinkWrap:function(a){return true},dockOpposites:{top:"bottom",right:"left",bottom:"top",left:"right"},handleItemBorders:function(){var m=this,a=m.owner,l,p,e=m.borders,h=m.dockOpposites,b=a.dockedItems.generation,g,k,o,n,j,c,d=m.collapsed;if(m.initializedBorders==b||(a.border&&!a.manageBodyBorders)){return}m.initializedBorders=b;m.collapsed=false;p=m.getLayoutItems();m.collapsed=d;l={top:[],right:[],bottom:[],left:[]};for(g=0,k=p.length;g<k;g++){o=p[g];n=o.dock;if(o.ignoreBorderManagement){continue}if(!l[n].satisfied){l[n].push(o);l[n].satisfied=true}if(!l.top.satisfied&&h[n]!=="top"){l.top.push(o)}if(!l.right.satisfied&&h[n]!=="right"){l.right.push(o)}if(!l.bottom.satisfied&&h[n]!=="bottom"){l.bottom.push(o)}if(!l.left.satisfied&&h[n]!=="left"){l.left.push(o)}}if(e){for(j in e){if(e.hasOwnProperty(j)){k=e[j].length;if(!a.manageBodyBorders){for(g=0;g<k;g++){c=e[j][g];if(!c.isDestroyed){c.removeCls(Ext.baseCSSPrefix+"docked-noborder-"+j)}}if(!e[j].satisfied&&!a.bodyBorder){a.removeBodyCls(Ext.baseCSSPrefix+"docked-noborder-"+j)}}else{if(e[j].satisfied){a.setBodyStyle("border-"+j+"-width","")}}}}}for(j in l){if(l.hasOwnProperty(j)){k=l[j].length;if(!a.manageBodyBorders){for(g=0;g<k;g++){l[j][g].addCls(Ext.baseCSSPrefix+"docked-noborder-"+j)}if((!l[j].satisfied&&!a.bodyBorder)||a.bodyBorder===false){a.addBodyCls(Ext.baseCSSPrefix+"docked-noborder-"+j)}}else{if(l[j].satisfied){a.setBodyStyle("border-"+j+"-width","1px")}}}}m.borders=l},beforeLayoutCycle:function(e){var c=this,b=c.owner,g=c.sizeModels.shrinkWrap,d,a;if(b.collapsed){if(b.collapsedVertical()){a=true;e.measureDimensions=1}else{d=true;e.measureDimensions=2}}e.collapsedVert=a;e.collapsedHorz=d;if(a){e.heightModel=g}else{if(d){e.widthModel=g}}},beginLayout:function(d){var k=this,c=k.owner,n=k.getLayoutItems(),b=d.context,g=n.length,l,j,m,a,e,h;k.callParent(arguments);k.handleItemBorders();h=c.getCollapsed();if(h!==k.lastCollapsedState&&Ext.isDefined(k.lastCollapsedState)){if(k.owner.collapsed){d.isCollapsingOrExpanding=1;c.addClsWithUI(c.collapsedCls)}else{d.isCollapsingOrExpanding=2;c.removeClsWithUI(c.collapsedCls);d.lastCollapsedState=k.lastCollapsedState}}k.lastCollapsedState=h;d.dockedItems=l=[];for(j=0;j<g;j++){m=n[j];if(m.rendered){a=b.getCmp(m);a.dockedAt={x:0,y:0};a.offsets=e=Ext.Element.parseBox(m.offsets||{});e.width=e.left+e.right;e.height=e.top+e.bottom;l.push(a)}}d.bodyContext=d.getEl("body")},beginLayoutCycle:function(b){var e=this,l=b.dockedItems,d=l.length,a=e.owner,g=a.frameBody,k=e.lastHeightModel,c,j,h;e.callParent(arguments);if(k&&k.shrinkWrap&&!b.heightModel.shrinkWrap&&!e.owner.manageHeight){a.body.dom.style.marginBottom=""}if(b.widthModel.auto){if(b.widthModel.shrinkWrap){a.el.setWidth(null)}a.body.setWidth(null);if(g){g.setWidth(null)}}if(b.heightModel.auto){a.body.setHeight(null);if(g){g.setHeight(null)}}if(b.collapsedVert){b.setContentHeight(0)}else{if(b.collapsedHorz){b.setContentWidth(0)}}for(c=0;c<d;c++){j=l[c].target;h=j.dock;if(h=="right"){j.el.setLeft(0)}else{if(h!="left"){continue}}}},calculate:function(d){var k=this,c=k.measureAutoDimensions(d,d.measureDimensions),b=d.state,j=b.horzDone,e=b.vertDone,g=d.bodyContext,a,i,h,l;d.borderInfo||d.getBorderInfo();d.paddingInfo||d.getPaddingInfo();d.framingInfo||d.getFraming();g.borderInfo||g.getBorderInfo();g.paddingInfo||g.getPaddingInfo();a=!j&&k.createAxis(d,c.contentWidth,d.widthModel,"left","right","x","width","Width",d.collapsedHorz);i=!e&&k.createAxis(d,c.contentHeight,d.heightModel,"top","bottom","y","height","Height",d.collapsedVert);for(h=0,l=d.dockedItems.length;l--;++h){if(a){k.dockChild(d,a,l,h)}if(i){k.dockChild(d,i,l,h)}}if(a&&k.finishAxis(d,a)){b.horzDone=j=a}if(i&&k.finishAxis(d,i)){b.vertDone=e=i}if(j&&e&&k.finishConstraints(d,j,e)){k.finishPositions(d,j,e)}else{k.done=false}},createAxis:function(o,j,e,n,i,s,m,k,d){var u=0,b=this.owner,g=b["max"+k],c=b["min"+k]||0,l=g!=null,t="set"+k,q,a,r,p,h;if(e.shrinkWrap){if(d){h=0}else{a=o.bodyContext;h=j+a.borderInfo[m]}}else{q=o.borderInfo;r=o.framingInfo;p=o.paddingInfo;h=o.getProp(m);h-=q[i]+p[i]+r[i];u=q[n]+p[n]+r[n]}return{shrinkWrap:e.shrinkWrap,sizeModel:e,begin:u,end:h,collapsed:d,horizontal:s=="x",ignoreFrameBegin:false,ignoreFrameEnd:false,initialSize:h-u,hasMinMaxConstraints:(c||l)&&e.shrinkWrap,minSize:c,maxSize:l?g:1000000000,bodyPosProp:this.owner.manageHeight?s:("margin-"+n),dockBegin:n,dockEnd:i,posProp:s,sizeProp:m,sizePropCap:k,setSize:t,dockedPixelsEnd:0}},dockChild:function(b,c,j,d){var e=this,a=b.dockedItems[c.shrinkWrap?j:d],h=a.target,i=h.dock,g;if(h.ignoreParentFrame&&b.isCollapsingOrExpanding){a.clearMarginCache()}if(i==c.dockBegin){if(c.shrinkWrap){g=e.dockOutwardBegin(b,a,h,c)}else{g=e.dockInwardBegin(b,a,h,c)}}else{if(i==c.dockEnd){if(c.shrinkWrap){g=e.dockOutwardEnd(b,a,h,c)}else{g=e.dockInwardEnd(b,a,h,c)}}else{g=e.dockStretch(b,a,h,c)}}a.dockedAt[c.posProp]=g},dockInwardBegin:function(g,e,d,b){var i=b.begin,h=b.sizeProp,a,c;if(d.ignoreParentFrame){c=d.dock;i-=g.borderInfo[c]+g.paddingInfo[c]+g.framingInfo[c]}if(!d.overlay){a=e.getProp(h)+e.getMarginInfo()[h];b.begin+=a}return i},dockInwardEnd:function(e,d,c,b){var h=b.sizeProp,a=d.getProp(h)+d.getMarginInfo()[h],g=b.end-a;if(!c.overlay){b.end=g}if(c.ignoreParentFrame){g+=e.borderInfo[c.dock]+e.paddingInfo[c.dock]+e.framingInfo[c.dock]}return g},dockOutwardBegin:function(g,e,d,b){var i=b.begin,h=b.sizeProp,c,a;if(b.collapsed){b.ignoreFrameBegin=b.ignoreFrameEnd=true}else{if(d.ignoreParentFrame){c=d.dock;i-=g.borderInfo[c]+g.paddingInfo[c]+g.framingInfo[c];b.ignoreFrameBegin=true}}if(!d.overlay){a=e.getProp(h)+e.getMarginInfo()[h];i-=a;b.begin=i}return i},dockOutwardEnd:function(g,e,d,b){var i=b.end,h=b.sizeProp,c,a;a=e.getProp(h)+e.getMarginInfo()[h];if(b.collapsed){b.ignoreFrameBegin=b.ignoreFrameEnd=true}else{if(d.ignoreParentFrame){c=d.dock;i+=g.borderInfo[c]+g.paddingInfo[c]+g.framingInfo[c];b.ignoreFrameEnd=true}}if(!d.overlay){b.end=i+a;b.dockedPixelsEnd+=a}return i},dockStretch:function(c,b,n,d){var o=n.dock,j=d.sizeProp,a=o=="top"||o=="bottom",e=b.offsets,i=c.borderInfo,m=c.paddingInfo,h=a?"right":"bottom",q=a?"left":"top",l=d.begin+e[q],g,p,k;if(n.stretch!==false){p=d.end-l-e[h];if(n.ignoreParentFrame){k=c.framingInfo;l-=i[q]+m[q]+k[q];p+=i[j]+m[j]+k[j]}g=b.getMarginInfo();p-=g[j];b[d.setSize](p)}return l},finishAxis:function(c,e){var o=e.end-e.begin,l=e.setSize,d=e.dockBegin,i=e.dockEnd,j=c.borderInfo,m=c.paddingInfo,k=c.framingInfo,h=m[d]+j[d]+k[d],g=c.bodyContext,n,a,b;if(e.shrinkWrap){e.delta=-e.begin;a=e.initialSize;if(e.ignoreFrameBegin){e.delta-=j[d];n=-e.begin-h}else{o+=h;e.delta+=m[d]+k[d];n=-e.begin}if(!e.ignoreFrameEnd){o+=m[i]+j[i]+k[i]}e.size=o;if(!e.horizontal&&!this.owner.manageHeight){b=false}}else{e.delta=-j[e.dockBegin];a=o;n=e.begin-h}g[l](a,b);g.setProp(e.bodyPosProp,n);return !isNaN(o)},finishConstraints:function(e,a,h){var j=this.sizeModels,l=a.shrinkWrap,b=h.shrinkWrap,c,k,d,g,i,m;if(l){m=a.size;if(m<a.minSize){i=j.constrainedMin;d=a.minSize}else{if(m>a.maxSize){i=j.constrainedMax;d=a.maxSize}else{d=m}}}if(b){m=h.size;if(m<h.minSize){g=j.constrainedMin;k=h.minSize}else{if(m>h.maxSize){g=j.constrainedMax;k=h.maxSize}else{if(!e.collapsedVert&&!this.owner.manageHeight){c=false;e.bodyContext.setProp("margin-bottom",h.dockedPixelsEnd)}k=m}}}if(i||g){if(i&&g&&i.constrainedMax&&g.constrainedMin){e.invalidate({widthModel:i});return false}if(!e.widthModel.calculatedFromShrinkWrap&&!e.heightModel.calculatedFromShrinkWrap){e.invalidate({widthModel:i,heightModel:g});return false}}if(l){e.setWidth(d);if(i){e.widthModel=i}}if(b){e.setHeight(k,c);if(g){e.heightModel=g}}return true},finishPositions:function(d,a,h){var j=d.dockedItems,c=j.length,g=a.delta,e=h.delta,i,b;for(i=0;i<c;++i){b=j[i];b.setProp("x",g+b.dockedAt.x);b.setProp("y",e+b.dockedAt.y)}},finishedLayout:function(b){var a=this,c=b.target;a.callParent(arguments);if(!b.animatePolicy){if(b.isCollapsingOrExpanding===1){c.afterCollapse(false)}else{if(b.isCollapsingOrExpanding===2){c.afterExpand(false)}}}},getAnimatePolicy:function(c){var b=this,a,d;if(c.isCollapsingOrExpanding==1){a=b.lastCollapsedState}else{if(c.isCollapsingOrExpanding==2){a=c.lastCollapsedState}}if(a=="left"||a=="right"){d=b.horizontalCollapsePolicy}else{if(a=="top"||a=="bottom"){d=b.verticalCollapsePolicy}}return d},getDockedItems:function(c,n){var j=this,e=(c==="visual"),k=e?Ext.ComponentQuery.query("[rendered]",j.owner.dockedItems.items):j.owner.dockedItems.items,h=k&&k.length&&c!==false,b,m,l,g,d,a;if(n==null){l=h&&!e?k.slice():k}else{l=[];for(g=0,a=k.length;g<a;++g){m=k[g].dock;d=(m=="top"||m=="left");if(n?d:!d){l.push(k[g])}}h=h&&l.length}if(h){b=(c=c||"render")=="render";Ext.Array.sort(l,function(o,i){var p,q;if(b&&((p=j.owner.dockOrder[o.dock])!==(q=j.owner.dockOrder[i.dock]))){if(!(p+q)){return p-q}}p=j.getItemWeight(o,c);q=j.getItemWeight(i,c);if((p!==undefined)&&(q!==undefined)){return p-q}return 0})}return l||[]},getItemWeight:function(b,a){var c=b.weight||this.owner.defaultDockWeights[b.dock];return c[a]||c},getLayoutItems:function(){var e=this,b,g,d,c,a;if(e.owner.collapsed){a=e.owner.getCollapsedDockedItems()}else{b=e.getDockedItems("visual");g=b.length;a=[];for(c=0;c<g;c++){d=b[c];if(!d.hidden){a.push(d)}}}return a},measureContentWidth:function(a){var b=a.bodyContext;return b.el.getWidth()-b.getBorderInfo().width},measureContentHeight:function(a){var b=a.bodyContext;return b.el.getHeight()-b.getBorderInfo().height},redoLayout:function(c){var b=this,a=b.owner;if(c.isCollapsingOrExpanding==1){if(a.reExpander){a.reExpander.el.show()}a.addClsWithUI(a.collapsedCls);c.redo(true)}else{if(c.isCollapsingOrExpanding==2){a.removeClsWithUI(a.collapsedCls);c.bodyContext.redo()}}},renderChildren:function(){var b=this,a=b.getDockedItems(),c=b.getRenderTarget();b.renderItems(a,c)},renderItems:function(k,h){var l=this,c=k.length,a=0,b=0,p=0,m=l.getRenderTarget().dom.childNodes,n=m.length,g,d,e,o;for(g=0,d=0;g<n;g++){e=m[g];if(Ext.fly(e).hasCls("x-resizable-handle")){break}for(d=0;d<c;d++){o=k[d];if(o.rendered&&o.el.dom===e){break}}if(d===c){p++}}for(;a<c;a++,b++){o=k[a];if(a===b&&(o.dock==="right"||o.dock==="bottom")){b+=p}if(o&&!o.rendered){l.renderItem(o,h,b)}else{if(!l.isValidParent(o,h,b)){l.moveItem(o,h,b)}}}},undoLayout:function(c){var b=this,a=b.owner;if(c.isCollapsingOrExpanding==1){if(a.reExpander){a.reExpander.el.hide()}a.removeClsWithUI(a.collapsedCls);c.undo(true)}else{if(c.isCollapsingOrExpanding==2){a.addClsWithUI(a.collapsedCls);c.bodyContext.undo()}}},sizePolicy:{nostretch:{setsWidth:0,setsHeight:0},stretchH:{setsWidth:1,setsHeight:0},stretchV:{setsWidth:0,setsHeight:1},autoStretchH:{readsWidth:1,setsWidth:1,setsHeight:0},autoStretchV:{readsHeight:1,setsWidth:0,setsHeight:1}},getItemSizePolicy:function(c){var d=this.sizePolicy,b,a;if(c.stretch===false){return d.nostretch}b=c.dock;a=(b=="left"||b=="right");if(a){return d.stretchV}return d.stretchH},configureItem:function(a,b){this.callParent(arguments);a.addCls(Ext.baseCSSPrefix+"docked");a.addClsWithUI("docked-"+a.dock)},afterRemove:function(a){this.callParent(arguments);if(this.itemCls){a.el.removeCls(this.itemCls+"-"+a.dock)}var b=a.el.dom;if(!a.destroying&&b){b.parentNode.removeChild(b)}this.childrenChanged=true}});Ext.define("Ext.toolbar.Fill",{extend:"Ext.Component",alias:"widget.tbfill",alternateClassName:"Ext.Toolbar.Fill",isFill:true,flex:1});Ext.define("Ext.layout.container.boxOverflow.None",{alternateClassName:"Ext.layout.boxOverflow.None",constructor:function(b,a){this.layout=b;Ext.apply(this,a)},handleOverflow:Ext.emptyFn,clearOverflow:Ext.emptyFn,beginLayout:Ext.emptyFn,beginLayoutCycle:Ext.emptyFn,finishedLayout:Ext.emptyFn,completeLayout:function(b){var a=this,c=b.state.boxPlan,d;if(c&&c.tooNarrow){d=a.handleOverflow(b);if(d){if(d.reservedSpace){a.layout.publishInnerCtSize(b,d.reservedSpace)}}}else{a.clearOverflow()}},onRemove:Ext.emptyFn,getItem:function(a){return this.layout.owner.getComponent(a)},getOwnerType:function(a){var b;if(a.isToolbar){b="toolbar"}else{if(a.isTabBar){b="tabbar"}else{if(a.isMenu){b="menu"}else{b=a.getXType()}}}return b},getPrefixConfig:Ext.emptyFn,getSuffixConfig:Ext.emptyFn,getOverflowCls:function(){return""}});Ext.define("Ext.toolbar.Item",{extend:"Ext.Component",alias:"widget.tbitem",alternateClassName:"Ext.Toolbar.Item",enable:Ext.emptyFn,disable:Ext.emptyFn,focus:Ext.emptyFn});Ext.define("Ext.toolbar.Separator",{extend:"Ext.toolbar.Item",alias:"widget.tbseparator",alternateClassName:"Ext.Toolbar.Separator",baseCls:Ext.baseCSSPrefix+"toolbar-separator",focusable:false,border:true});Ext.define("Ext.layout.component.Button",{alias:["layout.button"],extend:"Ext.layout.component.Auto",type:"button",cellClsRE:/-btn-(tl|br)\b/,htmlRE:/<.*>/,constructor:function(){this.callParent(arguments);this.hackWidth=Ext.isIE&&(!Ext.isStrict||Ext.isIE6||Ext.isIE7||Ext.isIE8);this.heightIncludesPadding=Ext.isIE6&&Ext.isStrict},beginLayout:function(a){this.callParent(arguments);this.cacheTargetInfo(a)},beginLayoutCycle:function(e){var c=this,d="",a=c.owner,b=a.btnEl,i=a.btnInnerEl,g=a.text,h;c.callParent(arguments);i.setStyle("overflow",d);if(!e.widthModel.natural){a.el.setStyle("width",d)}h=e.heightModel.shrinkWrap&&g&&c.htmlRE.test(g);b.setStyle("width",d);b.setStyle("height",h?"auto":d);i.setStyle("width",d);i.setStyle("height",h?"auto":d);i.setStyle("line-height",h?"normal":d);i.setStyle("padding-top",d);a.btnIconEl.setStyle("width",d)},calculateOwnerHeightFromContentHeight:function(b,a){return a},calculateOwnerWidthFromContentWidth:function(b,a){return a},measureContentWidth:function(c){var i=this,b=i.owner,g=b.btnEl,d=b.btnInnerEl,l=b.text,m,j,h,a,k,e;if(b.text&&i.hackWidth&&g){m=i.btnFrameWidth;if(l.indexOf(">")===-1){l=l.replace(/</g,"<")}j=Ext.util.TextMetrics.measure(d,l);a=j.width+m+i.adjWidth;k=c.getEl("btnEl");e=c.getEl("btnInnerEl");h=(b.icon||b.iconCls)&&(b.iconAlign=="top"||b.iconAlign=="bottom");c.setWidth(a);k.setWidth(j.width+m);e.setWidth(j.width+m);if(h){b.btnIconEl.setWidth(j.width+m)}}else{a=c.el.getWidth()}return a},measureContentHeight:function(d){var j=this,b=j.owner,e=b.btnInnerEl,i=d.getEl("btnEl"),g=d.getEl("btnInnerEl"),c=j.minTextHeight,h=j.adjHeight,m=b.getText(),l,k,a;if(b.vertical){l=Ext.util.TextMetrics.measure(e,b.text).width;l+=j.btnFrameHeight+h;d.setHeight(l,true,true)}else{if(m&&j.htmlRE.test(m)){k=e.getHeight();if(k<c){a=Math.floor((c-k)/2);g.setHeight(c-(j.heightIncludesPadding?a:0));g.setProp("padding-top",a);k=c}l=k+h}else{l=d.el.getHeight()}}i.setHeight(l-h);return l},publishInnerHeight:function(c,m){var j=this,a=j.owner,g=Ext.isNumber,i=c.getEl("btnEl"),d=a.btnInnerEl,h=c.getEl("btnInnerEl"),e=g(m)?m-j.adjHeight:m,b=j.btnFrameHeight,l=a.getText(),k,n;i.setHeight(e);h.setHeight(e);if(!a.vertical&&e>=0){h.setProp("line-height",e-b+"px")}if(l&&j.htmlRE.test(l)){h.setProp("line-height","normal");d.setStyle("line-height","normal");k=Ext.util.TextMetrics.measure(d,l).height;n=Math.floor(Math.max(e-b-k,0)/2);h.setProp("padding-top",j.btnFrameTop+n);h.setHeight(e-(j.heightIncludesPadding?n:0))}},publishInnerWidth:function(g,c){var e=this,h=Ext.isNumber,a=g.getEl("btnEl"),b=g.getEl("btnInnerEl"),d=h(c)?c-e.adjWidth:c;a.setWidth(d);b.setWidth(d)},clearTargetCache:function(){delete this.adjWidth},cacheTargetInfo:function(b){var g=this,a=g.owner,d=a.scale,i,e,j,c,h;if(!("adjWidth" in g)||g.lastScale!==d){if(g.lastScale){a.btnInnerEl.setStyle("line-height","")}g.lastScale=d;i=b.getPaddingInfo();e=b.getFrameInfo();j=b.getEl("btnWrap").getPaddingInfo();c=b.getEl("btnInnerEl");h=c.getPaddingInfo();Ext.apply(g,{adjWidth:j.width+e.width+i.width,adjHeight:j.height+e.height+i.height,btnFrameWidth:h.width,btnFrameHeight:h.height,btnFrameTop:h.top,minTextHeight:parseInt(c.getStyle("line-height"),10)})}g.callParent(arguments)},finishedLayout:function(){var a=this.owner;this.callParent(arguments);if(Ext.isWebKit){a.el.dom.offsetWidth}}});Ext.define("Ext.menu.Manager",{singleton:true,requires:["Ext.util.MixedCollection","Ext.util.KeyMap"],alternateClassName:"Ext.menu.MenuMgr",uses:["Ext.menu.Menu"],menus:{},groups:{},attached:false,lastShow:new Date(),init:function(){var a=this;a.active=new Ext.util.MixedCollection();Ext.getDoc().addKeyListener(27,function(){if(a.active.length>0){a.hideAll()}},a)},hideAll:function(){var c=this.active,e,b,a,d;if(c&&c.length>0){e=c.clone();b=e.items;d=b.length;for(a=0;a<d;a++){b[a].hide()}return true}return false},onHide:function(a){var b=this,c=b.active;c.remove(a);if(c.length<1){Ext.getDoc().un("mousedown",b.onMouseDown,b);b.attached=false}},onShow:function(a){var e=this,g=e.active,d=g.last(),c=e.attached,b=a.getEl(),h;e.lastShow=new Date();g.add(a);if(!c){Ext.getDoc().on("mousedown",e.onMouseDown,e,{buffer:Ext.isIE?10:undefined});e.attached=true}a.toFront()},onBeforeHide:function(a){if(a.activeChild){a.activeChild.hide()}if(a.autoHideTimer){clearTimeout(a.autoHideTimer);delete a.autoHideTimer}},onBeforeShow:function(a){var c=this.active,b=a.parentMenu;c.remove(a);if(!b&&!a.allowOtherMenus){this.hideAll()}else{if(b&&b.activeChild&&a!=b.activeChild){b.activeChild.hide()}}},onMouseDown:function(d){var b=this,c=b.active,a=b.lastShow;if(Ext.Date.getElapsed(a)>50&&c.length>0&&!d.getTarget("."+Ext.baseCSSPrefix+"menu")){b.hideAll()}},register:function(b){var a=this;if(!a.active){a.init()}if(b.floating){a.menus[b.id]=b;b.on({beforehide:a.onBeforeHide,hide:a.onHide,beforeshow:a.onBeforeShow,show:a.onShow,scope:a})}},get:function(b){var a=this.menus;if(typeof b=="string"){if(!a){return null}return a[b]}else{if(b.isMenu){return b}else{if(Ext.isArray(b)){return new Ext.menu.Menu({items:b})}else{return Ext.ComponentManager.create(b,"menu")}}}},unregister:function(d){var a=this,b=a.menus,c=a.active;delete b[d.id];c.remove(d);d.un({beforehide:a.onBeforeHide,hide:a.onHide,beforeshow:a.onBeforeShow,show:a.onShow,scope:a})},registerCheckable:function(c){var a=this.groups,b=c.group;if(b){if(!a[b]){a[b]=[]}a[b].push(c)}},unregisterCheckable:function(c){var a=this.groups,b=c.group;if(b){Ext.Array.remove(a[b],c)}},onCheckChange:function(d,g){var a=this.groups,c=d.group,b=0,j,e,h;if(c&&g){j=a[c];e=j.length;for(;b<e;b++){h=j[b];if(h!=d){h.setChecked(false)}}}}});Ext.define("Ext.util.ClickRepeater",{extend:"Ext.util.Observable",constructor:function(b,a){var c=this;c.el=Ext.get(b);c.el.unselectable();Ext.apply(c,a);c.callParent();c.addEvents("mousedown","click","mouseup");if(!c.disabled){c.disabled=true;c.enable()}if(c.handler){c.on("click",c.handler,c.scope||c)}},interval:20,delay:250,preventDefault:true,stopDefault:false,timer:0,enable:function(){if(this.disabled){this.el.on("mousedown",this.handleMouseDown,this);if(Ext.isIE&&!(Ext.isStrict&&Ext.isIE9)){this.el.on("dblclick",this.handleDblClick,this)}if(this.preventDefault||this.stopDefault){this.el.on("click",this.eventOptions,this)}}this.disabled=false},disable:function(a){if(a||!this.disabled){clearTimeout(this.timer);if(this.pressedCls){this.el.removeCls(this.pressedCls)}Ext.getDoc().un("mouseup",this.handleMouseUp,this);this.el.removeAllListeners()}this.disabled=true},setDisabled:function(a){this[a?"disable":"enable"]()},eventOptions:function(a){if(this.preventDefault){a.preventDefault()}if(this.stopDefault){a.stopEvent()}},destroy:function(){this.disable(true);Ext.destroy(this.el);this.clearListeners()},handleDblClick:function(a){clearTimeout(this.timer);this.el.blur();this.fireEvent("mousedown",this,a);this.fireEvent("click",this,a)},handleMouseDown:function(a){clearTimeout(this.timer);this.el.blur();if(this.pressedCls){this.el.addCls(this.pressedCls)}this.mousedownTime=new Date();Ext.getDoc().on("mouseup",this.handleMouseUp,this);this.el.on("mouseout",this.handleMouseOut,this);this.fireEvent("mousedown",this,a);this.fireEvent("click",this,a);if(this.accelerate){this.delay=400}a=new Ext.EventObjectImpl(a);this.timer=Ext.defer(this.click,this.delay||this.interval,this,[a])},click:function(a){this.fireEvent("click",this,a);this.timer=Ext.defer(this.click,this.accelerate?this.easeOutExpo(Ext.Date.getElapsed(this.mousedownTime),400,-390,12000):this.interval,this,[a])},easeOutExpo:function(e,a,h,g){return(e==g)?a+h:h*(-Math.pow(2,-10*e/g)+1)+a},handleMouseOut:function(){clearTimeout(this.timer);if(this.pressedCls){this.el.removeCls(this.pressedCls)}this.el.on("mouseover",this.handleMouseReturn,this)},handleMouseReturn:function(){this.el.un("mouseover",this.handleMouseReturn,this);if(this.pressedCls){this.el.addCls(this.pressedCls)}this.click()},handleMouseUp:function(a){clearTimeout(this.timer);this.el.un("mouseover",this.handleMouseReturn,this);this.el.un("mouseout",this.handleMouseOut,this);Ext.getDoc().un("mouseup",this.handleMouseUp,this);if(this.pressedCls){this.el.removeCls(this.pressedCls)}this.fireEvent("mouseup",this,a)}});Ext.define("Ext.util.TextMetrics",{statics:{shared:null,measure:function(a,d,e){var b=this,c=b.shared;if(!c){c=b.shared=new b(a,e)}c.bind(a);c.setFixedWidth(e||"auto");return c.getSize(d)},destroy:function(){var a=this;Ext.destroy(a.shared);a.shared=null}},constructor:function(a,c){var b=this.measure=Ext.getBody().createChild({cls:Ext.baseCSSPrefix+"textmetrics"});this.el=Ext.get(a);b.position("absolute");b.setLeftTop(-1000,-1000);b.hide();if(c){b.setWidth(c)}},getSize:function(c){var b=this.measure,a;b.update(c);a=b.getSize();b.update("");return a},bind:function(a){var b=this;b.el=Ext.get(a);b.measure.setStyle(b.el.getStyles("font-size","font-style","font-weight","font-family","line-height","text-transform","letter-spacing"))},setFixedWidth:function(a){this.measure.setWidth(a)},getWidth:function(a){this.measure.dom.style.width="auto";return this.getSize(a).width},getHeight:function(a){return this.getSize(a).height},destroy:function(){var a=this;a.measure.remove();delete a.el;delete a.measure}},function(){Ext.Element.addMethods({getTextWidth:function(c,b,a){return Ext.Number.constrain(Ext.util.TextMetrics.measure(this.dom,Ext.value(c,this.dom.innerHTML,true)).width,b||0,a||1000000)}})});Ext.define("Ext.button.Button",{alias:"widget.button",extend:"Ext.Component",requires:["Ext.menu.Manager","Ext.util.ClickRepeater","Ext.layout.component.Button","Ext.util.TextMetrics","Ext.util.KeyMap"],alternateClassName:"Ext.Button",isButton:true,componentLayout:"button",hidden:false,disabled:false,pressed:false,enableToggle:false,menuAlign:"tl-bl?",textAlign:"center",type:"button",clickEvent:"click",preventDefault:true,handleMouseEvents:true,tooltipType:"qtip",baseCls:Ext.baseCSSPrefix+"btn",pressedCls:"pressed",overCls:"over",focusCls:"focus",menuActiveCls:"menu-active",hrefTarget:"_blank",border:true,childEls:["btnEl","btnWrap","btnInnerEl","btnIconEl"],renderTpl:['<em id="{id}-btnWrap"<tpl if="splitCls"> class="{splitCls}"</tpl>>','<tpl if="href">','<a id="{id}-btnEl" href="{href}" class="{btnCls}" target="{hrefTarget}"','<tpl if="tabIndex"> tabIndex="{tabIndex}"</tpl>','<tpl if="disabled"> disabled="disabled"</tpl>',' role="link">','<span id="{id}-btnInnerEl" class="{baseCls}-inner">',"{text}","</span>",'<span id="{id}-btnIconEl" class="{baseCls}-icon {iconCls}"<tpl if="iconUrl"> style="background-image:url({iconUrl})"</tpl>></span>',"</a>","<tpl else>",'<button id="{id}-btnEl" type="{type}" class="{btnCls}" hidefocus="true"','<tpl if="tabIndex"> tabIndex="{tabIndex}"</tpl>','<tpl if="disabled"> disabled="disabled"</tpl>',' role="button" autocomplete="off">','<span id="{id}-btnInnerEl" class="{baseCls}-inner" style="{innerSpanStyle}">',"{text}","</span>",'<span id="{id}-btnIconEl" class="{baseCls}-icon {iconCls}"<tpl if="iconUrl"> style="background-image:url({iconUrl})"</tpl>></span>',"</button>","</tpl>","</em>",'<tpl if="closable">','<a id="{id}-closeEl" href="#" class="{baseCls}-close-btn" title="{closeText}"></a>',"</tpl>"],scale:"small",allowedScales:["small","medium","large"],iconAlign:"left",arrowAlign:"right",arrowCls:"arrow",maskOnDisable:false,persistentPadding:undefined,shrinkWrap:3,frame:true,initComponent:function(){var a=this;a.callParent(arguments);a.addEvents("click","toggle","mouseover","mouseout","menushow","menuhide","menutriggerover","menutriggerout");if(a.menu){a.split=true;a.menu=Ext.menu.Manager.get(a.menu);a.menu.ownerButton=a}if(a.url){a.href=a.url}if(a.href&&!a.hasOwnProperty("preventDefault")){a.preventDefault=false}if(Ext.isString(a.toggleGroup)&&a.toggleGroup!==""){a.enableToggle=true}if(a.html&&!a.text){a.text=a.html;delete a.html}},getActionEl:function(){return this.btnEl},getFocusEl:function(){return this.useElForFocus?this.el:this.btnEl},onFocus:function(b){var a=this;a.useElForFocus=true;a.callParent(arguments);a.useElForFocus=false},onBlur:function(a){this.useElForFocus=true;this.callParent(arguments);this.useElForFocus=false},onDisable:function(){this.useElForFocus=true;this.callParent(arguments);this.useElForFocus=false},setComponentCls:function(){var b=this,a=b.getComponentCls();if(!Ext.isEmpty(b.oldCls)){b.removeClsWithUI(b.oldCls);b.removeClsWithUI(b.pressedCls)}b.oldCls=a;b.addClsWithUI(a)},getComponentCls:function(){var b=this,a=[];if(b.iconCls||b.icon){if(b.text){a.push("icon-text-"+b.iconAlign)}else{a.push("icon")}}else{if(b.text){a.push("noicon")}}if(b.pressed){a.push(b.pressedCls)}return a},beforeRender:function(){var a=this;a.callParent();a.oldCls=a.getComponentCls();a.addClsWithUI(a.oldCls);Ext.applyIf(a.renderData,a.getTemplateArgs());if(a.scale){a.setScale(a.scale)}},onRender:function(){var c=this,d,a,b;c.doc=Ext.getDoc();c.callParent(arguments);if(c.split&&c.arrowTooltip){c.arrowEl.dom.setAttribute(c.getTipAttr(),c.arrowTooltip)}a=c.el;if(c.tooltip){c.setTooltip(c.tooltip,true)}if(c.handleMouseEvents){b={scope:c,mouseover:c.onMouseOver,mouseout:c.onMouseOut,mousedown:c.onMouseDown};if(c.split){b.mousemove=c.onMouseMove}}else{b={scope:c}}if(c.menu){c.mon(c.menu,{scope:c,show:c.onMenuShow,hide:c.onMenuHide});c.keyMap=new Ext.util.KeyMap({target:c.el,key:Ext.EventObject.DOWN,handler:c.onDownKey,scope:c})}if(c.repeat){c.mon(new Ext.util.ClickRepeater(a,Ext.isObject(c.repeat)?c.repeat:{}),"click",c.onRepeatClick,c)}else{if(b[c.clickEvent]){d=true}else{b[c.clickEvent]=c.onClick}}c.mon(a,b);if(d){c.mon(a,c.clickEvent,c.onClick,c)}Ext.ButtonToggleManager.register(c)},getTemplateArgs:function(){var c=this,b=c.getPersistentPadding(),a="";if(Math.max.apply(Math,b)>0){a="margin:"+Ext.Array.map(b,function(d){return -d+"px"}).join(" ")}return{href:c.getHref(),disabled:c.disabled,hrefTarget:c.hrefTarget,type:c.type,btnCls:c.getBtnCls(),splitCls:c.getSplitCls(),iconUrl:c.icon,iconCls:c.iconCls,text:c.text||" ",tabIndex:c.tabIndex,innerSpanStyle:a}},getHref:function(){var a=this,b=Ext.apply({},a.baseParams);b=Ext.apply(b,a.params);return a.href?Ext.urlAppend(a.href,Ext.Object.toQueryString(b)):false},setParams:function(a){this.params=a;this.btnEl.dom.href=this.getHref()},getSplitCls:function(){var a=this;return a.split?(a.baseCls+"-"+a.arrowCls)+" "+(a.baseCls+"-"+a.arrowCls+"-"+a.arrowAlign):""},getBtnCls:function(){return this.textAlign?this.baseCls+"-"+this.textAlign:""},setIconCls:function(b){var d=this,a=d.btnIconEl,c=d.iconCls;d.iconCls=b;if(a){a.removeCls(c);a.addCls(b||"");d.setComponentCls();if(d.didIconStateChange(c,b)){d.updateLayout()}}return d},setTooltip:function(c,a){var b=this;if(b.rendered){if(!a){b.clearTip()}if(Ext.isObject(c)){Ext.tip.QuickTipManager.register(Ext.apply({target:b.btnEl.id},c));b.tooltip=c}else{b.btnEl.dom.setAttribute(b.getTipAttr(),c)}}else{b.tooltip=c}return b},setTextAlign:function(c){var b=this,a=b.btnEl;if(a){a.removeCls(b.baseCls+"-"+b.textAlign);a.addCls(b.baseCls+"-"+c)}b.textAlign=c;return b},getTipAttr:function(){return this.tooltipType=="qtip"?"data-qtip":"title"},getRefItems:function(a){var c=this.menu,b;if(c){b=c.getRefItems(a);b.unshift(c)}return b||[]},clearTip:function(){if(Ext.isObject(this.tooltip)){Ext.tip.QuickTipManager.unregister(this.btnEl)}},beforeDestroy:function(){var a=this;if(a.rendered){a.clearTip()}if(a.menu&&a.destroyMenu!==false){Ext.destroy(a.menu)}Ext.destroy(a.btnInnerEl,a.repeater);a.callParent()},onDestroy:function(){var a=this;if(a.rendered){a.doc.un("mouseover",a.monitorMouseOver,a);a.doc.un("mouseup",a.onMouseUp,a);delete a.doc;Ext.ButtonToggleManager.unregister(a);Ext.destroy(a.keyMap);delete a.keyMap}a.callParent()},setHandler:function(b,a){this.handler=b;this.scope=a;return this},setText:function(b){var a=this;a.text=b;if(a.rendered){a.btnInnerEl.update(b||" ");a.setComponentCls();if(Ext.isStrict&&Ext.isIE8){a.el.repaint()}a.updateLayout()}return a},setIcon:function(b){var c=this,a=c.btnIconEl,d=c.icon;c.icon=b;if(a){a.setStyle("background-image",b?"url("+b+")":"");c.setComponentCls();if(c.didIconStateChange(d,b)){c.updateLayout()}}return c},didIconStateChange:function(a,c){var b=Ext.isEmpty(c);return Ext.isEmpty(a)?!b:b},getText:function(){return this.text},toggle:function(c,a){var b=this;c=c===undefined?!b.pressed:!!c;if(c!==b.pressed){if(b.rendered){b[c?"addClsWithUI":"removeClsWithUI"](b.pressedCls)}b.pressed=c;if(!a){b.fireEvent("toggle",b,c);Ext.callback(b.toggleHandler,b.scope||b,[b,c])}}return b},maybeShowMenu:function(){var a=this;if(a.menu&&!a.hasVisibleMenu()&&!a.ignoreNextClick){a.showMenu()}},showMenu:function(){var a=this;if(a.rendered&&a.menu){if(a.tooltip&&a.getTipAttr()!="title"){Ext.tip.QuickTipManager.getQuickTip().cancelShow(a.btnEl)}if(a.menu.isVisible()){a.menu.hide()}a.menu.showBy(a.el,a.menuAlign,((!Ext.isStrict&&Ext.isIE)||Ext.isIE6)?[-2,-2]:undefined)}return a},hideMenu:function(){if(this.hasVisibleMenu()){this.menu.hide()}return this},hasVisibleMenu:function(){var a=this.menu;return a&&a.rendered&&a.isVisible()},onRepeatClick:function(a,b){this.onClick(b)},onClick:function(b){var a=this;if(a.preventDefault||(a.disabled&&a.getHref())&&b){b.preventDefault()}if(b.button!==0){return}if(!a.disabled){a.doToggle();a.maybeShowMenu();a.fireHandler(b)}},fireHandler:function(c){var b=this,a=b.handler;if(b.fireEvent("click",b,c)!==false){if(a){a.call(b.scope||b,b,c)}b.blur()}},doToggle:function(){var a=this;if(a.enableToggle&&(a.allowDepress!==false||!a.pressed)){a.toggle()}},onMouseOver:function(b){var a=this;if(!a.disabled&&!b.within(a.el,true,true)){a.onMouseEnter(b)}},onMouseOut:function(b){var a=this;if(!b.within(a.el,true,true)){if(a.overMenuTrigger){a.onMenuTriggerOut(b)}a.onMouseLeave(b)}},onMouseMove:function(h){var d=this,c=d.el,g=d.overMenuTrigger,b,a;if(d.split){if(d.arrowAlign==="right"){b=h.getX()-c.getX();a=c.getWidth()}else{b=h.getY()-c.getY();a=c.getHeight()}if(b>(a-d.getTriggerSize())){if(!g){d.onMenuTriggerOver(h)}}else{if(g){d.onMenuTriggerOut(h)}}}},getTriggerSize:function(){var e=this,c=e.triggerSize,b,a,d;if(c===d){b=e.arrowAlign;a=b.charAt(0);c=e.triggerSize=e.el.getFrameWidth(a)+e.btnWrap.getFrameWidth(a)+e.frameSize[b]}return c},onMouseEnter:function(b){var a=this;a.addClsWithUI(a.overCls);a.fireEvent("mouseover",a,b)},onMouseLeave:function(b){var a=this;a.removeClsWithUI(a.overCls);a.fireEvent("mouseout",a,b)},onMenuTriggerOver:function(b){var a=this;a.overMenuTrigger=true;a.fireEvent("menutriggerover",a,a.menu,b)},onMenuTriggerOut:function(b){var a=this;delete a.overMenuTrigger;a.fireEvent("menutriggerout",a,a.menu,b)},enable:function(a){var b=this;b.callParent(arguments);if(b.btnEl){b.btnEl.dom.disabled=false}b.removeClsWithUI("disabled");return b},disable:function(a){var b=this;b.callParent(arguments);if(b.btnEl){b.btnEl.dom.disabled=true}b.addClsWithUI("disabled");b.removeClsWithUI(b.overCls);if(b.btnInnerEl&&(Ext.isIE6||Ext.isIE7)){b.btnInnerEl.repaint()}return b},setScale:function(c){var a=this,b=a.ui.replace("-"+a.scale,"");if(!Ext.Array.contains(a.allowedScales,c)){throw ("#setScale: scale must be an allowed scale ("+a.allowedScales.join(", ")+")")}a.scale=c;a.setUI(b)},setUI:function(b){var a=this;if(a.scale&&!b.match(a.scale)){b=b+"-"+a.scale}a.callParent([b])},onMouseDown:function(b){var a=this;if(!a.disabled&&b.button===0){a.addClsWithUI(a.pressedCls);a.doc.on("mouseup",a.onMouseUp,a)}},onMouseUp:function(b){var a=this;if(b.button===0){if(!a.pressed){a.removeClsWithUI(a.pressedCls)}a.doc.un("mouseup",a.onMouseUp,a)}},onMenuShow:function(b){var a=this;a.ignoreNextClick=0;a.addClsWithUI(a.menuActiveCls);a.fireEvent("menushow",a,a.menu)},onMenuHide:function(b){var a=this;a.removeClsWithUI(a.menuActiveCls);a.ignoreNextClick=Ext.defer(a.restoreClick,250,a);a.fireEvent("menuhide",a,a.menu)},restoreClick:function(){this.ignoreNextClick=0},onDownKey:function(){var a=this;if(!a.disabled){if(a.menu){a.showMenu()}}},getPersistentPadding:function(){var g=this,e=Ext.scopeResetCSS,h=g.persistentPadding,b,a,d,i,c;if(!h){h=g.self.prototype.persistentPadding=[0,0,0,0];if(!Ext.isIE){b=new Ext.button.Button({text:"test",style:"position:absolute;top:-999px;"});b.el=Ext.DomHelper.append(Ext.resetElement,b.getRenderTree(),true);b.applyChildEls(b.el);d=b.btnEl;i=b.btnInnerEl;d.setSize(null,null);a=i.getOffsetsTo(d);h[0]=a[1];h[1]=d.getWidth()-i.getWidth()-a[0];h[2]=d.getHeight()-i.getHeight()-a[1];h[3]=a[0];b.destroy();b.el.remove()}}return h}},function(){var a={},b=function(d,j){if(j){var h=a[d.toggleGroup],e=h.length,c;for(c=0;c<e;c++){if(h[c]!==d){h[c].toggle(false)}}}};Ext.ButtonToggleManager={register:function(c){if(!c.toggleGroup){return}var d=a[c.toggleGroup];if(!d){d=a[c.toggleGroup]=[]}d.push(c);c.on("toggle",b)},unregister:function(c){if(!c.toggleGroup){return}var d=a[c.toggleGroup];if(d){Ext.Array.remove(d,c);c.un("toggle",b)}},getPressed:function(h){var e=a[h],d=0,c;if(e){for(c=e.length;d<c;d++){if(e[d].pressed===true){return e[d]}}}return null}}});Ext.define("Ext.layout.container.boxOverflow.Menu",{extend:"Ext.layout.container.boxOverflow.None",requires:["Ext.toolbar.Separator","Ext.button.Button"],alternateClassName:"Ext.layout.boxOverflow.Menu",noItemsMenuText:'<div class="'+Ext.baseCSSPrefix+'toolbar-no-items">(None)</div>',constructor:function(b){var a=this;a.callParent(arguments);a.triggerButtonCls=a.triggerButtonCls||Ext.baseCSSPrefix+"box-menu-"+b.getNames().right;a.menuItems=[]},beginLayout:function(a){this.callParent(arguments);this.clearOverflow(a)},beginLayoutCycle:function(b,a){this.callParent(arguments);if(!a){this.clearOverflow(b);this.layout.cacheChildItems(b)}},onRemove:function(a){Ext.Array.remove(this.menuItems,a)},getSuffixConfig:function(){var c=this,b=c.layout,a=b.owner.id;c.menu=new Ext.menu.Menu({listeners:{scope:c,beforeshow:c.beforeMenuShow}});c.menuTrigger=new Ext.button.Button({id:a+"-menu-trigger",cls:Ext.layout.container.Box.prototype.innerCls+" "+c.triggerButtonCls,hidden:true,ownerCt:b.owner,ownerLayout:b,iconCls:Ext.baseCSSPrefix+c.getOwnerType(b.owner)+"-more-icon",ui:b.owner instanceof Ext.toolbar.Toolbar?"default-toolbar":"default",menu:c.menu,getSplitCls:function(){return""}});return c.menuTrigger.getRenderTree()},getOverflowCls:function(){return Ext.baseCSSPrefix+this.layout.direction+"-box-overflow-body"},handleOverflow:function(d){var c=this,b=c.layout,g=b.getNames(),e=d.state.boxPlan,a=[null,null];c.showTrigger(d);a[g.heightIndex]=(e.maxSize-c.menuTrigger[g.getHeight]())/2;c.menuTrigger.setPosition.apply(c.menuTrigger,a);return{reservedSpace:c.menuTrigger[g.getWidth]()}},captureChildElements:function(){var a=this.menuTrigger;if(a.rendering){a.finishRender()}},_asLayoutRoot:{isRoot:true},clearOverflow:function(h){var g=this,b=g.menuItems,e,c=0,d=b.length,a=g.layout.owner,j=g._asLayoutRoot;a.suspendLayouts();g.captureChildElements();g.hideTrigger();a.resumeLayouts();for(;c<d;c++){e=b[c];e.suspendLayouts();e.show();e.resumeLayouts(j)}b.length=0},showTrigger:function(c){var o=this,k=o.layout,a=k.owner,n=k.getNames(),r=n.x,e=n.width,p=c.state.boxPlan,b=p.targetSize[e],h=c.childItems,l=h.length,g=o.menuTrigger,q,j,d,m;g.suspendLayouts();g.show();g.resumeLayouts(o._asLayoutRoot);b-=o.menuTrigger.getWidth();a.suspendLayouts();o.menuItems.length=0;for(d=0;d<l;d++){q=h[d];m=q.props;if(m[r]+m[e]>b){j=q.target;o.menuItems.push(j);j.hide()}}a.resumeLayouts()},hideTrigger:function(){var a=this.menuTrigger;if(a){a.hide()}},beforeMenuShow:function(j){var h=this,b=h.menuItems,d=0,a=b.length,g,e,c=function(k,i){return k.isXType("buttongroup")&&!(i instanceof Ext.toolbar.Separator)};j.suspendLayouts();h.clearMenu();j.removeAll();for(;d<a;d++){g=b[d];if(!d&&(g instanceof Ext.toolbar.Separator)){continue}if(e&&(c(g,e)||c(e,g))){j.add("-")}h.addComponentToMenu(j,g);e=g}if(j.items.length<1){j.add(h.noItemsMenuText)}j.resumeLayouts()},createMenuConfig:function(c,a){var b=Ext.apply({},c.initialConfig),d=c.toggleGroup;Ext.copyTo(b,c,["iconCls","icon","itemId","disabled","handler","scope","menu"]);Ext.apply(b,{text:c.overflowText||c.text,hideOnClick:a,destroyMenu:false});if(c.isFormField){b.value=c.getValue();if(!b.listeners){b.listeners={}}b.listeners.change=function(h,g,e){c.setValue(g)}}else{if(d||c.enableToggle){Ext.apply(b,{iconAlign:"right",hideOnClick:false,group:d,checked:c.pressed,listeners:{checkchange:function(g,e){c.toggle(e)}}})}}delete b.ownerCt;delete b.xtype;delete b.id;return b},addComponentToMenu:function(g,c){var e=this,d,b,a;if(c instanceof Ext.toolbar.Separator){g.add("-")}else{if(c.isComponent){if(c.isXType("splitbutton")){g.add(e.createMenuConfig(c,true))}else{if(c.isXType("button")){g.add(e.createMenuConfig(c,!c.menu))}else{if(c.isXType("buttongroup")){b=c.items.items;a=b.length;for(d=0;d<a;d++){e.addComponentToMenu(g,b[d])}}else{g.add(Ext.create(Ext.getClassName(c),e.createMenuConfig(c)))}}}}}},clearMenu:function(){var e=this.menu,b,c,a,d;if(e&&e.items){b=e.items.items;a=b.length;for(c=0;c<a;c++){d=b[c];if(d.setMenu){d.setMenu(null)}}}},destroy:function(){var a=this.menuTrigger;if(a&&!this.layout.owner.items.contains(a)){delete a.ownerCt}Ext.destroy(this.menu,a)}});Ext.define("Ext.layout.container.boxOverflow.Scroller",{extend:"Ext.layout.container.boxOverflow.None",requires:["Ext.util.ClickRepeater","Ext.Element"],alternateClassName:"Ext.layout.boxOverflow.Scroller",mixins:{observable:"Ext.util.Observable"},animateScroll:false,scrollIncrement:20,wheelIncrement:10,scrollRepeatInterval:60,scrollDuration:400,scrollerCls:Ext.baseCSSPrefix+"box-scroller",constructor:function(c,a){var b=this;b.layout=c;Ext.apply(b,a||{});b.mixins.observable.constructor.call(b);b.addEvents("scroll");b.scrollPosition=0;b.scrollSize=0},getPrefixConfig:function(){var a=this;a.initCSSClasses();return{cls:Ext.layout.container.Box.prototype.innerCls+" "+a.beforeCtCls,cn:{id:a.layout.owner.id+"-before-scroller",cls:a.scrollerCls+" "+a.beforeScrollerCls,style:"display:none"}}},getSuffixConfig:function(){var a=this;return{cls:Ext.layout.container.Box.prototype.innerCls+" "+a.afterCtCls,cn:{id:a.layout.owner.id+"-after-scroller",cls:a.scrollerCls+" "+a.afterScrollerCls,style:"display:none"}}},getOverflowCls:function(){return Ext.baseCSSPrefix+this.layout.direction+"-box-overflow-body"},initCSSClasses:function(){var d=this,e=Ext.baseCSSPrefix,c=d.layout,g=c.getNames(),a=g.left,h=g.right,b=d.getOwnerType(c.owner);d.beforeCtCls=d.beforeCtCls||e+"box-scroller-"+a;d.afterCtCls=d.afterCtCls||e+"box-scroller-"+h;d.beforeScrollerCls=d.beforeScrollerCls||e+b+"-scroll-"+a;d.afterScrollerCls=d.afterScrollerCls||e+b+"-scroll-"+h},beginLayout:function(b){var a=this.layout,c=a.getNames();b.innerCtScrollPos=a.innerCt.dom["scroll"+c.leftCap];this.callParent(arguments)},completeLayout:function(a){this.scrollSize=a.props["content"+this.layout.getNames().widthCap];this.callParent(arguments)},finishedLayout:function(c){var b=this,a=b.layout,d=a.getNames(),e=Math.min(b.getMaxScrollPosition(),c.innerCtScrollPos);a.innerCt.dom["scroll"+d.leftCap]=e},handleOverflow:function(d){var c=this,b=c.layout,e=b.getNames(),a="get"+e.widthCap;c.captureChildElements();c.showScrollers();return{reservedSpace:c.beforeCt[a]()+c.afterCt[a]()}},captureChildElements:function(){var b=this,a=b.layout.owner.el,c,d;if(!b.beforeCt){c=b.beforeScroller=a.getById(b.layout.owner.id+"-before-scroller");d=b.afterScroller=a.getById(b.layout.owner.id+"-after-scroller");b.beforeCt=c.up("");b.afterCt=d.up("");b.createWheelListener();c.addClsOnOver(b.beforeScrollerCls+"-hover");d.addClsOnOver(b.afterScrollerCls+"-hover");c.setVisibilityMode(Ext.Element.DISPLAY);d.setVisibilityMode(Ext.Element.DISPLAY);b.beforeRepeater=new Ext.util.ClickRepeater(c,{interval:b.scrollRepeatInterval,handler:b.scrollLeft,scope:b});b.afterRepeater=new Ext.util.ClickRepeater(d,{interval:b.scrollRepeatInterval,handler:b.scrollRight,scope:b})}},createWheelListener:function(){this.layout.innerCt.on({mousewheel:function(a){this.scrollBy(a.getWheelDelta()*this.wheelIncrement*-1,false)},stopEvent:true,scope:this})},clearOverflow:function(){var a=this.layout;this.hideScrollers()},showScrollers:function(){var a=this;a.captureChildElements();a.beforeScroller.show();a.afterScroller.show();a.updateScrollButtons();a.layout.owner.addClsWithUI("scroller")},hideScrollers:function(){var a=this;if(a.beforeScroller!==undefined){a.beforeScroller.hide();a.afterScroller.hide();a.layout.owner.removeClsWithUI("scroller")}},destroy:function(){var a=this;Ext.destroy(a.beforeRepeater,a.afterRepeater,a.beforeScroller,a.afterScroller,a.beforeCt,a.afterCt)},scrollBy:function(b,a){this.scrollTo(this.getScrollPosition()+b,a)},getScrollAnim:function(){return{duration:this.scrollDuration,callback:this.updateScrollButtons,scope:this}},updateScrollButtons:function(){var d=this,e,c,a,b;if(d.beforeScroller===undefined||d.afterScroller===undefined){return}e=d.atExtremeBefore()?"addCls":"removeCls";c=d.atExtremeAfter()?"addCls":"removeCls";a=d.beforeScrollerCls+"-disabled";b=d.afterScrollerCls+"-disabled";d.beforeScroller[e](a);d.afterScroller[c](b);d.scrolling=false},atExtremeBefore:function(){return !this.getScrollPosition()},scrollLeft:function(){this.scrollBy(-this.scrollIncrement,false)},scrollRight:function(){this.scrollBy(this.scrollIncrement,false)},getScrollPosition:function(){var c=this,b=c.layout,a;if(c.hasOwnProperty("scrollPosition")){a=c.scrollPosition}else{a=parseInt(b.innerCt.dom["scroll"+b.getNames().leftCap],10)||0}return a},getMaxScrollPosition:function(){var b=this,a=b.layout,c=a.getNames(),d=b.scrollSize-a.innerCt["get"+c.widthCap]();return(d<0)?0:d},atExtremeAfter:function(){return this.getScrollPosition()>=this.getMaxScrollPosition()},scrollTo:function(a,b){var g=this,e=g.layout,h=e.getNames(),d=g.getScrollPosition(),c=Ext.Number.constrain(a,0,g.getMaxScrollPosition());if(c!=d&&!g.scrolling){delete g.scrollPosition;if(b===undefined){b=g.animateScroll}e.innerCt.scrollTo(h.left,c,b?g.getScrollAnim():false);if(b){g.scrolling=true}else{g.updateScrollButtons()}g.fireEvent("scroll",g,c,b?g.getScrollAnim():false)}},scrollToItem:function(h,b){var g=this,e=g.layout,i=e.getNames(),a,d,c;h=g.getItem(h);if(h!==undefined){a=g.getItemVisibility(h);if(!a.fullyVisible){d=h.getBox(true,true);c=d[i.x];if(a.hiddenEnd){c-=(g.layout.innerCt["get"+i.widthCap]()-d[i.width])}g.scrollTo(c,b)}}},getItemVisibility:function(j){var h=this,b=h.getItem(j).getBox(true,true),c=h.layout,g=c.getNames(),e=b[g.x],d=e+b[g.width],a=h.getScrollPosition(),i=a+c.innerCt["get"+g.widthCap]();return{hiddenStart:e<a,hiddenEnd:d>i,fullyVisible:e>a&&d<i}}});Ext.define("Ext.util.Offset",{statics:{fromObject:function(a){return new this(a.x,a.y)}},constructor:function(a,b){this.x=(a!=null&&!isNaN(a))?a:0;this.y=(b!=null&&!isNaN(b))?b:0;return this},copy:function(){return new Ext.util.Offset(this.x,this.y)},copyFrom:function(a){this.x=a.x;this.y=a.y},toString:function(){return"Offset["+this.x+","+this.y+"]"},equals:function(a){return(this.x==a.x&&this.y==a.y)},round:function(b){if(!isNaN(b)){var a=Math.pow(10,b);this.x=Math.round(this.x*a)/a;this.y=Math.round(this.y*a)/a}else{this.x=Math.round(this.x);this.y=Math.round(this.y)}},isZero:function(){return this.x==0&&this.y==0}});Ext.define("Ext.util.Region",{requires:["Ext.util.Offset"],statics:{getRegion:function(a){return Ext.fly(a).getPageBox(true)},from:function(a){return new this(a.top,a.right,a.bottom,a.left)}},constructor:function(d,g,a,c){var e=this;e.y=e.top=e[1]=d;e.right=g;e.bottom=a;e.x=e.left=e[0]=c},contains:function(b){var a=this;return(b.x>=a.x&&b.right<=a.right&&b.y>=a.y&&b.bottom<=a.bottom)},intersect:function(h){var g=this,d=Math.max(g.y,h.y),e=Math.min(g.right,h.right),a=Math.min(g.bottom,h.bottom),c=Math.max(g.x,h.x);if(a>d&&e>c){return new this.self(d,e,a,c)}else{return false}},union:function(h){var g=this,d=Math.min(g.y,h.y),e=Math.max(g.right,h.right),a=Math.max(g.bottom,h.bottom),c=Math.min(g.x,h.x);return new this.self(d,e,a,c)},constrainTo:function(b){var a=this,c=Ext.Number.constrain;a.top=a.y=c(a.top,b.y,b.bottom);a.bottom=c(a.bottom,b.y,b.bottom);a.left=a.x=c(a.left,b.x,b.right);a.right=c(a.right,b.x,b.right);return a},adjust:function(d,g,a,c){var e=this;e.top=e.y+=d;e.left=e.x+=c;e.right+=g;e.bottom+=a;return e},getOutOfBoundOffset:function(a,b){if(!Ext.isObject(a)){if(a=="x"){return this.getOutOfBoundOffsetX(b)}else{return this.getOutOfBoundOffsetY(b)}}else{b=a;var c=new Ext.util.Offset();c.x=this.getOutOfBoundOffsetX(b.x);c.y=this.getOutOfBoundOffsetY(b.y);return c}},getOutOfBoundOffsetX:function(a){if(a<=this.x){return this.x-a}else{if(a>=this.right){return this.right-a}}return 0},getOutOfBoundOffsetY:function(a){if(a<=this.y){return this.y-a}else{if(a>=this.bottom){return this.bottom-a}}return 0},isOutOfBound:function(a,b){if(!Ext.isObject(a)){if(a=="x"){return this.isOutOfBoundX(b)}else{return this.isOutOfBoundY(b)}}else{b=a;return(this.isOutOfBoundX(b.x)||this.isOutOfBoundY(b.y))}},isOutOfBoundX:function(a){return(a<this.x||a>this.right)},isOutOfBoundY:function(a){return(a<this.y||a>this.bottom)},restrict:function(b,d,a){if(Ext.isObject(b)){var c;a=d;d=b;if(d.copy){c=d.copy()}else{c={x:d.x,y:d.y}}c.x=this.restrictX(d.x,a);c.y=this.restrictY(d.y,a);return c}else{if(b=="x"){return this.restrictX(d,a)}else{return this.restrictY(d,a)}}},restrictX:function(b,a){if(!a){a=1}if(b<=this.x){b-=(b-this.x)*a}else{if(b>=this.right){b-=(b-this.right)*a}}return b},restrictY:function(b,a){if(!a){a=1}if(b<=this.y){b-=(b-this.y)*a}else{if(b>=this.bottom){b-=(b-this.bottom)*a}}return b},getSize:function(){return{width:this.right-this.x,height:this.bottom-this.y}},copy:function(){return new this.self(this.y,this.right,this.bottom,this.x)},copyFrom:function(b){var a=this;a.top=a.y=a[1]=b.y;a.right=b.right;a.bottom=b.bottom;a.left=a.x=a[0]=b.x;return this},toString:function(){return"Region["+this.top+","+this.right+","+this.bottom+","+this.left+"]"},translateBy:function(a,c){if(arguments.length==1){c=a.y;a=a.x}var b=this;b.top=b.y+=c;b.right+=a;b.bottom+=c;b.left=b.x+=a;return b},round:function(){var a=this;a.top=a.y=Math.round(a.y);a.right=Math.round(a.right);a.bottom=Math.round(a.bottom);a.left=a.x=Math.round(a.x);return a},equals:function(a){return(this.top==a.top&&this.right==a.right&&this.bottom==a.bottom&&this.left==a.left)}});Ext.define("Ext.dd.DragDropManager",{singleton:true,requires:["Ext.util.Region"],uses:["Ext.tip.QuickTipManager"],alternateClassName:["Ext.dd.DragDropMgr","Ext.dd.DDM"],ids:{},handleIds:{},dragCurrent:null,dragOvers:{},deltaX:0,deltaY:0,preventDefault:true,stopPropagation:true,initialized:false,locked:false,init:function(){this.initialized=true},POINT:0,INTERSECT:1,mode:0,notifyOccluded:false,_execOnAll:function(c,b){var d,a,e;for(d in this.ids){for(a in this.ids[d]){e=this.ids[d][a];if(!this.isTypeOfDD(e)){continue}e[c].apply(e,b)}}},_onLoad:function(){this.init();var a=Ext.EventManager;a.on(document,"mouseup",this.handleMouseUp,this,true);a.on(document,"mousemove",this.handleMouseMove,this,true);a.on(window,"unload",this._onUnload,this,true);a.on(window,"resize",this._onResize,this,true)},_onResize:function(a){this._execOnAll("resetConstraints",[])},lock:function(){this.locked=true},unlock:function(){this.locked=false},isLocked:function(){return this.locked},locationCache:{},useCache:true,clickPixelThresh:3,clickTimeThresh:350,dragThreshMet:false,clickTimeout:null,startX:0,startY:0,regDragDrop:function(b,a){if(!this.initialized){this.init()}if(!this.ids[a]){this.ids[a]={}}this.ids[a][b.id]=b},removeDDFromGroup:function(c,a){if(!this.ids[a]){this.ids[a]={}}var b=this.ids[a];if(b&&b[c.id]){delete b[c.id]}},_remove:function(b){for(var a in b.groups){if(a&&this.ids[a]&&this.ids[a][b.id]){delete this.ids[a][b.id]}}delete this.handleIds[b.id]},regHandle:function(b,a){if(!this.handleIds[b]){this.handleIds[b]={}}this.handleIds[b][a]=a},isDragDrop:function(a){return(this.getDDById(a))?true:false},getRelated:function(g,b){var e=[],d,c,a;for(d in g.groups){for(c in this.ids[d]){a=this.ids[d][c];if(!this.isTypeOfDD(a)){continue}if(!b||a.isTarget){e[e.length]=a}}}return e},isLegalTarget:function(e,d){var b=this.getRelated(e,true),c,a;for(c=0,a=b.length;c<a;++c){if(b[c].id==d.id){return true}}return false},isTypeOfDD:function(a){return(a&&a.__ygDragDrop)},isHandle:function(b,a){return(this.handleIds[b]&&this.handleIds[b][a])},getDDById:function(d){var c=this,b,a;for(b in this.ids){a=this.ids[b][d];if(a instanceof Ext.dd.DDTarget){return a}}return null},handleMouseDown:function(c,b){if(Ext.tip.QuickTipManager){Ext.tip.QuickTipManager.ddDisable()}if(this.dragCurrent){this.handleMouseUp(c)}this.currentTarget=c.getTarget();this.dragCurrent=b;var a=b.getEl();if(Ext.isIE&&a.setCapture){a.setCapture()}this.startX=c.getPageX();this.startY=c.getPageY();this.deltaX=this.startX-a.offsetLeft;this.deltaY=this.startY-a.offsetTop;this.dragThreshMet=false;this.clickTimeout=setTimeout(function(){var d=Ext.dd.DragDropManager;d.startDrag(d.startX,d.startY)},this.clickTimeThresh)},startDrag:function(a,b){clearTimeout(this.clickTimeout);if(this.dragCurrent){this.dragCurrent.b4StartDrag(a,b);this.dragCurrent.startDrag(a,b)}this.dragThreshMet=true},handleMouseUp:function(b){var a=this.dragCurrent;if(Ext.tip&&Ext.tip.QuickTipManager){Ext.tip.QuickTipManager.ddEnable()}if(!a){return}if(Ext.isIE&&document.releaseCapture){document.releaseCapture()}clearTimeout(this.clickTimeout);if(this.dragThreshMet){this.fireEvents(b,true)}this.stopDrag(b);this.stopEvent(b)},stopEvent:function(a){if(this.stopPropagation){a.stopPropagation()}if(this.preventDefault){a.preventDefault()}},stopDrag:function(a){if(this.dragCurrent){if(this.dragThreshMet){this.dragCurrent.b4EndDrag(a);this.dragCurrent.endDrag(a)}this.dragCurrent.onMouseUp(a)}this.dragCurrent=null;this.dragOvers={}},handleMouseMove:function(d){var c=this,b,a;if(!c.dragCurrent){return true}if(!c.dragThreshMet){b=Math.abs(c.startX-d.getPageX());a=Math.abs(c.startY-d.getPageY());if(b>c.clickPixelThresh||a>c.clickPixelThresh){c.startDrag(c.startX,c.startY)}}if(c.dragThreshMet){c.dragCurrent.b4Drag(d);c.dragCurrent.onDrag(d);if(!c.dragCurrent.moveOnly){c.fireEvents(d,false)}}c.stopEvent(d);return true},fireEvents:function(n,q){var p=this,k=p.dragCurrent,r=n.getPoint(),b,t,d=[],a=[],g=[],l=[],j=[],c=[],o,h,m,s;if(!k||k.isLocked()){return}for(h in p.dragOvers){b=p.dragOvers[h];if(!p.isTypeOfDD(b)){continue}if(!this.isOverTarget(r,b,p.mode)){g.push(b)}a[h]=true;delete p.dragOvers[h]}for(s in k.groups){if("string"!=typeof s){continue}for(h in p.ids[s]){b=p.ids[s][h];if(p.isTypeOfDD(b)&&(t=b.getEl())&&(b.isTarget)&&(!b.isLocked())&&(Ext.fly(t).isVisible(true))&&((b!=k)||(k.ignoreSelf===false))){if((b.zIndex=p.getZIndex(t))!==-1){o=true}d.push(b)}}}if(o){Ext.Array.sort(d,p.byZIndex)}for(h=0,m=d.length;h<m;h++){b=d[h];if(p.isOverTarget(r,b,p.mode)){if(q){j.push(b)}else{if(!a[b.id]){c.push(b)}else{l.push(b)}p.dragOvers[b.id]=b}if(!p.notifyOccluded){break}}}if(p.mode){if(g.length){k.b4DragOut(n,g);k.onDragOut(n,g)}if(c.length){k.onDragEnter(n,c)}if(l.length){k.b4DragOver(n,l);k.onDragOver(n,l)}if(j.length){k.b4DragDrop(n,j);k.onDragDrop(n,j)}}else{for(h=0,m=g.length;h<m;++h){k.b4DragOut(n,g[h].id);k.onDragOut(n,g[h].id)}for(h=0,m=c.length;h<m;++h){k.onDragEnter(n,c[h].id)}for(h=0,m=l.length;h<m;++h){k.b4DragOver(n,l[h].id);k.onDragOver(n,l[h].id)}for(h=0,m=j.length;h<m;++h){k.b4DragDrop(n,j[h].id);k.onDragDrop(n,j[h].id)}}if(q&&!j.length){k.onInvalidDrop(n)}},getZIndex:function(b){var a=document.body,c,d=-1;b=Ext.getDom(b);while(b!==a){if(!isNaN(c=Number(Ext.fly(b).getStyle("zIndex")))){d=c}b=b.parentNode}return d},byZIndex:function(b,a){return b.zIndex<a.zIndex},getBestMatch:function(c){var e=null,b=c.length,d,a;if(b==1){e=c[0]}else{for(d=0;d<b;++d){a=c[d];if(a.cursorIsOver){e=a;break}else{if(!e||e.overlap.getArea()<a.overlap.getArea()){e=a}}}}return e},refreshCache:function(b){var a,c,d,e;for(a in b){if("string"!=typeof a){continue}for(c in this.ids[a]){d=this.ids[a][c];if(this.isTypeOfDD(d)){e=this.getLocation(d);if(e){this.locationCache[d.id]=e}else{delete this.locationCache[d.id]}}}}},verifyEl:function(b){if(b){var a;if(Ext.isIE){try{a=b.offsetParent}catch(c){}}else{a=b.offsetParent}if(a){return true}}return false},getLocation:function(i){if(!this.isTypeOfDD(i)){return null}if(i.getRegion){return i.getRegion()}var g=i.getEl(),m,d,c,o,n,p,a,k,h;try{m=Ext.Element.getXY(g)}catch(j){}if(!m){return null}d=m[0];c=d+g.offsetWidth;o=m[1];n=o+g.offsetHeight;p=o-i.padding[0];a=c+i.padding[1];k=n+i.padding[2];h=d-i.padding[3];return new Ext.util.Region(p,a,k,h)},isOverTarget:function(j,a,c){var e=this.locationCache[a.id],i,g,b,d,h;if(!e||!this.useCache){e=this.getLocation(a);this.locationCache[a.id]=e}if(!e){return false}a.cursorIsOver=e.contains(j);i=this.dragCurrent;if(!i||!i.getTargetCoord||(!c&&!i.constrainX&&!i.constrainY)){return a.cursorIsOver}a.overlap=null;g=i.getTargetCoord(j.x,j.y);b=i.getDragEl();d=new Ext.util.Region(g.y,g.x+b.offsetWidth,g.y+b.offsetHeight,g.x);h=d.intersect(e);if(h){a.overlap=h;return(c)?true:a.cursorIsOver}else{return false}},_onUnload:function(b,a){Ext.dd.DragDropManager.unregAll()},unregAll:function(){if(this.dragCurrent){this.stopDrag();this.dragCurrent=null}this._execOnAll("unreg",[]);for(var a in this.elementCache){delete this.elementCache[a]}this.elementCache={};this.ids={}},elementCache:{},getElWrapper:function(b){var a=this.elementCache[b];if(!a||!a.el){a=this.elementCache[b]=new this.ElementWrapper(Ext.getDom(b))}return a},getElement:function(a){return Ext.getDom(a)},getCss:function(b){var a=Ext.getDom(b);return(a)?a.style:null},ElementWrapper:function(a){this.el=a||null;this.id=this.el&&a.id;this.css=this.el&&a.style},getPosX:function(a){return Ext.Element.getX(a)},getPosY:function(a){return Ext.Element.getY(a)},swapNode:function(c,a){if(c.swapNode){c.swapNode(a)}else{var d=a.parentNode,b=a.nextSibling;if(b==c){d.insertBefore(c,a)}else{if(a==c.nextSibling){d.insertBefore(a,c)}else{c.parentNode.replaceChild(a,c);d.insertBefore(c,b)}}}},getScroll:function(){var d=window.document,e=d.documentElement,a=d.body,c=0,b=0;if(Ext.isGecko4){c=window.scrollYOffset;b=window.scrollXOffset}else{if(e&&(e.scrollTop||e.scrollLeft)){c=e.scrollTop;b=e.scrollLeft}else{if(a){c=a.scrollTop;b=a.scrollLeft}}}return{top:c,left:b}},getStyle:function(b,a){return Ext.fly(b).getStyle(a)},getScrollTop:function(){return this.getScroll().top},getScrollLeft:function(){return this.getScroll().left},moveToEl:function(a,c){var b=Ext.Element.getXY(c);Ext.Element.setXY(a,b)},numericSort:function(d,c){return(d-c)},_timeoutCount:0,_addListeners:function(){if(document){this._onLoad()}else{if(this._timeoutCount<=2000){setTimeout(this._addListeners,10);if(document&&document.body){this._timeoutCount+=1}}}},handleWasClicked:function(a,c){if(this.isHandle(c,a.id)){return true}else{var b=a.parentNode;while(b){if(this.isHandle(c,b.id)){return true}else{b=b.parentNode}}}return false}},function(){this._addListeners()});Ext.define("Ext.layout.container.Box",{alias:["layout.box"],extend:"Ext.layout.container.Container",alternateClassName:"Ext.layout.BoxLayout",requires:["Ext.layout.container.boxOverflow.None","Ext.layout.container.boxOverflow.Menu","Ext.layout.container.boxOverflow.Scroller","Ext.util.Format","Ext.dd.DragDropManager"],defaultMargins:{top:0,right:0,bottom:0,left:0},padding:0,pack:"start",flex:undefined,stretchMaxPartner:undefined,type:"box",scrollOffset:0,itemCls:Ext.baseCSSPrefix+"box-item",targetCls:Ext.baseCSSPrefix+"box-layout-ct",innerCls:Ext.baseCSSPrefix+"box-inner",availableSpaceOffset:0,reserveOffset:true,manageMargins:true,childEls:["innerCt","targetEl"],renderTpl:["{%var oc,l=values.$comp.layout,oh=l.overflowHandler;","if (oh.getPrefixConfig!==Ext.emptyFn) {","if(oc=oh.getPrefixConfig())dh.generateMarkup(oc, out)","}%}",'<div id="{ownerId}-innerCt" class="{[l.innerCls]} {[oh.getOverflowCls()]}" role="presentation">','<div id="{ownerId}-targetEl" style="position:absolute;',"width:20000px;","left:0px;top:0px;",'height:1px">',"{%this.renderBody(out, values)%}","</div>","</div>","{%if (oh.getSuffixConfig!==Ext.emptyFn) {","if(oc=oh.getSuffixConfig())dh.generateMarkup(oc, out)","}%}",{disableFormats:true,definitions:"var dh=Ext.DomHelper;"}],constructor:function(a){var c=this,b;c.callParent(arguments);c.flexSortFn=Ext.Function.bind(c.flexSort,c);c.initOverflowHandler();b=typeof c.padding;if(b=="string"||b=="number"){c.padding=Ext.util.Format.parseBox(c.padding);c.padding.height=c.padding.top+c.padding.bottom;c.padding.width=c.padding.left+c.padding.right}},getNames:function(){return this.names},_percentageRe:/^\s*(\d+(?:\.\d*)?)\s*[%]\s*$/,getItemSizePolicy:function(m,n){var j=this,h=j.sizePolicy,g=j.align,e=m.flex,k=g,i=j.names,a=m[i.width],l=m[i.height],c=j._percentageRe,b=c.test(a),d=(g=="stretch");if((d||e||b)&&!n){n=j.owner.getSizeModel()}if(d){if(!c.test(l)&&n[i.height].shrinkWrap){k="stretchmax"}}else{if(g!="stretchmax"){if(c.test(l)){k="stretch"}else{k=""}}}if(e||b){if(!n[i.width].shrinkWrap){h=h.flex}}return h[k]},flexSort:function(d,c){var e=this.getNames().maxWidth,g=Infinity;d=d.target[e]||g;c=c.target[e]||g;if(!isFinite(d)&&!isFinite(c)){return 0}return d-c},isItemBoxParent:function(a){return true},isItemShrinkWrap:function(a){return true},minSizeSortFn:function(d,c){return c.available-d.available},roundFlex:function(a){return Math.ceil(a)},beginCollapse:function(b){var a=this;if(a.direction==="vertical"&&b.collapsedVertical()){b.collapseMemento.capture(["flex"]);delete b.flex}else{if(a.direction==="horizontal"&&b.collapsedHorizontal()){b.collapseMemento.capture(["flex"]);delete b.flex}}},beginExpand:function(a){a.collapseMemento.restore(["flex"])},beginLayout:function(c){var b=this,e=b.owner.stretchMaxPartner,a=b.innerCt.dom.style,d=b.getNames();c.boxNames=d;b.overflowHandler.beginLayout(c);if(typeof e==="string"){e=Ext.getCmp(e)||b.owner.query(e)[0]}c.stretchMaxPartner=e&&c.context.getCmp(e);b.callParent(arguments);c.innerCtContext=c.getEl("innerCt",b);b.scrollParallel=!!(b.owner.autoScroll||b.owner[d.overflowX]);b.scrollPerpendicular=!!(b.owner.autoScroll||b.owner[d.overflowY]);if(b.scrollParallel){b.scrollPos=b.owner.getTargetEl().dom[d.scrollLeft]}a.width="";a.height=""},beginLayoutCycle:function(e,a){var d=this,h=d.align,g=e.boxNames,b=d.pack,c=g.heightModel;d.overflowHandler.beginLayoutCycle(e,a);d.callParent(arguments);e.parallelSizeModel=e[g.widthModel];e.perpendicularSizeModel=e[c];e.boxOptions={align:h={stretch:h=="stretch",stretchmax:h=="stretchmax",center:h==g.center},pack:b={center:b=="center",end:b=="end"}};if(h.stretch&&e.perpendicularSizeModel.shrinkWrap){h.stretchmax=true;h.stretch=false}h.nostretch=!(h.stretch||h.stretchmax);if(e.parallelSizeModel.shrinkWrap){b.center=b.end=false}d.cacheFlexes(e);if(Ext.isWebKit){d.targetEl.setWidth(20000)}},cacheFlexes:function(k){var u=this,l=k.boxNames,a=l.widthModel,d=l.heightModel,c=k.boxOptions.align.nostretch,o=0,b=k.childItems,q=b.length,s=[],m=0,j=l.minWidth,g=u._percentageRe,r=0,t=0,e,n,p,h;while(q--){n=b[q];e=n.target;if(n[a].calculated){n.flex=p=e.flex;if(p){o+=p;s.push(n);m+=e[j]||0}else{h=g.exec(e[l.width]);n.percentageParallel=parseFloat(h[1])/100;++r}}if(c&&n[d].calculated){h=g.exec(e[l.height]);n.percentagePerpendicular=parseFloat(h[1])/100;++t}}k.flexedItems=s;k.flexedMinSize=m;k.totalFlex=o;k.percentageWidths=r;k.percentageHeights=t;Ext.Array.sort(s,u.flexSortFn)},calculate:function(d){var b=this,a=b.getContainerSize(d),g=d.boxNames,c=d.state,e=c.boxPlan||(c.boxPlan={});e.targetSize=a;if(!d.parallelSizeModel.shrinkWrap&&!a[g.gotWidth]){b.done=false;return}if(!c.parallelDone){c.parallelDone=b.calculateParallel(d,g,e)}if(!c.perpendicularDone){c.perpendicularDone=b.calculatePerpendicular(d,g,e)}if(c.parallelDone&&c.perpendicularDone){if(b.owner.dock&&(Ext.isIE6||Ext.isIE7||Ext.isIEQuirks)&&!b.owner.width&&!b.horizontal){e.isIEVerticalDock=true;e.calculatedWidth=e.maxSize+d.getPaddingInfo().width+d.getFrameInfo().width}b.publishInnerCtSize(d,b.reserveOffset?b.availableSpaceOffset:0);if(b.done&&d.childItems.length>1&&d.boxOptions.align.stretchmax&&!c.stretchMaxDone){b.calculateStretchMax(d,g,e);c.stretchMaxDone=true}}else{b.done=false}},calculateParallel:function(k,n,b){var F=this,z=n.width,a=k.childItems,d=n.left,r=n.right,q=n.setWidth,A=a.length,x=k.flexedItems,s=x.length,v=k.boxOptions.pack,m=F.padding,h=b.targetSize[z],B=0,e=m[d],E=e+m[r]+F.scrollOffset+(F.reserveOffset?F.availableSpaceOffset:0),w=Ext.getScrollbarSize()[n.width],u,l,g,y,o,t,D,p,C,c,j;if(w&&F.scrollPerpendicular&&k.parallelSizeModel.shrinkWrap&&!k.boxOptions.align.stretch&&!k.perpendicularSizeModel.shrinkWrap){if(!k.state.perpendicularDone){return false}C=true}for(u=0;u<A;++u){o=a[u];l=o.marginInfo||o.getMarginInfo();B+=l[z];if(!o[n.widthModel].calculated){c=o.getProp(z);E+=c;if(isNaN(E)){return false}}}E+=B;if(k.percentageWidths){j=h-B;if(isNaN(j)){return false}for(u=0;u<A;++u){o=a[u];if(o.percentageParallel){c=Math.ceil(j*o.percentageParallel);c=o.setWidth(c);E+=c}}}if(k.parallelSizeModel.shrinkWrap){b.availableSpace=0;b.tooNarrow=false}else{b.availableSpace=h-E;b.tooNarrow=b.availableSpace<k.flexedMinSize;if(b.tooNarrow&&Ext.getScrollbarSize()[n.height]&&F.scrollParallel&&k.state.perpendicularDone){k.state.perpendicularDone=false;for(u=0;u<A;++u){a[u].invalidate()}}}p=E;g=b.availableSpace;y=k.totalFlex;for(u=0;u<s;u++){o=x[u];t=o.flex;D=F.roundFlex((t/y)*g);D=o[q](D);p+=D;g=Math.max(0,g-D);y-=t}if(v.center){e+=g/2;if(e<0){e=0}}else{if(v.end){e+=g}}for(u=0;u<A;++u){o=a[u];l=o.marginInfo;e+=l[d];o.setProp(n.x,e);e+=l[r]+o.props[z]}p+=k.targetContext.getPaddingInfo()[z];k.state.contentWidth=p;if(C&&(k.peek(n.contentHeight)>b.targetSize[n.height])){p+=w;k[n.hasOverflowY]=true;k.target.componentLayout[n.setWidthInDom]=true;k[n.invalidateScrollY]=(Ext.isStrict&&Ext.isIE8)}k[n.setContentWidth](p);return true},calculatePerpendicular:function(r,v,c){var G=this,a=r.perpendicularSizeModel.shrinkWrap,d=c.targetSize,b=r.childItems,E=b.length,J=Math.max,H=v.height,m=v.setHeight,p=v.top,F=v.y,u=G.padding,w=u[p],h=d[H]-w-u[v.bottom],B=r.boxOptions.align,o=B.stretch,z=B.stretchmax,n=B.center,A=0,g=0,l=Ext.getScrollbarSize().height,I,C,e,t,s,y,x,k,j,q,D;if(o||(n&&!a)){if(isNaN(h)){return false}}if(G.scrollParallel&&c.tooNarrow){if(a){q=true}else{h-=l;c.targetSize[H]-=l}}if(o){y=h}else{for(C=0;C<E;C++){x=b[C];t=(x.marginInfo||x.getMarginInfo())[H];if(!(D=x.percentagePerpendicular)){e=x.getProp(H)}else{++g;if(a){continue}else{e=D*h-t;e=x[v.setHeight](e)}}if(isNaN(A=J(A,e+t,x.target[v.minHeight]||0))){return false}}if(q){A+=l;r[v.hasOverflowX]=true;r.target.componentLayout[v.setHeightInDom]=true;r[v.invalidateScrollX]=(Ext.isStrict&&Ext.isIE8)}k=r.stretchMaxPartner;if(k){r.setProp("maxChildHeight",A);j=k.childItems;if(j&&j.length){A=J(A,k.getProp("maxChildHeight"));if(isNaN(A)){return false}}}r[v.setContentHeight](A+G.padding[H]+r.targetContext.getPaddingInfo()[H]);if(q){A-=l}c.maxSize=A;if(z){y=A}else{if(n||g){y=a?A:J(h,A);y-=r.innerCtContext.getBorderInfo()[H]}}}for(C=0;C<E;C++){x=b[C];t=x.marginInfo||x.getMarginInfo();I=w+t[p];if(o){x[m](y-t[H])}else{D=x.percentagePerpendicular;if(a&&D){t=x.marginInfo||x.getMarginInfo();e=D*y-t[H];e=x.setHeight(e)}if(n){s=y-x.props[H];if(s>0){I=w+Math.round(s/2)}}}x.setProp(F,I)}return true},calculateStretchMax:function(d,k,m){var l=this,h=k.height,n=k.width,g=d.childItems,b=g.length,o=m.maxSize,a=l.onBeforeInvalidateChild,q=l.onAfterInvalidateChild,p,j,e,c;for(e=0;e<b;++e){p=g[e];j=p.props;c=o-p.getMarginInfo()[h];if(c!=j[h]||p[k.heightModel].constrained){p.invalidate({before:a,after:q,layout:l,childWidth:j[n],childHeight:c,childX:j.x,childY:j.y,names:k})}}},completeLayout:function(b){var j=this,i=b.boxNames,h=b.invalidateScrollX,g=b.invalidateScrollY,d,a,e,c,k;j.overflowHandler.completeLayout(b);if(h||g){a=j.getTarget();d=a.dom;k=d.style;if(h){e=a.getStyle("overflowX");if(e=="auto"){e=k.overflowX;k.overflowX="scroll"}else{h=false}}if(g){c=a.getStyle("overflowY");if(c=="auto"){c=k.overflowY;k.overflowY="scroll"}else{g=false}}if(h||g){d.scrollWidth;if(h){k.overflowX=e}if(g){k.overflowY=c}}}if(j.scrollParallel){j.owner.getTargetEl().dom[i.scrollLeft]=j.scrollPos}},finishedLayout:function(a){this.overflowHandler.finishedLayout(a);this.callParent(arguments);if(Ext.isWebKit){this.targetEl.setWidth(a.innerCtContext.props.width)}},onBeforeInvalidateChild:function(b,a){var c=a.names.heightModel;if(!b[c].constrainedMax){b[c]=Ext.layout.SizeModel.calculated}},onAfterInvalidateChild:function(d,c){var g=c.names,e=Ext.getScrollbarSize(),a=c.childHeight,b=c.childWidth;d.setProp("x",c.childX);d.setProp("y",c.childY);if(d[g.heightModel].calculated){d[g.setHeight](a)}if(d[g.widthModel].calculated){d[g.setWidth](b)}},publishInnerCtSize:function(a,d){var i=this,h=a.boxNames,g=h.height,k=h.width,e=a.boxOptions.align,o=i.owner.dock,l=i.padding,j=a.state.boxPlan,c=j.targetSize,n=c[g],p=a.innerCtContext,b=(a.parallelSizeModel.shrinkWrap||(j.tooNarrow&&i.scrollParallel)?a.state.contentWidth:c[k])-(d||0),m;if(e.stretch){m=n}else{m=j.maxSize+l[h.top]+l[h.bottom]+p.getBorderInfo()[g];if(!a.perpendicularSizeModel.shrinkWrap&&e.center){m=Math.max(n,m)}}p[h.setWidth](b);p[h.setHeight](m);if(isNaN(b+m)){i.done=false}if(j.calculatedWidth&&(o=="left"||o=="right")){a.setWidth(j.calculatedWidth,true,true)}},onRemove:function(a){var b=this;b.callParent(arguments);if(b.overflowHandler){b.overflowHandler.onRemove(a)}if(a.layoutMarginCap==b.id){delete a.layoutMarginCap}},initOverflowHandler:function(){var d=this,c=d.overflowHandler,b,a;if(typeof c=="string"){c={type:c}}b="None";if(c&&c.type!==undefined){b=c.type}a=Ext.layout.container.boxOverflow[b];if(a[d.type]){a=a[d.type]}d.overflowHandler=Ext.create("Ext.layout.container.boxOverflow."+b,d,c)},getRenderTarget:function(){return this.targetEl},getElementTarget:function(){return this.innerCt},destroy:function(){Ext.destroy(this.innerCt,this.overflowHandler);this.callParent(arguments)}});Ext.define("Ext.layout.container.HBox",{alias:["layout.hbox"],extend:"Ext.layout.container.Box",alternateClassName:"Ext.layout.HBoxLayout",align:"top",type:"hbox",direction:"horizontal",horizontal:true,names:{lr:"lr",left:"left",leftCap:"Left",right:"right",position:"left",width:"width",contentWidth:"contentWidth",minWidth:"minWidth",maxWidth:"maxWidth",widthCap:"Width",widthModel:"widthModel",widthIndex:0,x:"x",scrollLeft:"scrollLeft",overflowX:"overflowX",hasOverflowX:"hasOverflowX",invalidateScrollX:"invalidateScrollX",center:"middle",top:"top",topPosition:"top",bottom:"bottom",height:"height",contentHeight:"contentHeight",minHeight:"minHeight",maxHeight:"maxHeight",heightCap:"Height",heightModel:"heightModel",heightIndex:1,y:"y",scrollTop:"scrollTop",overflowY:"overflowY",hasOverflowY:"hasOverflowY",invalidateScrollY:"invalidateScrollY",getWidth:"getWidth",getHeight:"getHeight",setWidth:"setWidth",setHeight:"setHeight",gotWidth:"gotWidth",gotHeight:"gotHeight",setContentWidth:"setContentWidth",setContentHeight:"setContentHeight",setWidthInDom:"setWidthInDom",setHeightInDom:"setHeightInDom"},sizePolicy:{flex:{"":{setsWidth:1,setsHeight:0},stretch:{setsWidth:1,setsHeight:1},stretchmax:{readsHeight:1,setsWidth:1,setsHeight:1}},"":{setsWidth:0,setsHeight:0},stretch:{setsWidth:0,setsHeight:1},stretchmax:{readsHeight:1,setsWidth:0,setsHeight:1}}});Ext.define("Ext.layout.container.VBox",{alias:["layout.vbox"],extend:"Ext.layout.container.Box",alternateClassName:"Ext.layout.VBoxLayout",align:"left",type:"vbox",direction:"vertical",horizontal:false,names:{lr:"tb",left:"top",leftCap:"Top",right:"bottom",position:"top",width:"height",contentWidth:"contentHeight",minWidth:"minHeight",maxWidth:"maxHeight",widthCap:"Height",widthModel:"heightModel",widthIndex:1,x:"y",scrollLeft:"scrollTop",overflowX:"overflowY",hasOverflowX:"hasOverflowY",invalidateScrollX:"invalidateScrollY",center:"center",top:"left",topPosition:"left",bottom:"right",height:"width",contentHeight:"contentWidth",minHeight:"minWidth",maxHeight:"maxWidth",heightCap:"Width",heightModel:"widthModel",heightIndex:0,y:"x",scrollTop:"scrollLeft",overflowY:"overflowX",hasOverflowY:"hasOverflowX",invalidateScrollY:"invalidateScrollX",getWidth:"getHeight",getHeight:"getWidth",setWidth:"setHeight",setHeight:"setWidth",gotWidth:"gotHeight",gotHeight:"gotWidth",setContentWidth:"setContentHeight",setContentHeight:"setContentWidth",setWidthInDom:"setHeightInDom",setHeightInDom:"setWidthInDom"},sizePolicy:{flex:{"":{setsWidth:0,setsHeight:1},stretch:{setsWidth:1,setsHeight:1},stretchmax:{readsWidth:1,setsWidth:1,setsHeight:1}},"":{setsWidth:0,setsHeight:0},stretch:{setsWidth:1,setsHeight:0},stretchmax:{readsWidth:1,setsWidth:1,setsHeight:0}}});Ext.define("Ext.toolbar.Toolbar",{extend:"Ext.container.Container",requires:["Ext.toolbar.Fill","Ext.layout.container.HBox","Ext.layout.container.VBox"],uses:["Ext.toolbar.Separator"],alias:"widget.toolbar",alternateClassName:"Ext.Toolbar",isToolbar:true,baseCls:Ext.baseCSSPrefix+"toolbar",ariaRole:"toolbar",defaultType:"button",vertical:false,enableOverflow:false,menuTriggerCls:Ext.baseCSSPrefix+"toolbar-more-icon",trackMenus:true,itemCls:Ext.baseCSSPrefix+"toolbar-item",statics:{shortcuts:{"-":"tbseparator"," ":"tbspacer"},shortcutsHV:{0:{"->":{xtype:"tbfill",height:0}},1:{"->":{xtype:"tbfill",width:0}}}},initComponent:function(){var b=this,a;if(!b.layout&&b.enableOverflow){b.layout={overflowHandler:"Menu"}}if(b.dock==="right"||b.dock==="left"){b.vertical=true}b.layout=Ext.applyIf(Ext.isString(b.layout)?{type:b.layout}:b.layout||{},{type:b.vertical?"vbox":"hbox",align:b.vertical?"stretchmax":"middle"});if(b.vertical){b.addClsWithUI("vertical")}if(b.ui==="footer"){b.ignoreBorderManagement=true}b.callParent();b.addEvents("overflowchange")},getRefItems:function(a){var e=this,b=e.callParent(arguments),d=e.layout,c;if(a&&e.enableOverflow){c=d.overflowHandler;if(c&&c.menu){b=b.concat(c.menu.getRefItems(a))}}return b},lookupComponent:function(d){if(typeof d=="string"){var b=Ext.toolbar.Toolbar,a=b.shortcutsHV[this.vertical?1:0][d]||b.shortcuts[d];if(typeof a=="string"){d={xtype:a}}else{if(a){d=Ext.apply({},a)}else{d={xtype:"tbtext",text:d}}}this.applyDefaults(d)}return this.callParent(arguments)},applyDefaults:function(a){if(!Ext.isString(a)){a=this.callParent(arguments)}return a},trackMenu:function(c,a){if(this.trackMenus&&c.menu){var d=a?"mun":"mon",b=this;b[d](c,"mouseover",b.onButtonOver,b);b[d](c,"menushow",b.onButtonMenuShow,b);b[d](c,"menuhide",b.onButtonMenuHide,b)}},constructButton:function(a){return a.events?a:Ext.widget(a.split?"splitbutton":this.defaultType,a)},onBeforeAdd:function(a){if(a.is("field")||(a.is("button")&&this.ui!="footer")){a.ui=a.ui+"-toolbar"}if(a instanceof Ext.toolbar.Separator){a.setUI((this.vertical)?"vertical":"horizontal")}this.callParent(arguments)},onAdd:function(a){this.callParent(arguments);this.trackMenu(a)},onRemove:function(a){this.callParent(arguments);this.trackMenu(a,true)},getChildItemsToDisable:function(){return this.items.getRange()},onButtonOver:function(a){if(this.activeMenuBtn&&this.activeMenuBtn!=a){this.activeMenuBtn.hideMenu();a.showMenu();this.activeMenuBtn=a}},onButtonMenuShow:function(a){this.activeMenuBtn=a},onButtonMenuHide:function(a){delete this.activeMenuBtn}});Ext.define("Ext.container.DockingContainer",{requires:["Ext.util.MixedCollection","Ext.Element"],isDockingContainer:true,defaultDockWeights:{top:{render:1,visual:1},left:{render:3,visual:5},right:{render:5,visual:7},bottom:{render:7,visual:3}},dockOrder:{top:-1,left:-1,right:1,bottom:1},addDocked:function(a,g){var e=this,b=0,d,c;a=e.prepareItems(a);c=a.length;for(;b<c;b++){d=a[b];d.dock=d.dock||"top";if(g!==undefined){e.dockedItems.insert(g+b,d)}else{e.dockedItems.add(d)}if(d.onAdded!==Ext.emptyFn){d.onAdded(e,b)}if(e.onDockedAdd!==Ext.emptyFn){e.onDockedAdd(d)}}if(e.rendered&&!e.suspendLayout){e.updateLayout()}return a},destroyDockedItems:function(){var a=this.dockedItems,b;if(a){while((b=a.first())){this.removeDocked(b,true)}}},doRenderDockedItems:function(c,g,h){var e=g.$comp,d=e.componentLayout,b,a;if(d.getDockedItems&&!g.$skipDockedItems){b=d.getDockedItems("render",!h);a=b&&d.getItemsRenderTree(b);if(a){Ext.DomHelper.generateMarkup(a,c)}}},getDockedComponent:function(a){if(Ext.isObject(a)){a=a.getItemId()}return this.dockedItems.get(a)},getDockedItems:function(a,c){var b=this.getComponentLayout().getDockedItems("render",c);if(a&&b.length){b=Ext.ComponentQuery.query(a,b)}return b},getDockingRefItems:function(b,e){var a=b&&"*,* *",d=this.getDockedItems(a,true),c;d.push.apply(d,e);c=this.getDockedItems(a,false);d.push.apply(d,c);return d},initDockingItems:function(){var b=this,a=b.dockedItems;b.dockedItems=new Ext.util.AbstractMixedCollection(false,b.getComponentId);if(a){b.addDocked(a)}},insertDocked:function(b,a){this.addDocked(a,b)},onDockedAdd:Ext.emptyFn,onDockedRemove:Ext.emptyFn,removeDocked:function(e,b){var d=this,c,a;if(!d.dockedItems.contains(e)){return e}c=d.componentLayout;a=c&&d.rendered;if(a){c.onRemove(e)}d.dockedItems.remove(e);e.onRemoved();d.onDockedRemove(e);if(b===true||(b!==false&&d.autoDestroy)){e.destroy()}else{if(a){c.afterRemove(e)}}if(!d.destroying&&!d.suspendLayout){d.updateLayout()}return e},setupDockingRenderTpl:function(a){a.renderDockedItems=this.doRenderDockedItems}});Ext.define("Ext.panel.AbstractPanel",{extend:"Ext.container.Container",mixins:{docking:"Ext.container.DockingContainer"},requires:["Ext.util.MixedCollection","Ext.Element","Ext.toolbar.Toolbar"],baseCls:Ext.baseCSSPrefix+"panel",isPanel:true,componentLayout:"dock",childEls:["body"],renderTpl:["{% this.renderDockedItems(out,values,0); %}",(Ext.isIE6||Ext.isIE7||Ext.isIEQuirks)?"<div></div>":"",'<div id="{id}-body" class="{baseCls}-body<tpl if="bodyCls"> {bodyCls}</tpl>',' {baseCls}-body-{ui}<tpl if="uiCls">','<tpl for="uiCls"> {parent.baseCls}-body-{parent.ui}-{.}</tpl>','</tpl>"<tpl if="bodyStyle"> style="{bodyStyle}"</tpl>>',"{%this.renderContainer(out,values);%}","</div>","{% this.renderDockedItems(out,values,1); %}"],bodyPosProps:{x:"x",y:"y"},border:true,emptyArray:[],initComponent:function(){var a=this;if(a.frame&&a.border&&a.bodyBorder===undefined){a.bodyBorder=false}if(a.frame&&a.border&&(a.bodyBorder===false||a.bodyBorder===0)){a.manageBodyBorders=true}a.callParent()},beforeDestroy:function(){this.destroyDockedItems();this.callParent()},initItems:function(){this.callParent();this.initDockingItems()},initRenderData:function(){var a=this,b=a.callParent();a.initBodyStyles();a.protoBody.writeTo(b);delete a.protoBody;return b},getComponent:function(a){var b=this.callParent(arguments);if(b===undefined&&!Ext.isNumber(a)){b=this.getDockedComponent(a)}return b},getProtoBody:function(){var b=this,a=b.protoBody;if(!a){b.protoBody=a=new Ext.util.ProtoElement({cls:b.bodyCls,style:b.bodyStyle,clsProp:"bodyCls",styleProp:"bodyStyle",styleIsText:true})}return a},initBodyStyles:function(){var c=this,a=c.getProtoBody(),b=Ext.Element;if(c.bodyPadding!==undefined){a.setStyle("padding",b.unitizeBox((c.bodyPadding===true)?5:c.bodyPadding))}if(c.frame&&c.bodyBorder){if(!Ext.isNumber(c.bodyBorder)){c.bodyBorder=1}a.setStyle("border-width",b.unitizeBox(c.bodyBorder))}},getCollapsedDockedItems:function(){var a=this;return a.collapseMode=="placeholder"?a.emptyArray:[a.getReExpander()]},setBodyStyle:function(b,d){var c=this,a=c.rendered?c.body:c.getProtoBody();if(Ext.isFunction(b)){b=b()}if(arguments.length==1){if(Ext.isString(b)){b=Ext.Element.parseStyles(b)}a.setStyle(b)}else{a.setStyle(b,d)}return c},addBodyCls:function(b){var c=this,a=c.rendered?c.body:c.getProtoBody();a.addCls(b);return c},removeBodyCls:function(b){var c=this,a=c.rendered?c.body:c.getProtoBody();a.removeCls(b);return c},addUIClsToElement:function(b){var c=this,a=c.callParent(arguments);c.addBodyCls([Ext.baseCSSPrefix+b,c.baseCls+"-body-"+b,c.baseCls+"-body-"+c.ui+"-"+b]);return a},removeUIClsFromElement:function(b){var c=this,a=c.callParent(arguments);c.removeBodyCls([Ext.baseCSSPrefix+b,c.baseCls+"-body-"+b,c.baseCls+"-body-"+c.ui+"-"+b]);return a},addUIToElement:function(){var a=this;a.callParent(arguments);a.addBodyCls(a.baseCls+"-body-"+a.ui)},removeUIFromElement:function(){var a=this;a.callParent(arguments);a.removeBodyCls(a.baseCls+"-body-"+a.ui)},getTargetEl:function(){return this.body},getRefItems:function(a){var b=this.callParent(arguments);return this.getDockingRefItems(a,b)},setupRenderTpl:function(a){this.callParent(arguments);this.setupDockingRenderTpl(a)}});Ext.define("Ext.layout.component.Body",{alias:["layout.body"],extend:"Ext.layout.component.Auto",type:"body",beginLayout:function(a){this.callParent(arguments);a.bodyContext=a.getEl("body")},calculateOwnerHeightFromContentHeight:function(c,b){var a=this.callParent(arguments);if(c.targetContext!=c){a+=c.getPaddingInfo().height}return a},calculateOwnerWidthFromContentWidth:function(c,a){var b=this.callParent(arguments);if(c.targetContext!=c){b+=c.getPaddingInfo().width}return b},measureContentWidth:function(a){return a.bodyContext.setWidth(a.bodyContext.el.dom.offsetWidth,false)},measureContentHeight:function(a){return a.bodyContext.setHeight(a.bodyContext.el.dom.offsetHeight,false)},publishInnerHeight:function(c,a){var d=a-c.getFrameInfo().height,b=c.targetContext;if(b!=c){d-=c.getPaddingInfo().height}return c.bodyContext.setHeight(d,!c.heightModel.natural)},publishInnerWidth:function(d,c){var a=c-d.getFrameInfo().width,b=d.targetContext;if(b!=d){a-=d.getPaddingInfo().width}d.bodyContext.setWidth(a,!d.widthModel.natural)}});Ext.define("Ext.panel.Header",{extend:"Ext.container.Container",uses:["Ext.panel.Tool","Ext.draw.Component","Ext.util.CSS","Ext.layout.component.Body","Ext.Img"],alias:"widget.header",isHeader:true,defaultType:"tool",indicateDrag:false,weight:-1,componentLayout:"body",titleAlign:"left",childEls:["body"],renderTpl:['<div id="{id}-body" class="{baseCls}-body {bodyCls}','<tpl for="uiCls"> {parent.baseCls}-body-{parent.ui}-{.}</tpl>"','<tpl if="bodyStyle"> style="{bodyStyle}"</tpl>>',"{%this.renderContainer(out,values)%}","</div>"],headingTpl:'<span id="{id}-textEl" class="{cls}-text {cls}-text-{ui}">{title}</span>',shrinkWrap:3,initComponent:function(){var b=this,e,d,a,c,g;b.addEvents("click","dblclick");b.indicateDragCls=b.baseCls+"-draggable";b.title=b.title||" ";b.tools=b.tools||[];b.items=b.items||[];b.orientation=b.orientation||"horizontal";b.dock=(b.dock)?b.dock:(b.orientation=="horizontal")?"top":"left";b.addClsWithUI([b.orientation,b.dock]);if(b.indicateDrag){b.addCls(b.indicateDragCls)}if(!Ext.isEmpty(b.iconCls)||!Ext.isEmpty(b.icon)){b.initIconCmp();b.items.push(b.iconCmp)}if(b.orientation=="vertical"){b.layout={type:"vbox",align:"center"};b.textConfig={width:16,cls:b.baseCls+"-text",type:"text",text:b.title,rotate:{degrees:90}};c=b.ui;if(Ext.isArray(c)){c=c[0]}e="."+b.baseCls+"-text-"+c;if(Ext.scopeResetCSS){e="."+Ext.baseCSSPrefix+"reset "+e}d=Ext.util.CSS.getRule(e);if(d){a=d.style}else{a=(g=Ext.resetElement.createChild({style:"position:absolute",cls:b.baseCls+"-text-"+c})).getStyles("fontFamily","fontWeight","fontSize","color");g.remove()}if(a){Ext.apply(b.textConfig,{"font-family":a.fontFamily,"font-weight":a.fontWeight,"font-size":a.fontSize,fill:a.color})}b.titleCmp=new Ext.draw.Component({width:16,ariaRole:"heading",focusable:false,viewBox:false,flex:1,id:b.id+"_hd",autoSize:true,items:b.textConfig,xhooks:{setSize:function(h){this.callParent([h])}},childEls:[{name:"textEl",select:"."+b.baseCls+"-text"}]})}else{b.layout={type:"hbox",align:"middle"};b.titleCmp=new Ext.Component({ariaRole:"heading",focusable:false,noWrap:true,flex:1,id:b.id+"_hd",style:"text-align:"+b.titleAlign,cls:b.baseCls+"-text-container",renderTpl:b.getTpl("headingTpl"),renderData:{title:b.title,cls:b.baseCls,ui:b.ui},childEls:["textEl"]})}b.items.push(b.titleCmp);b.items=b.items.concat(b.tools);b.callParent();b.on({dblclick:b.onDblClick,click:b.onClick,element:"el",scope:b})},initIconCmp:function(){var b=this,a={focusable:false,src:Ext.BLANK_IMAGE_URL,cls:[b.baseCls+"-icon",b.iconCls],id:b.id+"-iconEl",iconCls:b.iconCls};if(!Ext.isEmpty(b.icon)){delete a.iconCls;a.src=b.icon}b.iconCmp=new Ext.Img(a)},afterRender:function(){this.el.unselectable();this.callParent()},addUIClsToElement:function(b){var e=this,a=e.callParent(arguments),d=[e.baseCls+"-body-"+b,e.baseCls+"-body-"+e.ui+"-"+b],g,c;if(e.bodyCls){g=e.bodyCls.split(" ");for(c=0;c<d.length;c++){if(!Ext.Array.contains(g,d[c])){g.push(d[c])}}e.bodyCls=g.join(" ")}else{e.bodyCls=d.join(" ")}return a},removeUIClsFromElement:function(b){var e=this,a=e.callParent(arguments),d=[e.baseCls+"-body-"+b,e.baseCls+"-body-"+e.ui+"-"+b],g,c;if(e.bodyCls){g=e.bodyCls.split(" ");for(c=0;c<d.length;c++){Ext.Array.remove(g,d[c])}e.bodyCls=g.join(" ")}return a},addUIToElement:function(){var b=this,c,a;b.callParent(arguments);a=b.baseCls+"-body-"+b.ui;if(b.rendered){if(b.bodyCls){b.body.addCls(b.bodyCls)}else{b.body.addCls(a)}}else{if(b.bodyCls){c=b.bodyCls.split(" ");if(!Ext.Array.contains(c,a)){c.push(a)}b.bodyCls=c.join(" ")}else{b.bodyCls=a}}if(b.titleCmp&&b.titleCmp.rendered&&b.titleCmp.textEl){b.titleCmp.textEl.addCls(b.baseCls+"-text-"+b.ui)}},removeUIFromElement:function(){var b=this,c,a;b.callParent(arguments);a=b.baseCls+"-body-"+b.ui;if(b.rendered){if(b.bodyCls){b.body.removeCls(b.bodyCls)}else{b.body.removeCls(a)}}else{if(b.bodyCls){c=b.bodyCls.split(" ");Ext.Array.remove(c,a);b.bodyCls=c.join(" ")}else{b.bodyCls=a}}if(b.titleCmp&&b.titleCmp.rendered&&b.titleCmp.textEl){b.titleCmp.textEl.removeCls(b.baseCls+"-text-"+b.ui)}},onClick:function(a){this.fireClickEvent("click",a)},onDblClick:function(a){this.fireClickEvent("dblclick",a)},fireClickEvent:function(a,c){var b="."+Ext.panel.Tool.prototype.baseCls;if(!c.getTarget(b)){this.fireEvent(a,this,c)}},getFocusEl:function(){return this.el},getTargetEl:function(){return this.body||this.frameBody||this.el},setTitle:function(d){var c=this,b,a;if(c.rendered){if(c.titleCmp.rendered){if(c.titleCmp.surface){c.title=d||"";b=c.titleCmp.surface.items.items[0];a=c.titleCmp.surface;a.remove(b);c.textConfig.type="text";c.textConfig.text=d;b=a.add(c.textConfig);b.setAttributes({rotate:{degrees:90}},true);c.titleCmp.autoSizeSurface()}else{c.title=d;c.titleCmp.textEl.update(c.title||" ")}c.titleCmp.updateLayout()}else{c.titleCmp.on({render:function(){c.setTitle(d)},single:true})}}else{c.title=d}},getMinWidth:function(){var e=this,d=e.titleCmp.textEl.dom,a,g=e.tools,b,c;d.style.display="inline";a=d.offsetWidth;d.style.display="";if(g&&(b=g.length)){for(c=0;c<b;c++){if(g[c].el){a+=g[c].el.dom.offsetWidth}}}if(e.iconCmp){a+=e.iconCmp.el.dom.offsetWidth}return a+10},setIconCls:function(a){var b=this,d=!a||!a.length,c=b.iconCmp;b.iconCls=a;if(!b.iconCmp&&!d){b.initIconCmp();b.insert(0,b.iconCmp)}else{if(c){if(d){b.iconCmp.destroy();delete b.iconCmp}else{c.removeCls(c.iconCls);c.addCls(a);c.iconCls=a}}}},setIcon:function(a){var b=this,d=!a||!a.length,c=b.iconCmp;b.icon=a;if(!b.iconCmp&&!d){b.initIconCmp();b.insert(0,b.iconCmp)}else{if(c){if(d){b.iconCmp.destroy();delete b.iconCmp}else{c.setSrc(b.icon)}}}},addTool:function(a){this.tools.push(this.add(a))},onAdd:function(b,a){this.callParent(arguments);if(b instanceof Ext.panel.Tool){b.bindTo(this.ownerCt);this.tools[b.type]=b}},initRenderData:function(){return Ext.applyIf(this.callParent(),{bodyCls:this.bodyCls})}});Ext.define("Ext.fx.target.Target",{isAnimTarget:true,constructor:function(a){this.target=a;this.id=this.getId()},getId:function(){return this.target.id}});Ext.define("Ext.fx.target.Element",{extend:"Ext.fx.target.Target",type:"element",getElVal:function(b,a,c){if(c==undefined){if(a==="x"){c=b.getX()}else{if(a==="y"){c=b.getY()}else{if(a==="scrollTop"){c=b.getScroll().top}else{if(a==="scrollLeft"){c=b.getScroll().left}else{if(a==="height"){c=b.getHeight()}else{if(a==="width"){c=b.getWidth()}else{c=b.getStyle(a)}}}}}}}return c},getAttr:function(a,c){var b=this.target;return[[b,this.getElVal(b,a,c)]]},setAttr:function(l){var g=this.target,k=l.length,n,h,b,e,c,a,d,m;for(e=0;e<k;e++){n=l[e].attrs;for(h in n){if(n.hasOwnProperty(h)){a=n[h].length;for(c=0;c<a;c++){b=n[h][c];d=b[0];m=b[1];if(h==="x"){d.setX(m)}else{if(h==="y"){d.setY(m)}else{if(h==="scrollTop"){d.scrollTo("top",m)}else{if(h==="scrollLeft"){d.scrollTo("left",m)}else{if(h==="width"){d.setWidth(m)}else{if(h==="height"){d.setHeight(m)}else{d.setStyle(h,m)}}}}}}}}}}}});Ext.define("Ext.fx.target.ElementCSS",{extend:"Ext.fx.target.Element",setAttr:function(n,e){var q={attrs:[],duration:[],easing:[]},m=n.length,g,p,k,l,c,b,h,d,a;for(h=0;h<m;h++){p=n[h];c=p.duration;l=p.easing;p=p.attrs;for(k in p){if(Ext.Array.indexOf(q.attrs,k)==-1){q.attrs.push(k.replace(/[A-Z]/g,function(i){return"-"+i.toLowerCase()}));q.duration.push(c+"ms");q.easing.push(l)}}}g=q.attrs.join(",");c=q.duration.join(",");l=q.easing.join(", ");for(h=0;h<m;h++){p=n[h].attrs;for(k in p){a=p[k].length;for(d=0;d<a;d++){b=p[k][d];b[0].setStyle(Ext.supports.CSS3Prefix+"TransitionProperty",e?"":g);b[0].setStyle(Ext.supports.CSS3Prefix+"TransitionDuration",e?"":c);b[0].setStyle(Ext.supports.CSS3Prefix+"TransitionTimingFunction",e?"":l);b[0].setStyle(k,b[1]);if(e){b=b[0].dom.offsetWidth}else{b[0].on(Ext.supports.CSS3TransitionEnd,function(){this.setStyle(Ext.supports.CSS3Prefix+"TransitionProperty",null);this.setStyle(Ext.supports.CSS3Prefix+"TransitionDuration",null);this.setStyle(Ext.supports.CSS3Prefix+"TransitionTimingFunction",null)},b[0],{single:true})}}}}}});Ext.define("Ext.fx.target.CompositeElement",{extend:"Ext.fx.target.Element",isComposite:true,constructor:function(a){a.id=a.id||Ext.id(null,"ext-composite-");this.callParent([a])},getAttr:function(a,h){var b=[],g=this.target.elements,e=g.length,c,d;for(c=0;c<e;c++){d=g[c];if(d){d=this.target.getElement(d);b.push([d,this.getElVal(d,a,h)])}}return b}});Ext.define("Ext.fx.target.CompositeElementCSS",{extend:"Ext.fx.target.CompositeElement",requires:["Ext.fx.target.ElementCSS"],setAttr:function(){return Ext.fx.target.ElementCSS.prototype.setAttr.apply(this,arguments)}});Ext.define("Ext.fx.target.Sprite",{extend:"Ext.fx.target.Target",type:"draw",getFromPrim:function(b,a){var c;switch(a){case"rotate":case"rotation":c=b.attr.rotation;return{x:c.x||0,y:c.y||0,degrees:c.degrees||0};case"scale":case"scaling":c=b.attr.scaling;return{x:c.x||1,y:c.y||1,cx:c.cx||0,cy:c.cy||0};case"translate":case"translation":c=b.attr.translation;return{x:c.x||0,y:c.y||0};default:return b.attr[a]}},getAttr:function(a,b){return[[this.target,b!=undefined?b:this.getFromPrim(this.target,a)]]},setAttr:function(m){var g=m.length,k=[],b,e,p,r,q,o,n,d,c,l,h,a;for(d=0;d<g;d++){b=m[d].attrs;for(e in b){p=b[e];a=p.length;for(c=0;c<a;c++){q=p[c][0];r=p[c][1];if(e==="translate"||e==="translation"){n={x:r.x,y:r.y}}else{if(e==="rotate"||e==="rotation"){l=r.x;if(isNaN(l)){l=null}h=r.y;if(isNaN(h)){h=null}n={degrees:r.degrees,x:l,y:h}}else{if(e==="scale"||e==="scaling"){l=r.x;if(isNaN(l)){l=null}h=r.y;if(isNaN(h)){h=null}n={x:l,y:h,cx:r.cx,cy:r.cy}}else{if(e==="width"||e==="height"||e==="x"||e==="y"){n=parseFloat(r)}else{n=r}}}}o=Ext.Array.indexOf(k,q);if(o==-1){k.push([q,{}]);o=k.length-1}k[o][1][e]=n}}}g=k.length;for(d=0;d<g;d++){k[d][0].setAttributes(k[d][1])}this.target.redraw()}});Ext.define("Ext.fx.target.CompositeSprite",{extend:"Ext.fx.target.Sprite",getAttr:function(a,h){var b=[],g=[].concat(this.target.items),e=g.length,d,c;for(d=0;d<e;d++){c=g[d];b.push([c,h!=undefined?h:this.getFromPrim(c,a)])}return b}});Ext.define("Ext.fx.target.Component",{extend:"Ext.fx.target.Target",type:"component",getPropMethod:{top:function(){return this.getPosition(true)[1]},left:function(){return this.getPosition(true)[0]},x:function(){return this.getPosition()[0]},y:function(){return this.getPosition()[1]},height:function(){return this.getHeight()},width:function(){return this.getWidth()},opacity:function(){return this.el.getStyle("opacity")}},compMethod:{top:"setPosition",left:"setPosition",x:"setPagePosition",y:"setPagePosition",height:"setSize",width:"setSize",opacity:"setOpacity"},getAttr:function(a,b){return[[this.target,b!==undefined?b:this.getPropMethod[a].call(this.target)]]},setAttr:function(t,e,b){var r=this,m=r.target,q=t.length,v,n,a,g,d,p,l,c,s,u,k;for(g=0;g<q;g++){v=t[g].attrs;for(n in v){l=v[n].length;p={setPosition:{},setPagePosition:{},setSize:{},setOpacity:{}};for(d=0;d<l;d++){a=v[n][d];p[r.compMethod[n]].target=a[0];p[r.compMethod[n]][n]=a[1]}if(p.setPosition.target){a=p.setPosition;c=(a.left===undefined)?undefined:parseFloat(a.left);s=(a.top===undefined)?undefined:parseFloat(a.top);a.target.setPosition(c,s)}if(p.setPagePosition.target){a=p.setPagePosition;a.target.setPagePosition(a.x,a.y)}if(p.setSize.target){a=p.setSize;u=(a.width===undefined)?a.target.getWidth():parseFloat(a.width);k=(a.height===undefined)?a.target.getHeight():parseFloat(a.height);if(b||r.dynamic){a.target.setSize(u,k)}else{a.target.el.setSize(u,k)}}if(p.setOpacity.target){a=p.setOpacity;a.target.el.setStyle("opacity",a.opacity)}}}}});Ext.define("Ext.fx.Queue",{requires:["Ext.util.HashMap"],constructor:function(){this.targets=new Ext.util.HashMap();this.fxQueue={}},getFxDefaults:function(a){var b=this.targets.get(a);if(b){return b.fxDefaults}return{}},setFxDefaults:function(a,c){var b=this.targets.get(a);if(b){b.fxDefaults=Ext.apply(b.fxDefaults||{},c)}},stopAnimation:function(b){var d=this,a=d.getFxQueue(b),c=a.length;while(c){a[c-1].end();c--}},getActiveAnimation:function(b){var a=this.getFxQueue(b);return(a&&!!a.length)?a[0]:false},hasFxBlock:function(b){var a=this.getFxQueue(b);return a&&a[0]&&a[0].block},getFxQueue:function(b){if(!b){return false}var c=this,a=c.fxQueue[b],d=c.targets.get(b);if(!d){return false}if(!a){c.fxQueue[b]=[];if(d.type!="element"){d.target.on("destroy",function(){c.fxQueue[b]=[]})}}return c.fxQueue[b]},queueFx:function(d){var c=this,e=d.target,a,b;if(!e){return}a=c.getFxQueue(e.getId());b=a.length;if(b){if(d.concurrent){d.paused=false}else{a[b-1].on("afteranimate",function(){d.paused=false})}}else{d.paused=false}d.on("afteranimate",function(){Ext.Array.remove(a,d);if(d.remove){if(e.type=="element"){var g=Ext.get(e.id);if(g){g.remove()}}}},this);a.push(d)}});Ext.define("Ext.fx.Manager",{singleton:true,requires:["Ext.util.MixedCollection","Ext.fx.target.Element","Ext.fx.target.ElementCSS","Ext.fx.target.CompositeElement","Ext.fx.target.CompositeElementCSS","Ext.fx.target.Sprite","Ext.fx.target.CompositeSprite","Ext.fx.target.Component"],mixins:{queue:"Ext.fx.Queue"},constructor:function(){this.items=new Ext.util.MixedCollection();this.mixins.queue.constructor.call(this)},interval:16,forceJS:true,createTarget:function(d){var b=this,c=!b.forceJS&&Ext.supports.Transitions,a;b.useCSS3=c;if(d){if(d.tagName||Ext.isString(d)||d.isFly){d=Ext.get(d);a=new Ext.fx.target["Element"+(c?"CSS":"")](d)}else{if(d.dom){a=new Ext.fx.target["Element"+(c?"CSS":"")](d)}else{if(d.isComposite){a=new Ext.fx.target["CompositeElement"+(c?"CSS":"")](d)}else{if(d.isSprite){a=new Ext.fx.target.Sprite(d)}else{if(d.isCompositeSprite){a=new Ext.fx.target.CompositeSprite(d)}else{if(d.isComponent){a=new Ext.fx.target.Component(d)}else{if(d.isAnimTarget){return d}else{return null}}}}}}}b.targets.add(a);return a}else{return null}},addAnim:function(c){var b=this.items,a=this.task;b.add(c.id,c);if(!a&&b.length){a=this.task={run:this.runner,interval:this.interval,scope:this};Ext.TaskManager.start(a)}},removeAnim:function(d){var c=this,b=c.items,a=c.task;b.removeAtKey(d.id);if(a&&!b.length){Ext.TaskManager.stop(a);delete c.task}},runner:function(){var d=this,b=d.items.getRange(),c=0,a=b.length,e;d.targetArr={};d.timestamp=new Date();for(;c<a;c++){e=b[c];if(e.isReady()){d.startAnim(e)}}for(c=0;c<a;c++){e=b[c];if(e.isRunning()){d.runAnim(e)}}d.applyPendingAttrs()},startAnim:function(a){a.start(this.timestamp)},runAnim:function(e){if(!e){return}var d=this,b=e.target.getId(),h=d.useCSS3&&e.target.type=="element",a=d.timestamp-e.startTime,c=(a>=e.duration),g,i;g=this.collectTargetData(e,a,h,c);if(h){e.target.setAttr(g.anims[e.id].attributes,true);d.collectTargetData(e,e.duration,h,c);e.paused=true;g=e.target.target;if(e.target.isComposite){g=e.target.target.last()}i={};i[Ext.supports.CSS3TransitionEnd]=e.lastFrame;i.scope=e;i.single=true;g.on(i)}},collectTargetData:function(c,a,e,g){var b=c.target.getId(),d=this.targetArr[b];if(!d){d=this.targetArr[b]={id:b,el:c.target,anims:{}}}d.anims[c.id]={id:c.id,anim:c,elapsed:a,isLastFrame:g,attributes:[{duration:c.duration,easing:(e&&c.reverse)?c.easingFn.reverse().toCSS3():c.easing,attrs:c.runAnim(a)}]};return d},applyPendingAttrs:function(){var e=this.targetArr,g,c,b,d,a;for(c in e){if(e.hasOwnProperty(c)){g=e[c];for(a in g.anims){if(g.anims.hasOwnProperty(a)){b=g.anims[a];d=b.anim;if(b.attributes&&d.isRunning()){g.el.setAttr(b.attributes,false,b.isLastFrame);if(b.isLastFrame){d.lastFrame()}}}}}}}});Ext.define("Ext.fx.Animator",{mixins:{observable:"Ext.util.Observable"},requires:["Ext.fx.Manager"],isAnimator:true,duration:250,delay:0,delayStart:0,dynamic:false,easing:"ease",running:false,paused:false,damper:1,iterations:1,currentIteration:0,keyframeStep:0,animKeyFramesRE:/^(from|to|\d+%?)$/,constructor:function(a){var b=this;a=Ext.apply(b,a||{});b.config=a;b.id=Ext.id(null,"ext-animator-");b.addEvents("beforeanimate","keyframe","afteranimate");b.mixins.observable.constructor.call(b,a);b.timeline=[];b.createTimeline(b.keyframes);if(b.target){b.applyAnimator(b.target);Ext.fx.Manager.addAnim(b)}},sorter:function(d,c){return d.pct-c.pct},createTimeline:function(g){var k=this,n=[],l=k.to||{},c=k.duration,o,a,e,j,m,b,d,h;for(m in g){if(g.hasOwnProperty(m)&&k.animKeyFramesRE.test(m)){h={attrs:Ext.apply(g[m],l)};if(m=="from"){m=0}else{if(m=="to"){m=100}}h.pct=parseInt(m,10);n.push(h)}}Ext.Array.sort(n,k.sorter);j=n.length;for(e=0;e<j;e++){o=(n[e-1])?c*(n[e-1].pct/100):0;a=c*(n[e].pct/100);k.timeline.push({duration:a-o,attrs:n[e].attrs})}},applyAnimator:function(e){var k=this,l=[],o=k.timeline,g=k.reverse,j=o.length,b,h,a,d,n,m,c;if(k.fireEvent("beforeanimate",k)!==false){for(c=0;c<j;c++){b=o[c];n=b.attrs;h=n.easing||k.easing;a=n.damper||k.damper;delete n.easing;delete n.damper;b=new Ext.fx.Anim({target:e,easing:h,damper:a,duration:b.duration,paused:true,to:n});l.push(b)}k.animations=l;k.target=b.target;for(c=0;c<j-1;c++){b=l[c];b.nextAnim=l[c+1];b.on("afteranimate",function(){this.nextAnim.paused=false});b.on("afteranimate",function(){this.fireEvent("keyframe",this,++this.keyframeStep)},k)}l[j-1].on("afteranimate",function(){this.lastFrame()},k)}},start:function(d){var e=this,c=e.delay,b=e.delayStart,a;if(c){if(!b){e.delayStart=d;return}else{a=d-b;if(a<c){return}else{d=new Date(b.getTime()+c)}}}if(e.fireEvent("beforeanimate",e)!==false){e.startTime=d;e.running=true;e.animations[e.keyframeStep].paused=false}},lastFrame:function(){var c=this,a=c.iterations,b=c.currentIteration;b++;if(b<a){c.startTime=new Date();c.currentIteration=b;c.keyframeStep=0;c.applyAnimator(c.target);c.animations[c.keyframeStep].paused=false}else{c.currentIteration=0;c.end()}},end:function(){var a=this;a.fireEvent("afteranimate",a,a.startTime,new Date()-a.startTime)},isReady:function(){return this.paused===false&&this.running===false&&this.iterations>0},isRunning:function(){return false}});Ext.define("Ext.fx.CubicBezier",{singleton:true,cubicBezierAtTime:function(o,d,b,n,m,i){var j=3*d,l=3*(n-d)-j,a=1-j-l,h=3*b,k=3*(m-b)-h,p=1-h-k;function g(q){return((a*q+l)*q+j)*q}function c(q,s){var r=e(q,s);return((p*r+k)*r+h)*r}function e(q,y){var w,v,t,r,u,s;for(t=q,s=0;s<8;s++){r=g(t)-q;if(Math.abs(r)<y){return t}u=(3*a*t+2*l)*t+j;if(Math.abs(u)<0.000001){break}t=t-r/u}w=0;v=1;t=q;if(t<w){return w}if(t>v){return v}while(w<v){r=g(t);if(Math.abs(r-q)<y){return t}if(q>r){w=t}else{v=t}t=(v-w)/2+w}return t}return c(o,1/(200*i))},cubicBezier:function(b,e,a,c){var d=function(g){return Ext.fx.CubicBezier.cubicBezierAtTime(g,b,e,a,c,1)};d.toCSS3=function(){return"cubic-bezier("+[b,e,a,c].join(",")+")"};d.reverse=function(){return Ext.fx.CubicBezier.cubicBezier(1-a,1-c,1-b,1-e)};return d}});Ext.ns("Ext.fx");Ext.require("Ext.fx.CubicBezier",function(){var e=Math,h=e.PI,d=e.pow,b=e.sin,g=e.sqrt,a=e.abs,c=1.70158;Ext.fx.Easing={};Ext.apply(Ext.fx.Easing,{linear:function(i){return i},ease:function(l){var i=0.07813-l/2,m=-0.25,o=g(0.0066+i*i),r=o-i,k=d(a(r),1/3)*(r<0?-1:1),p=-o-i,j=d(a(p),1/3)*(p<0?-1:1),s=k+j+0.25;return d(1-s,2)*3*s*0.1+(1-s)*3*s*s+s*s*s},easeIn:function(i){return d(i,1.7)},easeOut:function(i){return d(i,0.48)},easeInOut:function(r){var l=0.48-r/1.04,k=g(0.1734+l*l),i=k-l,p=d(a(i),1/3)*(i<0?-1:1),o=-k-l,m=d(a(o),1/3)*(o<0?-1:1),j=p+m+0.5;return(1-j)*3*j*j+j*j*j},backIn:function(i){return i*i*((c+1)*i-c)},backOut:function(i){i=i-1;return i*i*((c+1)*i+c)+1},elasticIn:function(k){if(k===0||k===1){return k}var j=0.3,i=j/4;return d(2,-10*k)*b((k-i)*(2*h)/j)+1},elasticOut:function(i){return 1-Ext.fx.Easing.elasticIn(1-i)},bounceIn:function(i){return 1-Ext.fx.Easing.bounceOut(1-i)},bounceOut:function(m){var j=7.5625,k=2.75,i;if(m<(1/k)){i=j*m*m}else{if(m<(2/k)){m-=(1.5/k);i=j*m*m+0.75}else{if(m<(2.5/k)){m-=(2.25/k);i=j*m*m+0.9375}else{m-=(2.625/k);i=j*m*m+0.984375}}}return i}});Ext.apply(Ext.fx.Easing,{"back-in":Ext.fx.Easing.backIn,"back-out":Ext.fx.Easing.backOut,"ease-in":Ext.fx.Easing.easeIn,"ease-out":Ext.fx.Easing.easeOut,"elastic-in":Ext.fx.Easing.elasticIn,"elastic-out":Ext.fx.Easing.elasticIn,"bounce-in":Ext.fx.Easing.bounceIn,"bounce-out":Ext.fx.Easing.bounceOut,"ease-in-out":Ext.fx.Easing.easeInOut})});Ext.define("Ext.draw.Color",{colorToHexRe:/(.*?)rgb\((\d+),\s*(\d+),\s*(\d+)\)/,rgbRe:/\s*rgb\s*\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\s*\)\s*/,hexRe:/\s*#([0-9a-fA-F][0-9a-fA-F]?)([0-9a-fA-F][0-9a-fA-F]?)([0-9a-fA-F][0-9a-fA-F]?)\s*/,lightnessFactor:0.2,constructor:function(d,c,a){var b=this,e=Ext.Number.constrain;b.r=e(d,0,255);b.g=e(c,0,255);b.b=e(a,0,255)},getRed:function(){return this.r},getGreen:function(){return this.g},getBlue:function(){return this.b},getRGB:function(){var a=this;return[a.r,a.g,a.b]},getHSL:function(){var j=this,a=j.r/255,i=j.g/255,k=j.b/255,m=Math.max(a,i,k),d=Math.min(a,i,k),n=m-d,e,o=0,c=0.5*(m+d);if(d!=m){o=(c<0.5)?n/(m+d):n/(2-m-d);if(a==m){e=60*(i-k)/n}else{if(i==m){e=120+60*(k-a)/n}else{e=240+60*(a-i)/n}}if(e<0){e+=360}if(e>=360){e-=360}}return[e,o,c]},getLighter:function(b){var a=this.getHSL();b=b||this.lightnessFactor;a[2]=Ext.Number.constrain(a[2]+b,0,1);return this.fromHSL(a[0],a[1],a[2])},getDarker:function(a){a=a||this.lightnessFactor;return this.getLighter(-a)},toString:function(){var h=this,c=Math.round,e=c(h.r).toString(16),d=c(h.g).toString(16),a=c(h.b).toString(16);e=(e.length==1)?"0"+e:e;d=(d.length==1)?"0"+d:d;a=(a.length==1)?"0"+a:a;return["#",e,d,a].join("")},toHex:function(b){if(Ext.isArray(b)){b=b[0]}if(!Ext.isString(b)){return""}if(b.substr(0,1)==="#"){return b}var e=this.colorToHexRe.exec(b),g,d,a,c;if(Ext.isArray(e)){g=parseInt(e[2],10);d=parseInt(e[3],10);a=parseInt(e[4],10);c=a|(d<<8)|(g<<16);return e[1]+"#"+("000000"+c.toString(16)).slice(-6)}else{return b}},fromString:function(i){var c,e,d,a,h=parseInt;if((i.length==4||i.length==7)&&i.substr(0,1)==="#"){c=i.match(this.hexRe);if(c){e=h(c[1],16)>>0;d=h(c[2],16)>>0;a=h(c[3],16)>>0;if(i.length==4){e+=(e*16);d+=(d*16);a+=(a*16)}}}else{c=i.match(this.rgbRe);if(c){e=c[1];d=c[2];a=c[3]}}return(typeof e=="undefined")?undefined:new Ext.draw.Color(e,d,a)},getGrayscale:function(){return this.r*0.3+this.g*0.59+this.b*0.11},fromHSL:function(g,o,d){var a,b,c,e,k=[],n=Math.abs,j=Math.floor;if(o==0||g==null){k=[d,d,d]}else{g/=60;a=o*(1-n(2*d-1));b=a*(1-n(g-2*j(g/2)-1));c=d-a/2;switch(j(g)){case 0:k=[a,b,0];break;case 1:k=[b,a,0];break;case 2:k=[0,a,b];break;case 3:k=[0,b,a];break;case 4:k=[b,0,a];break;case 5:k=[a,0,b];break}k=[k[0]+c,k[1]+c,k[2]+c]}return new Ext.draw.Color(k[0]*255,k[1]*255,k[2]*255)}},function(){var a=this.prototype;this.addStatics({fromHSL:function(){return a.fromHSL.apply(a,arguments)},fromString:function(){return a.fromString.apply(a,arguments)},toHex:function(){return a.toHex.apply(a,arguments)}})});Ext.define("Ext.draw.Draw",{singleton:true,requires:["Ext.draw.Color"],pathToStringRE:/,?([achlmqrstvxz]),?/gi,pathCommandRE:/([achlmqstvz])[\s,]*((-?\d*\.?\d*(?:e[-+]?\d+)?\s*,?\s*)+)/ig,pathValuesRE:/(-?\d*\.?\d*(?:e[-+]?\d+)?)\s*,?\s*/ig,stopsRE:/^(\d+%?)$/,radian:Math.PI/180,availableAnimAttrs:{along:"along",blur:null,"clip-rect":"csv",cx:null,cy:null,fill:"color","fill-opacity":null,"font-size":null,height:null,opacity:null,path:"path",r:null,rotation:"csv",rx:null,ry:null,scale:"csv",stroke:"color","stroke-opacity":null,"stroke-width":null,translation:"csv",width:null,x:null,y:null},is:function(b,a){a=String(a).toLowerCase();return(a=="object"&&b===Object(b))||(a=="undefined"&&typeof b==a)||(a=="null"&&b===null)||(a=="array"&&Array.isArray&&Array.isArray(b))||(Object.prototype.toString.call(b).toLowerCase().slice(8,-1))==a},ellipsePath:function(b){var a=b.attr;return Ext.String.format("M{0},{1}A{2},{3},0,1,1,{0},{4}A{2},{3},0,1,1,{0},{1}z",a.x,a.y-a.ry,a.rx,a.ry,a.y+a.ry)},rectPath:function(b){var a=b.attr;if(a.radius){return Ext.String.format("M{0},{1}l{2},0a{3},{3},0,0,1,{3},{3}l0,{5}a{3},{3},0,0,1,{4},{3}l{6},0a{3},{3},0,0,1,{4},{4}l0,{7}a{3},{3},0,0,1,{3},{4}z",a.x+a.radius,a.y,a.width-a.radius*2,a.radius,-a.radius,a.height-a.radius*2,a.radius*2-a.width,a.radius*2-a.height)}else{return Ext.String.format("M{0},{1}L{2},{1},{2},{3},{0},{3}z",a.x,a.y,a.width+a.x,a.height+a.y)}},path2string:function(){return this.join(",").replace(Ext.draw.Draw.pathToStringRE,"$1")},pathToString:function(a){return a.join(",").replace(Ext.draw.Draw.pathToStringRE,"$1")},parsePathString:function(a){if(!a){return null}var d={a:7,c:6,h:1,l:2,m:2,q:4,s:4,t:2,v:1,z:0},c=[],b=this;if(b.is(a,"array")&&b.is(a[0],"array")){c=b.pathClone(a)}if(!c.length){String(a).replace(b.pathCommandRE,function(g,e,j){var i=[],h=e.toLowerCase();j.replace(b.pathValuesRE,function(l,k){k&&i.push(+k)});if(h=="m"&&i.length>2){c.push([e].concat(Ext.Array.splice(i,0,2)));h="l";e=(e=="m")?"l":"L"}while(i.length>=d[h]){c.push([e].concat(Ext.Array.splice(i,0,d[h])));if(!d[h]){break}}})}c.toString=b.path2string;return c},mapPath:function(l,g){if(!g){return l}var h,e,c,k,a,d,b;l=this.path2curve(l);for(c=0,k=l.length;c<k;c++){b=l[c];for(a=1,d=b.length;a<d-1;a+=2){h=g.x(b[a],b[a+1]);e=g.y(b[a],b[a+1]);b[a]=h;b[a+1]=e}}return l},pathClone:function(g){var c=[],a,e,b,d;if(!this.is(g,"array")||!this.is(g&&g[0],"array")){g=this.parsePathString(g)}for(b=0,d=g.length;b<d;b++){c[b]=[];for(a=0,e=g[b].length;a<e;a++){c[b][a]=g[b][a]}}c.toString=this.path2string;return c},pathToAbsolute:function(c){if(!this.is(c,"array")||!this.is(c&&c[0],"array")){c=this.parsePathString(c)}var k=[],m=0,l=0,o=0,n=0,g=0,h=c.length,b,d,e,a;if(h&&c[0][0]=="M"){m=+c[0][1];l=+c[0][2];o=m;n=l;g++;k[0]=["M",m,l]}for(;g<h;g++){b=k[g]=[];d=c[g];if(d[0]!=d[0].toUpperCase()){b[0]=d[0].toUpperCase();switch(b[0]){case"A":b[1]=d[1];b[2]=d[2];b[3]=d[3];b[4]=d[4];b[5]=d[5];b[6]=+(d[6]+m);b[7]=+(d[7]+l);break;case"V":b[1]=+d[1]+l;break;case"H":b[1]=+d[1]+m;break;case"M":o=+d[1]+m;n=+d[2]+l;default:e=1;a=d.length;for(;e<a;e++){b[e]=+d[e]+((e%2)?m:l)}}}else{e=0;a=d.length;for(;e<a;e++){k[g][e]=d[e]}}switch(b[0]){case"Z":m=o;l=n;break;case"H":m=b[1];break;case"V":l=b[1];break;case"M":d=k[g];a=d.length;o=d[a-2];n=d[a-1];default:d=k[g];a=d.length;m=d[a-2];l=d[a-1]}}k.toString=this.path2string;return k},pathToRelative:function(d){if(!this.is(d,"array")||!this.is(d&&d[0],"array")){d=this.parsePathString(d)}var n=[],p=0,o=0,t=0,s=0,c=0,a,q,h,g,e,m,u,l,b;if(d[0][0]=="M"){p=d[0][1];o=d[0][2];t=p;s=o;c++;n.push(["M",p,o])}for(h=c,u=d.length;h<u;h++){a=n[h]=[];q=d[h];if(q[0]!=q[0].toLowerCase()){a[0]=q[0].toLowerCase();switch(a[0]){case"a":a[1]=q[1];a[2]=q[2];a[3]=q[3];a[4]=q[4];a[5]=q[5];a[6]=+(q[6]-p).toFixed(3);a[7]=+(q[7]-o).toFixed(3);break;case"v":a[1]=+(q[1]-o).toFixed(3);break;case"m":t=q[1];s=q[2];default:for(g=1,l=q.length;g<l;g++){a[g]=+(q[g]-((g%2)?p:o)).toFixed(3)}}}else{a=n[h]=[];if(q[0]=="m"){t=q[1]+p;s=q[2]+o}for(e=0,b=q.length;e<b;e++){n[h][e]=q[e]}}m=n[h].length;switch(n[h][0]){case"z":p=t;o=s;break;case"h":p+=+n[h][m-1];break;case"v":o+=+n[h][m-1];break;default:p+=+n[h][m-2];o+=+n[h][m-1]}}n.toString=this.path2string;return n},path2curve:function(k){var d=this,h=d.pathToAbsolute(k),c=h.length,j={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},b,a,g,e;for(b=0;b<c;b++){h[b]=d.command2curve(h[b],j);if(h[b].length>7){h[b].shift();e=h[b];while(e.length){Ext.Array.splice(h,b++,0,["C"].concat(Ext.Array.splice(e,0,6)))}Ext.Array.erase(h,b,1);c=h.length;b--}a=h[b];g=a.length;j.x=a[g-2];j.y=a[g-1];j.bx=parseFloat(a[g-4])||j.x;j.by=parseFloat(a[g-3])||j.y}return h},interpolatePaths:function(r,l){var j=this,d=j.pathToAbsolute(r),m=j.pathToAbsolute(l),n={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},a={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},b=function(p,s){if(p[s].length>7){p[s].shift();var t=p[s];while(t.length){Ext.Array.splice(p,s++,0,["C"].concat(Ext.Array.splice(t,0,6)))}Ext.Array.erase(p,s,1);o=Math.max(d.length,m.length||0)}},c=function(v,u,s,p,t){if(v&&u&&v[t][0]=="M"&&u[t][0]!="M"){Ext.Array.splice(u,t,0,["M",p.x,p.y]);s.bx=0;s.by=0;s.x=v[t][1];s.y=v[t][2];o=Math.max(d.length,m.length||0)}},h,o,g,q,e,k;for(h=0,o=Math.max(d.length,m.length||0);h<o;h++){d[h]=j.command2curve(d[h],n);b(d,h);(m[h]=j.command2curve(m[h],a));b(m,h);c(d,m,n,a,h);c(m,d,a,n,h);g=d[h];q=m[h];e=g.length;k=q.length;n.x=g[e-2];n.y=g[e-1];n.bx=parseFloat(g[e-4])||n.x;n.by=parseFloat(g[e-3])||n.y;a.bx=(parseFloat(q[k-4])||a.x);a.by=(parseFloat(q[k-3])||a.y);a.x=q[k-2];a.y=q[k-1]}return[d,m]},command2curve:function(c,b){var a=this;if(!c){return["C",b.x,b.y,b.x,b.y,b.x,b.y]}if(c[0]!="T"&&c[0]!="Q"){b.qx=b.qy=null}switch(c[0]){case"M":b.X=c[1];b.Y=c[2];break;case"A":c=["C"].concat(a.arc2curve.apply(a,[b.x,b.y].concat(c.slice(1))));break;case"S":c=["C",b.x+(b.x-(b.bx||b.x)),b.y+(b.y-(b.by||b.y))].concat(c.slice(1));break;case"T":b.qx=b.x+(b.x-(b.qx||b.x));b.qy=b.y+(b.y-(b.qy||b.y));c=["C"].concat(a.quadratic2curve(b.x,b.y,b.qx,b.qy,c[1],c[2]));break;case"Q":b.qx=c[1];b.qy=c[2];c=["C"].concat(a.quadratic2curve(b.x,b.y,c[1],c[2],c[3],c[4]));break;case"L":c=["C"].concat(b.x,b.y,c[1],c[2],c[1],c[2]);break;case"H":c=["C"].concat(b.x,b.y,c[1],b.y,c[1],b.y);break;case"V":c=["C"].concat(b.x,b.y,b.x,c[1],b.x,c[1]);break;case"Z":c=["C"].concat(b.x,b.y,b.X,b.Y,b.X,b.Y);break}return c},quadratic2curve:function(b,d,h,e,a,c){var g=1/3,i=2/3;return[g*b+i*h,g*d+i*e,g*a+i*h,g*c+i*e,a,c]},rotate:function(b,h,a){var d=Math.cos(a),c=Math.sin(a),g=b*d-h*c,e=b*c+h*d;return{x:g,y:e}},arc2curve:function(v,ah,J,H,B,o,j,u,ag,C){var z=this,e=Math.PI,A=z.radian,G=e*120/180,b=A*(+B||0),O=[],L=Math,V=L.cos,a=L.sin,X=L.sqrt,w=L.abs,p=L.asin,K,c,r,Q,P,ac,d,T,W,E,D,n,m,s,l,af,g,ae,R,U,S,ad,ab,aa,Y,N,Z,M,F,I,q;if(!C){K=z.rotate(v,ah,-b);v=K.x;ah=K.y;K=z.rotate(u,ag,-b);u=K.x;ag=K.y;c=V(A*B);r=a(A*B);Q=(v-u)/2;P=(ah-ag)/2;ac=(Q*Q)/(J*J)+(P*P)/(H*H);if(ac>1){ac=X(ac);J=ac*J;H=ac*H}d=J*J;T=H*H;W=(o==j?-1:1)*X(w((d*T-d*P*P-T*Q*Q)/(d*P*P+T*Q*Q)));E=W*J*P/H+(v+u)/2;D=W*-H*Q/J+(ah+ag)/2;n=p(((ah-D)/H).toFixed(7));m=p(((ag-D)/H).toFixed(7));n=v<E?e-n:n;m=u<E?e-m:m;if(n<0){n=e*2+n}if(m<0){m=e*2+m}if(j&&n>m){n=n-e*2}if(!j&&m>n){m=m-e*2}}else{n=C[0];m=C[1];E=C[2];D=C[3]}s=m-n;if(w(s)>G){F=m;I=u;q=ag;m=n+G*(j&&m>n?1:-1);u=E+J*V(m);ag=D+H*a(m);O=z.arc2curve(u,ag,J,H,B,0,j,I,q,[m,F,E,D])}s=m-n;l=V(n);af=a(n);g=V(m);ae=a(m);R=L.tan(s/4);U=4/3*J*R;S=4/3*H*R;ad=[v,ah];ab=[v+U*af,ah-S*l];aa=[u+U*ae,ag-S*g];Y=[u,ag];ab[0]=2*ad[0]-ab[0];ab[1]=2*ad[1]-ab[1];if(C){return[ab,aa,Y].concat(O)}else{O=[ab,aa,Y].concat(O).join().split(",");N=[];M=O.length;for(Z=0;Z<M;Z++){N[Z]=Z%2?z.rotate(O[Z-1],O[Z],b).y:z.rotate(O[Z],O[Z+1],b).x}return N}},rotateAndTranslatePath:function(k){var c=k.rotation.degrees,d=k.rotation.x,b=k.rotation.y,o=k.translation.x,l=k.translation.y,n,g,a,m,e,h=[];if(!c&&!o&&!l){return this.pathToAbsolute(k.attr.path)}o=o||0;l=l||0;n=this.pathToAbsolute(k.attr.path);for(g=n.length;g--;){a=h[g]=n[g].slice();if(a[0]=="A"){m=this.rotatePoint(a[6],a[7],c,d,b);a[6]=m.x+o;a[7]=m.y+l}else{e=1;while(a[e+1]!=null){m=this.rotatePoint(a[e],a[e+1],c,d,b);a[e]=m.x+o;a[e+1]=m.y+l;e+=2}}}return h},rotatePoint:function(b,h,e,a,g){if(!e){return{x:b,y:h}}a=a||0;g=g||0;b=b-a;h=h-g;e=e*this.radian;var d=Math.cos(e),c=Math.sin(e);return{x:b*d-h*c+a,y:b*c+h*d+g}},pathDimensions:function(m){if(!m||!(m+"")){return{x:0,y:0,width:0,height:0}}m=this.path2curve(m);var k=0,j=0,d=[],b=[],e=0,h=m.length,c,a,l,g;for(;e<h;e++){c=m[e];if(c[0]=="M"){k=c[1];j=c[2];d.push(k);b.push(j)}else{g=this.curveDim(k,j,c[1],c[2],c[3],c[4],c[5],c[6]);d=d.concat(g.min.x,g.max.x);b=b.concat(g.min.y,g.max.y);k=c[5];j=c[6]}}a=Math.min.apply(0,d);l=Math.min.apply(0,b);return{x:a,y:l,path:m,width:Math.max.apply(0,d)-a,height:Math.max.apply(0,b)-l}},intersectInside:function(b,c,a){return(a[0]-c[0])*(b[1]-c[1])>(a[1]-c[1])*(b[0]-c[0])},intersectIntersection:function(n,m,g,d){var c=[],b=g[0]-d[0],a=g[1]-d[1],k=n[0]-m[0],i=n[1]-m[1],l=g[0]*d[1]-g[1]*d[0],j=n[0]*m[1]-n[1]*m[0],h=1/(b*i-a*k);c[0]=(l*k-j*b)*h;c[1]=(l*i-j*a)*h;return c},intersect:function(o,c){var n=this,k=0,m=c.length,h=c[m-1],q=o,g,r,l,p,a,b,d;for(;k<m;++k){g=c[k];b=q;q=[];r=b[b.length-1];d=0;a=b.length;for(;d<a;d++){l=b[d];if(n.intersectInside(l,h,g)){if(!n.intersectInside(r,h,g)){q.push(n.intersectIntersection(r,l,h,g))}q.push(l)}else{if(n.intersectInside(r,h,g)){q.push(n.intersectIntersection(r,l,h,g))}}r=l}h=g}return q},bezier:function(h,g,m,l,e){if(e===0){return h}else{if(e===1){return l}}var j=1-e,i=j*j*j,k=e/j;return i*(h+k*(3*g+k*(3*m+l*k)))},bezierDim:function(t,q,n,m){var v=[],g,j,p,h,u,e,w,k,o,l;if(t+3*n==m+3*q){g=t-q;g/=2*(t-q-q+n);if(g<1&&g>0){v.push(g)}}else{j=t-3*q+3*n-m;p=2*(t-q-q+n);h=t-q;u=p*p-4*j*h;e=j+j;if(u===0){g=p/e;if(g<1&&g>0){v.push(g)}}else{if(u>0){w=Math.sqrt(u);g=(w+p)/e;if(g<1&&g>0){v.push(g)}g=(p-w)/e;if(g<1&&g>0){v.push(g)}}}}k=Math.min(t,m);o=Math.max(t,m);for(l=0;l<v.length;l++){k=Math.min(k,this.bezier(t,q,n,m,v[l]));o=Math.max(o,this.bezier(t,q,n,m,v[l]))}return[k,o]},curveDim:function(b,a,d,c,k,j,h,e){var i=this.bezierDim(b,d,k,h),g=this.bezierDim(a,c,j,e);return{min:{x:i[0],y:g[0]},max:{x:i[1],y:g[1]}}},getAnchors:function(e,d,k,j,v,u,q){q=q||4;var i=Math,p=i.PI,r=p/2,m=i.abs,a=i.sin,b=i.cos,g=i.atan,t,s,h,l,o,n,x,w,c;t=(k-e)/q;s=(v-k)/q;if((j>=d&&j>=u)||(j<=d&&j<=u)){h=l=r}else{h=g((k-e)/m(j-d));if(d<j){h=p-h}l=g((v-k)/m(j-u));if(u<j){l=p-l}}c=r-((h+l)%(p*2))/2;if(c>r){c-=p}h+=c;l+=c;o=k-t*a(h);n=j+t*b(h);x=k+s*a(l);w=j+s*b(l);if((j>d&&n<d)||(j<d&&n>d)){o+=m(d-n)*(o-k)/(n-j);n=d}if((j>u&&w<u)||(j<u&&w>u)){x-=m(u-w)*(x-k)/(w-j);w=u}return{x1:o,y1:n,x2:x,y2:w}},smooth:function(a,r){var q=this.path2curve(a),e=[q[0]],k=q[0][1],h=q[0][2],s,u,v=1,l=q.length,g=1,n=k,m=h,c=0,b=0,A,z,w,o,t,p,d;for(;v<l;v++){A=q[v];z=A.length;w=q[v-1];o=w.length;t=q[v+1];p=t&&t.length;if(A[0]=="M"){n=A[1];m=A[2];s=v+1;while(q[s][0]!="C"){s++}c=q[s][5];b=q[s][6];e.push(["M",n,m]);g=e.length;k=n;h=m;continue}if(A[z-2]==n&&A[z-1]==m&&(!t||t[0]=="M")){d=e[g].length;u=this.getAnchors(w[o-2],w[o-1],n,m,e[g][d-2],e[g][d-1],r);e[g][1]=u.x2;e[g][2]=u.y2}else{if(!t||t[0]=="M"){u={x1:A[z-2],y1:A[z-1]}}else{u=this.getAnchors(w[o-2],w[o-1],A[z-2],A[z-1],t[p-2],t[p-1],r)}}e.push(["C",k,h,u.x1,u.y1,A[z-2],A[z-1]]);k=u.x2;h=u.y2}return e},findDotAtSegment:function(b,a,d,c,j,i,h,g,k){var e=1-k;return{x:Math.pow(e,3)*b+Math.pow(e,2)*3*k*d+e*3*k*k*j+Math.pow(k,3)*h,y:Math.pow(e,3)*a+Math.pow(e,2)*3*k*c+e*3*k*k*i+Math.pow(k,3)*g}},snapEnds:function(r,s,d,n){if(Ext.isDate(r)){return this.snapEndsByDate(r,s,d)}var c=(s-r)/d,a=Math.floor(Math.log(c)/Math.LN10)+1,e=Math.pow(10,a),t,p=Math.round((c%e)*Math.pow(10,2-a)),b=[[0,15],[20,4],[30,2],[40,4],[50,9],[60,4],[70,2],[80,4],[100,15]],h=0,q,k,j,g,l=1000000000,o=b.length;t=r=Math.floor(r/e)*e;if(n){for(j=0;j<o;j++){q=b[j][0];k=(q-p)<0?1000000:(q-p)/b[j][1];if(k<l){g=q;l=k}}c=Math.floor(c*Math.pow(10,-a))*Math.pow(10,a)+g*Math.pow(10,a-2);while(t<s){t+=c;h++}s=+t.toFixed(10)}else{h=d}return{from:r,to:s,power:a,step:c,steps:h}},snapEndsByDate:function(k,l,b,m){var e=false,h=[[Ext.Date.MILLI,[1,2,3,5,10,20,30,50,100,200,300,500]],[Ext.Date.SECOND,[1,2,3,5,10,15,30]],[Ext.Date.MINUTE,[1,2,3,5,10,20,30]],[Ext.Date.HOUR,[1,2,3,4,6,12]],[Ext.Date.DAY,[1,2,3,7,14]],[Ext.Date.MONTH,[1,2,3,4,6]]],g=h.length,i=false,c,d,a,n;for(n=0;n<g;n++){c=h[n];if(!i){for(d=0;d<c[1].length;d++){if(l<Ext.Date.add(k,c[0],c[1][d]*b)){e=[c[0],c[1][d]];i=true;break}}}}if(!e){a=this.snapEnds(k.getFullYear(),l.getFullYear()+1,b,m);e=[Date.YEAR,Math.round(a.step)]}return this.snapEndsByDateAndStep(k,l,e,m)},snapEndsByDateAndStep:function(i,h,e,a){var d=[i.getFullYear(),i.getMonth(),i.getDate(),i.getHours(),i.getMinutes(),i.getSeconds(),i.getMilliseconds()],b=0,g,c;if(a){g=i}else{switch(e[0]){case Ext.Date.MILLI:g=new Date(d[0],d[1],d[2],d[3],d[4],d[5],Math.floor(d[6]/e[1])*e[1]);break;case Ext.Date.SECOND:g=new Date(d[0],d[1],d[2],d[3],d[4],Math.floor(d[5]/e[1])*e[1],0);break;case Ext.Date.MINUTE:g=new Date(d[0],d[1],d[2],d[3],Math.floor(d[4]/e[1])*e[1],0,0);break;case Ext.Date.HOUR:g=new Date(d[0],d[1],d[2],Math.floor(d[3]/e[1])*e[1],0,0,0);break;case Ext.Date.DAY:g=new Date(d[0],d[1],Math.floor(d[2]-1/e[1])*e[1]+1,0,0,0,0);break;case Ext.Date.MONTH:g=new Date(d[0],Math.floor(d[1]/e[1])*e[1],1,0,0,0,0);break;default:g=new Date(Math.floor(d[0]/e[1])*e[1],0,1,0,0,0,0);break}}c=g;while(c<h){c=Ext.Date.add(c,e[0],e[1]);b++}if(a){c=h}return{from:+g,to:+c,step:(c-g)/b,steps:b}},sorter:function(d,c){return d.offset-c.offset},rad:function(a){return a%360*Math.PI/180},degrees:function(a){return a*180/Math.PI%360},withinBox:function(a,c,b){b=b||{};return(a>=b.x&&a<=(b.x+b.width)&&c>=b.y&&c<=(b.y+b.height))},parseGradient:function(k){var e=this,g=k.type||"linear",c=k.angle||0,i=e.radian,l=k.stops,a=[],j,b,h,d;if(g=="linear"){b=[0,0,Math.cos(c*i),Math.sin(c*i)];h=1/(Math.max(Math.abs(b[2]),Math.abs(b[3]))||1);b[2]*=h;b[3]*=h;if(b[2]<0){b[0]=-b[2];b[2]=0}if(b[3]<0){b[1]=-b[3];b[3]=0}}for(j in l){if(l.hasOwnProperty(j)&&e.stopsRE.test(j)){d={offset:parseInt(j,10),color:Ext.draw.Color.toHex(l[j].color)||"#ffffff",opacity:l[j].opacity||1};a.push(d)}}Ext.Array.sort(a,e.sorter);if(g=="linear"){return{id:k.id,type:g,vector:b,stops:a}}else{return{id:k.id,type:g,centerX:k.centerX,centerY:k.centerY,focalX:k.focalX,focalY:k.focalY,radius:k.radius,vector:b,stops:a}}}});Ext.define("Ext.fx.PropertyHandler",{requires:["Ext.draw.Draw"],statics:{defaultHandler:{pixelDefaultsRE:/width|height|top$|bottom$|left$|right$/i,unitRE:/^(-?\d*\.?\d*){1}(em|ex|px|in|cm|mm|pt|pc|%)*$/,scrollRE:/^scroll/i,computeDelta:function(j,c,a,g,i){a=(typeof a=="number")?a:1;var h=this.unitRE,d=h.exec(j),b,e;if(d){j=d[1];e=d[2];if(!this.scrollRE.test(i)&&!e&&this.pixelDefaultsRE.test(i)){e="px"}}j=+j||0;d=h.exec(c);if(d){c=d[1];e=d[2]||e}c=+c||0;b=(g!=null)?g:j;return{from:j,delta:(c-b)*a,units:e}},get:function(o,b,a,n,k){var m=o.length,d=[],e,h,l,c,g;for(e=0;e<m;e++){if(n){h=n[e][1].from}if(Ext.isArray(o[e][1])&&Ext.isArray(b)){l=[];c=0;g=o[e][1].length;for(;c<g;c++){l.push(this.computeDelta(o[e][1][c],b[c],a,h,k))}d.push([o[e][0],l])}else{d.push([o[e][0],this.computeDelta(o[e][1],b,a,h,k)])}}return d},set:function(l,g){var h=l.length,c=[],d,a,k,e,b;for(d=0;d<h;d++){a=l[d][1];if(Ext.isArray(a)){k=[];b=0;e=a.length;for(;b<e;b++){k.push(a[b].from+a[b].delta*g+(a[b].units||0))}c.push([l[d][0],k])}else{c.push([l[d][0],a.from+a.delta*g+(a.units||0)])}}return c}},stringHandler:{computeDelta:function(e,b,d,c,a){return{from:e,delta:b}},get:function(o,b,a,n,k){var m=o.length,d=[],e,h,l,c,g;for(e=0;e<m;e++){d.push([o[e][0],this.computeDelta(o[e][1],b,a,h,k)])}return d},set:function(l,g){var h=l.length,c=[],d,a,k,e,b;for(d=0;d<h;d++){a=l[d][1];c.push([l[d][0],a.delta])}return c}},color:{rgbRE:/^rgb\(([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\)$/i,hexRE:/^#?([0-9A-F]{2})([0-9A-F]{2})([0-9A-F]{2})$/i,hex3RE:/^#?([0-9A-F]{1})([0-9A-F]{1})([0-9A-F]{1})$/i,parseColor:function(e,a){a=(typeof a=="number")?a:1;var g=false,c=[this.hexRE,this.rgbRE,this.hex3RE],d=c.length,j,b,k,h;for(h=0;h<d;h++){k=c[h];b=(h%2===0)?16:10;j=k.exec(e);if(j&&j.length===4){if(h===2){j[1]+=j[1];j[2]+=j[2];j[3]+=j[3]}g={red:parseInt(j[1],b),green:parseInt(j[2],b),blue:parseInt(j[3],b)};break}}return g||e},computeDelta:function(h,a,e,c){h=this.parseColor(h);a=this.parseColor(a,e);var g=c?c:h,b=typeof g,d=typeof a;if(b=="string"||b=="undefined"||d=="string"||d=="undefined"){return a||g}return{from:h,delta:{red:Math.round((a.red-g.red)*e),green:Math.round((a.green-g.green)*e),blue:Math.round((a.blue-g.blue)*e)}}},get:function(j,a,g,d){var h=j.length,c=[],e,b;for(e=0;e<h;e++){if(d){b=d[e][1].from}c.push([j[e][0],this.computeDelta(j[e][1],a,g,b)])}return c},set:function(k,e){var g=k.length,c=[],d,b,a,h,j;for(d=0;d<g;d++){b=k[d][1];if(b){h=b.from;j=b.delta;b=(typeof b=="object"&&"red" in b)?"rgb("+b.red+", "+b.green+", "+b.blue+")":b;b=(typeof b=="object"&&b.length)?b[0]:b;if(typeof b=="undefined"){return[]}a=typeof b=="string"?b:"rgb("+[(h.red+Math.round(j.red*e))%256,(h.green+Math.round(j.green*e))%256,(h.blue+Math.round(j.blue*e))%256].join(",")+")";c.push([k[d][0],a])}}return c}},object:{interpolate:function(d,b){b=(typeof b=="number")?b:1;var a={},c;for(c in d){a[c]=parseFloat(d[c])*b}return a},computeDelta:function(h,a,c,b){h=this.interpolate(h);a=this.interpolate(a,c);var g=b?b:h,e={},d;for(d in a){e[d]=a[d]-g[d]}return{from:h,delta:e}},get:function(j,a,g,d){var h=j.length,c=[],e,b;for(e=0;e<h;e++){if(d){b=d[e][1].from}c.push([j[e][0],this.computeDelta(j[e][1],a,g,b)])}return c},set:function(l,g){var h=l.length,c=[],e={},d,j,k,b,a;for(d=0;d<h;d++){b=l[d][1];j=b.from;k=b.delta;for(a in j){e[a]=j[a]+k[a]*g}c.push([l[d][0],e])}return c}},path:{computeDelta:function(e,a,c,b){c=(typeof c=="number")?c:1;var d;e=+e||0;a=+a||0;d=(b!=null)?b:e;return{from:e,delta:(a-d)*c}},forcePath:function(a){if(!Ext.isArray(a)&&!Ext.isArray(a[0])){a=Ext.draw.Draw.parsePathString(a)}return a},get:function(b,l,a,q){var c=this.forcePath(l),n=[],s=b.length,d,h,o,g,p,m,e,t,r;for(o=0;o<s;o++){r=this.forcePath(b[o][1]);g=Ext.draw.Draw.interpolatePaths(r,c);r=g[0];c=g[1];d=r.length;t=[];for(m=0;m<d;m++){g=[r[m][0]];h=r[m].length;for(e=1;e<h;e++){p=q&&q[0][1][m][e].from;g.push(this.computeDelta(r[m][e],c[m][e],a,p))}t.push(g)}n.push([b[o][0],t])}return n},set:function(p,n){var o=p.length,e=[],h,g,d,l,m,c,a,b;for(h=0;h<o;h++){c=p[h][1];l=[];a=c.length;for(g=0;g<a;g++){m=[c[g][0]];b=c[g].length;for(d=1;d<b;d++){m.push(c[g][d].from+c[g][d].delta*n)}l.push(m.join(","))}e.push([p[h][0],l.join(",")])}return e}}}},function(){var b=["outlineColor","backgroundColor","borderColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","fill","stroke"],c=b.length,a=0,d;for(;a<c;a++){d=b[a];this[d]=this.color}b=["cursor"];c=b.length;a=0;for(;a<c;a++){d=b[a];this[d]=this.stringHandler}});Ext.define("Ext.fx.Anim",{mixins:{observable:"Ext.util.Observable"},requires:["Ext.fx.Manager","Ext.fx.Animator","Ext.fx.Easing","Ext.fx.CubicBezier","Ext.fx.PropertyHandler"],isAnimation:true,duration:250,delay:0,delayStart:0,dynamic:false,easing:"ease",damper:1,bezierRE:/^(?:cubic-)?bezier\(([^,]+),([^,]+),([^,]+),([^\)]+)\)/,reverse:false,running:false,paused:false,iterations:1,alternate:false,currentIteration:0,startTime:0,frameCount:0,constructor:function(a){var b=this,c;a=a||{};if(a.keyframes){return new Ext.fx.Animator(a)}Ext.apply(b,a);if(b.from===undefined){b.from={}}b.propHandlers={};b.config=a;b.target=Ext.fx.Manager.createTarget(b.target);b.easingFn=Ext.fx.Easing[b.easing];b.target.dynamic=b.dynamic;if(!b.easingFn){b.easingFn=String(b.easing).match(b.bezierRE);if(b.easingFn&&b.easingFn.length==5){c=b.easingFn;b.easingFn=Ext.fx.CubicBezier.cubicBezier(+c[1],+c[2],+c[3],+c[4])}}b.id=Ext.id(null,"ext-anim-");b.addEvents("beforeanimate","afteranimate","lastframe");b.mixins.observable.constructor.call(b);Ext.fx.Manager.addAnim(b)},setAttr:function(a,b){return Ext.fx.Manager.items.get(this.id).setAttr(this.target,a,b)},initAttrs:function(){var e=this,h=e.from,i=e.to,g=e.initialFrom||{},c={},a,b,j,d;for(d in i){if(i.hasOwnProperty(d)){a=e.target.getAttr(d,h[d]);b=i[d];if(!Ext.fx.PropertyHandler[d]){if(Ext.isObject(b)){j=e.propHandlers[d]=Ext.fx.PropertyHandler.object}else{j=e.propHandlers[d]=Ext.fx.PropertyHandler.defaultHandler}}else{j=e.propHandlers[d]=Ext.fx.PropertyHandler[d]}c[d]=j.get(a,b,e.damper,g[d],d)}}e.currentAttrs=c},start:function(d){var e=this,c=e.delay,b=e.delayStart,a;if(c){if(!b){e.delayStart=d;return}else{a=d-b;if(a<c){return}else{d=new Date(b.getTime()+c)}}}if(e.fireEvent("beforeanimate",e)!==false){e.startTime=d;if(!e.paused&&!e.currentAttrs){e.initAttrs()}e.running=true;e.frameCount=0}},runAnim:function(l){var i=this,k=i.currentAttrs,d=i.duration,c=i.easingFn,b=i.propHandlers,g={},h,j,e,a;if(l>=d){l=d;a=true}if(i.reverse){l=d-l}for(e in k){if(k.hasOwnProperty(e)){j=k[e];h=a?1:c(l/d);g[e]=b[e].set(j,h)}}i.frameCount++;return g},lastFrame:function(){var c=this,a=c.iterations,b=c.currentIteration;b++;if(b<a){if(c.alternate){c.reverse=!c.reverse}c.startTime=new Date();c.currentIteration=b;c.paused=false}else{c.currentIteration=0;c.end();c.fireEvent("lastframe",c,c.startTime)}},endWasCalled:0,end:function(){if(this.endWasCalled++){return}var a=this;a.startTime=0;a.paused=false;a.running=false;Ext.fx.Manager.removeAnim(a);a.fireEvent("afteranimate",a,a.startTime);Ext.callback(a.callback,a.scope,[a,a.startTime])},isReady:function(){return this.paused===false&&this.running===false&&this.iterations>0},isRunning:function(){return this.paused===false&&this.running===true&&this.isAnimator!==true}});Ext.enableFx=true;Ext.define("Ext.dd.DragDrop",{requires:["Ext.dd.DragDropManager"],constructor:function(c,a,b){if(c){this.init(c,a,b)}},id:null,config:null,dragElId:null,handleElId:null,invalidHandleTypes:null,invalidHandleIds:null,invalidHandleClasses:null,startPageX:0,startPageY:0,groups:null,locked:false,lock:function(){this.locked=true},moveOnly:false,unlock:function(){this.locked=false},isTarget:true,padding:null,_domRef:null,__ygDragDrop:true,constrainX:false,constrainY:false,minX:0,maxX:0,minY:0,maxY:0,maintainOffset:false,xTicks:null,yTicks:null,primaryButtonOnly:true,available:false,hasOuterHandles:false,b4StartDrag:function(a,b){},startDrag:function(a,b){},b4Drag:function(a){},onDrag:function(a){},onDragEnter:function(a,b){},b4DragOver:function(a){},onDragOver:function(a,b){},b4DragOut:function(a){},onDragOut:function(a,b){},b4DragDrop:function(a){},onDragDrop:function(a,b){},onInvalidDrop:function(a){},b4EndDrag:function(a){},endDrag:function(a){},b4MouseDown:function(a){},onMouseDown:function(a){},onMouseUp:function(a){},onAvailable:function(){},defaultPadding:{left:0,right:0,top:0,bottom:0},constrainTo:function(i,g,n){if(Ext.isNumber(g)){g={left:g,right:g,top:g,bottom:g}}g=g||this.defaultPadding;var k=Ext.get(this.getEl()).getBox(),a=Ext.get(i),m=a.getScroll(),j,d=a.dom,l,h,e;if(d==document.body){j={x:m.left,y:m.top,width:Ext.Element.getViewWidth(),height:Ext.Element.getViewHeight()}}else{l=a.getXY();j={x:l[0],y:l[1],width:d.clientWidth,height:d.clientHeight}}h=k.y-j.y;e=k.x-j.x;this.resetConstraints();this.setXConstraint(e-(g.left||0),j.width-e-k.width-(g.right||0),this.xTickSize);this.setYConstraint(h-(g.top||0),j.height-h-k.height-(g.bottom||0),this.yTickSize)},getEl:function(){if(!this._domRef){this._domRef=Ext.getDom(this.id)}return this._domRef},getDragEl:function(){return Ext.getDom(this.dragElId)},init:function(c,a,b){this.initTarget(c,a,b);Ext.EventManager.on(this.id,"mousedown",this.handleMouseDown,this)},initTarget:function(c,a,b){this.config=b||{};this.DDMInstance=Ext.dd.DragDropManager;this.groups={};if(typeof c!=="string"){c=Ext.id(c)}this.id=c;this.addToGroup((a)?a:"default");this.handleElId=c;this.setDragElId(c);this.invalidHandleTypes={A:"A"};this.invalidHandleIds={};this.invalidHandleClasses=[];this.applyConfig();this.handleOnAvailable()},applyConfig:function(){this.padding=this.config.padding||[0,0,0,0];this.isTarget=(this.config.isTarget!==false);this.maintainOffset=(this.config.maintainOffset);this.primaryButtonOnly=(this.config.primaryButtonOnly!==false)},handleOnAvailable:function(){this.available=true;this.resetConstraints();this.onAvailable()},setPadding:function(c,a,d,b){if(!a&&0!==a){this.padding=[c,c,c,c]}else{if(!d&&0!==d){this.padding=[c,a,c,a]}else{this.padding=[c,a,d,b]}}},setInitPosition:function(d,c){var e=this.getEl(),b,a,g;if(!this.DDMInstance.verifyEl(e)){return}b=d||0;a=c||0;g=Ext.Element.getXY(e);this.initPageX=g[0]-b;this.initPageY=g[1]-a;this.lastPageX=g[0];this.lastPageY=g[1];this.setStartPosition(g)},setStartPosition:function(b){var a=b||Ext.Element.getXY(this.getEl());this.deltaSetXY=null;this.startPageX=a[0];this.startPageY=a[1]},addToGroup:function(a){this.groups[a]=true;this.DDMInstance.regDragDrop(this,a)},removeFromGroup:function(a){if(this.groups[a]){delete this.groups[a]}this.DDMInstance.removeDDFromGroup(this,a)},setDragElId:function(a){this.dragElId=a},setHandleElId:function(a){if(typeof a!=="string"){a=Ext.id(a)}this.handleElId=a;this.DDMInstance.regHandle(this.id,a)},setOuterHandleElId:function(a){if(typeof a!=="string"){a=Ext.id(a)}Ext.EventManager.on(a,"mousedown",this.handleMouseDown,this);this.setHandleElId(a);this.hasOuterHandles=true},unreg:function(){Ext.EventManager.un(this.id,"mousedown",this.handleMouseDown,this);this._domRef=null;this.DDMInstance._remove(this)},destroy:function(){this.unreg()},isLocked:function(){return(this.DDMInstance.isLocked()||this.locked)},handleMouseDown:function(b,a){if(this.primaryButtonOnly&&b.button!=0){return}if(this.isLocked()){return}this.DDMInstance.refreshCache(this.groups);if(this.hasOuterHandles||this.DDMInstance.isOverTarget(b.getPoint(),this)){if(this.clickValidator(b)){this.setStartPosition();this.b4MouseDown(b);this.onMouseDown(b);this.DDMInstance.handleMouseDown(b,this);this.DDMInstance.stopEvent(b)}}},clickValidator:function(b){var a=b.getTarget();return(this.isValidHandleChild(a)&&(this.id==this.handleElId||this.DDMInstance.handleWasClicked(a,this.id)))},addInvalidHandleType:function(a){var b=a.toUpperCase();this.invalidHandleTypes[b]=b},addInvalidHandleId:function(a){if(typeof a!=="string"){a=Ext.id(a)}this.invalidHandleIds[a]=a},addInvalidHandleClass:function(a){this.invalidHandleClasses.push(a)},removeInvalidHandleType:function(a){var b=a.toUpperCase();delete this.invalidHandleTypes[b]},removeInvalidHandleId:function(a){if(typeof a!=="string"){a=Ext.id(a)}delete this.invalidHandleIds[a]},removeInvalidHandleClass:function(b){for(var c=0,a=this.invalidHandleClasses.length;c<a;++c){if(this.invalidHandleClasses[c]==b){delete this.invalidHandleClasses[c]}}},isValidHandleChild:function(d){var c=true,h,b,a;try{h=d.nodeName.toUpperCase()}catch(g){h=d.nodeName}c=c&&!this.invalidHandleTypes[h];c=c&&!this.invalidHandleIds[d.id];for(b=0,a=this.invalidHandleClasses.length;c&&b<a;++b){c=!Ext.fly(d).hasCls(this.invalidHandleClasses[b])}return c},setXTicks:function(d,a){this.xTicks=[];this.xTickSize=a;var c={},b;for(b=this.initPageX;b>=this.minX;b=b-a){if(!c[b]){this.xTicks[this.xTicks.length]=b;c[b]=true}}for(b=this.initPageX;b<=this.maxX;b=b+a){if(!c[b]){this.xTicks[this.xTicks.length]=b;c[b]=true}}Ext.Array.sort(this.xTicks,this.DDMInstance.numericSort)},setYTicks:function(d,a){this.yTicks=[];this.yTickSize=a;var c={},b;for(b=this.initPageY;b>=this.minY;b=b-a){if(!c[b]){this.yTicks[this.yTicks.length]=b;c[b]=true}}for(b=this.initPageY;b<=this.maxY;b=b+a){if(!c[b]){this.yTicks[this.yTicks.length]=b;c[b]=true}}Ext.Array.sort(this.yTicks,this.DDMInstance.numericSort)},setXConstraint:function(c,b,a){this.leftConstraint=c;this.rightConstraint=b;this.minX=this.initPageX-c;this.maxX=this.initPageX+b;if(a){this.setXTicks(this.initPageX,a)}this.constrainX=true},clearConstraints:function(){this.constrainX=false;this.constrainY=false;this.clearTicks()},clearTicks:function(){this.xTicks=null;this.yTicks=null;this.xTickSize=0;this.yTickSize=0},setYConstraint:function(a,c,b){this.topConstraint=a;this.bottomConstraint=c;this.minY=this.initPageY-a;this.maxY=this.initPageY+c;if(b){this.setYTicks(this.initPageY,b)}this.constrainY=true},resetConstraints:function(){if(this.initPageX||this.initPageX===0){var b=(this.maintainOffset)?this.lastPageX-this.initPageX:0,a=(this.maintainOffset)?this.lastPageY-this.initPageY:0;this.setInitPosition(b,a)}else{this.setInitPosition()}if(this.constrainX){this.setXConstraint(this.leftConstraint,this.rightConstraint,this.xTickSize)}if(this.constrainY){this.setYConstraint(this.topConstraint,this.bottomConstraint,this.yTickSize)}},getTick:function(h,d){if(!d){return h}else{if(d[0]>=h){return d[0]}else{var b,a,c,g,e;for(b=0,a=d.length;b<a;++b){c=b+1;if(d[c]&&d[c]>=h){g=h-d[b];e=d[c]-h;return(e>g)?d[b]:d[c]}}return d[d.length-1]}}},toString:function(){return("DragDrop "+this.id)}});Ext.define("Ext.dd.DD",{extend:"Ext.dd.DragDrop",requires:["Ext.dd.DragDropManager"],constructor:function(c,a,b){if(c){this.init(c,a,b)}},scroll:true,autoOffset:function(c,b){var a=c-this.startPageX,d=b-this.startPageY;this.setDelta(a,d)},setDelta:function(b,a){this.deltaX=b;this.deltaY=a},setDragElPos:function(c,b){var a=this.getDragEl();this.alignElWithMouse(a,c,b)},alignElWithMouse:function(b,e,c){var g=this.getTargetCoord(e,c),d=b.dom?b:Ext.fly(b,"_dd"),l=d.getSize(),i=Ext.Element,j,a,k,h;if(!this.deltaSetXY){j=this.cachedViewportSize={width:i.getDocumentWidth(),height:i.getDocumentHeight()};a=[Math.max(0,Math.min(g.x,j.width-l.width)),Math.max(0,Math.min(g.y,j.height-l.height))];d.setXY(a);k=d.getLocalX();h=d.getLocalY();this.deltaSetXY=[k-g.x,h-g.y]}else{j=this.cachedViewportSize;d.setLeftTop(Math.max(0,Math.min(g.x+this.deltaSetXY[0],j.width-l.width)),Math.max(0,Math.min(g.y+this.deltaSetXY[1],j.height-l.height)))}this.cachePosition(g.x,g.y);this.autoScroll(g.x,g.y,b.offsetHeight,b.offsetWidth);return g},cachePosition:function(b,a){if(b){this.lastPageX=b;this.lastPageY=a}else{var c=Ext.Element.getXY(this.getEl());this.lastPageX=c[0];this.lastPageY=c[1]}},autoScroll:function(l,k,e,m){if(this.scroll){var n=Ext.Element.getViewHeight(),b=Ext.Element.getViewWidth(),p=this.DDMInstance.getScrollTop(),d=this.DDMInstance.getScrollLeft(),j=e+k,o=m+l,i=(n+p-k-this.deltaY),g=(b+d-l-this.deltaX),c=40,a=(document.all)?80:30;if(j>n&&i<c){window.scrollTo(d,p+a)}if(k<p&&p>0&&k-p<c){window.scrollTo(d,p-a)}if(o>b&&g<c){window.scrollTo(d+a,p)}if(l<d&&d>0&&l-d<c){window.scrollTo(d-a,p)}}},getTargetCoord:function(c,b){var a=c-this.deltaX,d=b-this.deltaY;if(this.constrainX){if(a<this.minX){a=this.minX}if(a>this.maxX){a=this.maxX}}if(this.constrainY){if(d<this.minY){d=this.minY}if(d>this.maxY){d=this.maxY}}a=this.getTick(a,this.xTicks);d=this.getTick(d,this.yTicks);return{x:a,y:d}},applyConfig:function(){this.callParent();this.scroll=(this.config.scroll!==false)},b4MouseDown:function(a){this.autoOffset(a.getPageX(),a.getPageY())},b4Drag:function(a){this.setDragElPos(a.getPageX(),a.getPageY())},toString:function(){return("DD "+this.id)}});Ext.define("Ext.dd.DDProxy",{extend:"Ext.dd.DD",statics:{dragElId:"ygddfdiv"},constructor:function(c,a,b){if(c){this.init(c,a,b);this.initFrame()}},resizeFrame:true,centerFrame:false,createFrame:function(){var b=this,a=document.body,d,c;if(!a||!a.firstChild){setTimeout(function(){b.createFrame()},50);return}d=this.getDragEl();if(!d){d=document.createElement("div");d.id=this.dragElId;c=d.style;c.position="absolute";c.visibility="hidden";c.cursor="move";c.border="2px solid #aaa";c.zIndex=999;a.insertBefore(d,a.firstChild)}},initFrame:function(){this.createFrame()},applyConfig:function(){this.callParent();this.resizeFrame=(this.config.resizeFrame!==false);this.centerFrame=(this.config.centerFrame);this.setDragElId(this.config.dragElId||Ext.dd.DDProxy.dragElId)},showFrame:function(e,d){var c=this.getEl(),a=this.getDragEl(),b=a.style;this._resizeProxy();if(this.centerFrame){this.setDelta(Math.round(parseInt(b.width,10)/2),Math.round(parseInt(b.height,10)/2))}this.setDragElPos(e,d);Ext.fly(a).show()},_resizeProxy:function(){if(this.resizeFrame){var a=this.getEl();Ext.fly(this.getDragEl()).setSize(a.offsetWidth,a.offsetHeight)}},b4MouseDown:function(b){var a=b.getPageX(),c=b.getPageY();this.autoOffset(a,c);this.setDragElPos(a,c)},b4StartDrag:function(a,b){this.showFrame(a,b)},b4EndDrag:function(a){Ext.fly(this.getDragEl()).hide()},endDrag:function(c){var b=this.getEl(),a=this.getDragEl();a.style.visibility="";this.beforeMove();b.style.visibility="hidden";Ext.dd.DDM.moveToEl(b,a);a.style.visibility="hidden";b.style.visibility="";this.afterDrag()},beforeMove:function(){},afterDrag:function(){},toString:function(){return("DDProxy "+this.id)}});Ext.define("Ext.dd.StatusProxy",{extend:"Ext.Component",animRepair:false,childEls:["ghost"],renderTpl:['<div class="'+Ext.baseCSSPrefix+'dd-drop-icon"></div><div id="{id}-ghost" class="'+Ext.baseCSSPrefix+'dd-drag-ghost"></div>'],constructor:function(a){var b=this;a=a||{};Ext.apply(b,{hideMode:"visibility",hidden:true,floating:true,id:b.id||Ext.id(),cls:Ext.baseCSSPrefix+"dd-drag-proxy "+this.dropNotAllowed,shadow:a.shadow||false,renderTo:Ext.getDetachedBody()});b.callParent(arguments);this.dropStatus=this.dropNotAllowed},dropAllowed:Ext.baseCSSPrefix+"dd-drop-ok",dropNotAllowed:Ext.baseCSSPrefix+"dd-drop-nodrop",setStatus:function(a){a=a||this.dropNotAllowed;if(this.dropStatus!=a){this.el.replaceCls(this.dropStatus,a);this.dropStatus=a}},reset:function(b){var c=this,a=Ext.baseCSSPrefix+"dd-drag-proxy ";c.el.replaceCls(a+c.dropAllowed,a+c.dropNotAllowed);c.dropStatus=c.dropNotAllowed;if(b){c.ghost.update("")}},update:function(a){if(typeof a=="string"){this.ghost.update(a)}else{this.ghost.update("");a.style.margin="0";this.ghost.dom.appendChild(a)}var b=this.ghost.dom.firstChild;if(b){Ext.fly(b).setStyle("float","none")}},getGhost:function(){return this.ghost},hide:function(a){this.callParent();if(a){this.reset(true)}},stop:function(){if(this.anim&&this.anim.isAnimated&&this.anim.isAnimated()){this.anim.stop()}},sync:function(){this.el.sync()},repair:function(c,d,a){var b=this;b.callback=d;b.scope=a;if(c&&b.animRepair!==false){b.el.addCls(Ext.baseCSSPrefix+"dd-drag-repair");b.el.hideUnders(true);b.anim=b.el.animate({duration:b.repairDuration||500,easing:"ease-out",to:{x:c[0],y:c[1]},stopAnimation:true,callback:b.afterRepair,scope:b})}else{b.afterRepair()}},afterRepair:function(){var a=this;a.hide(true);a.el.removeCls(Ext.baseCSSPrefix+"dd-drag-repair");if(typeof a.callback=="function"){a.callback.call(a.scope||a)}delete a.callback;delete a.scope}});Ext.define("Ext.dd.DragSource",{extend:"Ext.dd.DDProxy",requires:["Ext.dd.StatusProxy","Ext.dd.DragDropManager"],dropAllowed:Ext.baseCSSPrefix+"dd-drop-ok",dropNotAllowed:Ext.baseCSSPrefix+"dd-drop-nodrop",animRepair:true,repairHighlightColor:"c3daf9",constructor:function(b,a){this.el=Ext.get(b);if(!this.dragData){this.dragData={}}Ext.apply(this,a);if(!this.proxy){this.proxy=new Ext.dd.StatusProxy({id:this.el.id+"-drag-status-proxy",animRepair:this.animRepair})}this.callParent([this.el.dom,this.ddGroup||this.group,{dragElId:this.proxy.id,resizeFrame:false,isTarget:false,scroll:this.scroll===true}]);this.dragging=false},getDragData:function(a){return this.dragData},onDragEnter:function(c,d){var b=Ext.dd.DragDropManager.getDDById(d),a;this.cachedTarget=b;if(this.beforeDragEnter(b,c,d)!==false){if(b.isNotifyTarget){a=b.notifyEnter(this,c,this.dragData);this.proxy.setStatus(a)}else{this.proxy.setStatus(this.dropAllowed)}if(this.afterDragEnter){this.afterDragEnter(b,c,d)}}},beforeDragEnter:function(b,a,c){return true},onDragOver:function(c,d){var b=this.cachedTarget||Ext.dd.DragDropManager.getDDById(d),a;if(this.beforeDragOver(b,c,d)!==false){if(b.isNotifyTarget){a=b.notifyOver(this,c,this.dragData);this.proxy.setStatus(a)}if(this.afterDragOver){this.afterDragOver(b,c,d)}}},beforeDragOver:function(b,a,c){return true},onDragOut:function(b,c){var a=this.cachedTarget||Ext.dd.DragDropManager.getDDById(c);if(this.beforeDragOut(a,b,c)!==false){if(a.isNotifyTarget){a.notifyOut(this,b,this.dragData)}this.proxy.reset();if(this.afterDragOut){this.afterDragOut(a,b,c)}}this.cachedTarget=null},beforeDragOut:function(b,a,c){return true},onDragDrop:function(b,c){var a=this.cachedTarget||Ext.dd.DragDropManager.getDDById(c);if(this.beforeDragDrop(a,b,c)!==false){if(a.isNotifyTarget){if(a.notifyDrop(this,b,this.dragData)!==false){this.onValidDrop(a,b,c)}else{this.onInvalidDrop(a,b,c)}}else{this.onValidDrop(a,b,c)}if(this.afterDragDrop){this.afterDragDrop(a,b,c)}}delete this.cachedTarget},beforeDragDrop:function(b,a,c){return true},onValidDrop:function(b,a,c){this.hideProxy();if(this.afterValidDrop){this.afterValidDrop(b,a,c)}},getRepairXY:function(b,a){return this.el.getXY()},onInvalidDrop:function(b,a,c){if(!a){a=b;b=null;c=a.getTarget().id}this.beforeInvalidDrop(b,a,c);if(this.cachedTarget){if(this.cachedTarget.isNotifyTarget){this.cachedTarget.notifyOut(this,a,this.dragData)}this.cacheTarget=null}this.proxy.repair(this.getRepairXY(a,this.dragData),this.afterRepair,this);if(this.afterInvalidDrop){this.afterInvalidDrop(a,c)}},afterRepair:function(){var a=this;if(Ext.enableFx){a.el.highlight(a.repairHighlightColor)}a.dragging=false},beforeInvalidDrop:function(b,a,c){return true},handleMouseDown:function(b){if(this.dragging){return}var a=this.getDragData(b);if(a&&this.onBeforeDrag(a,b)!==false){this.dragData=a;this.proxy.stop();this.callParent(arguments)}},onBeforeDrag:function(a,b){return true},onStartDrag:Ext.emptyFn,alignElWithMouse:function(){this.proxy.ensureAttachedToBody(true);return this.callParent(arguments)},startDrag:function(a,b){this.proxy.reset();this.proxy.hidden=false;this.dragging=true;this.proxy.update("");this.onInitDrag(a,b);this.proxy.show()},onInitDrag:function(a,c){var b=this.el.dom.cloneNode(true);b.id=Ext.id();this.proxy.update(b);this.onStartDrag(a,c);return true},getProxy:function(){return this.proxy},hideProxy:function(){this.proxy.hide();this.proxy.reset(true);this.dragging=false},triggerCacheRefresh:function(){Ext.dd.DDM.refreshCache(this.groups)},b4EndDrag:function(a){},endDrag:function(a){this.onEndDrag(this.dragData,a)},onEndDrag:function(a,b){},autoOffset:function(a,b){this.setDelta(-12,-20)},destroy:function(){this.callParent();Ext.destroy(this.proxy)}});Ext.define("Ext.panel.Proxy",{alternateClassName:"Ext.dd.PanelProxy",moveOnDrag:true,constructor:function(a,b){var c=this;c.panel=a;c.id=c.panel.id+"-ddproxy";Ext.apply(c,b)},insertProxy:true,setStatus:Ext.emptyFn,reset:Ext.emptyFn,update:Ext.emptyFn,stop:Ext.emptyFn,sync:Ext.emptyFn,getEl:function(){return this.ghost.el},getGhost:function(){return this.ghost},getProxy:function(){return this.proxy},hide:function(){var a=this;if(a.ghost){if(a.proxy){a.proxy.remove();delete a.proxy}a.panel.unghost(null,a.moveOnDrag);delete a.ghost}},show:function(){var b=this,a;if(!b.ghost){a=b.panel.getSize();b.panel.el.setVisibilityMode(Ext.Element.DISPLAY);b.ghost=b.panel.ghost();if(b.insertProxy){b.proxy=b.panel.el.insertSibling({cls:Ext.baseCSSPrefix+"panel-dd-spacer"});b.proxy.setSize(a)}}},repair:function(b,c,a){this.hide();Ext.callback(c,a||this)},moveProxy:function(a,b){if(this.proxy){a.insertBefore(this.proxy.dom,b)}}});Ext.define("Ext.panel.DD",{extend:"Ext.dd.DragSource",requires:["Ext.panel.Proxy"],constructor:function(b,a){var c=this;c.panel=b;c.dragData={panel:b};c.panelProxy=new Ext.panel.Proxy(b,a);c.proxy=c.panelProxy.proxy;c.callParent([b.el,a]);c.setupEl(b)},setupEl:function(a){var c=this,d=a.header,b=a.body;if(d){c.setHandleElId(d.id);b=d.el}if(b){b.setStyle("cursor","move");c.scroll=false}else{a.on("boxready",c.setupEl,c,{single:true})}},showFrame:Ext.emptyFn,startDrag:Ext.emptyFn,b4StartDrag:function(a,b){this.panelProxy.show()},b4MouseDown:function(b){var a=b.getPageX(),c=b.getPageY();this.autoOffset(a,c)},onInitDrag:function(a,b){this.onStartDrag(a,b);return true},createFrame:Ext.emptyFn,getDragEl:function(a){return this.panelProxy.ghost.el.dom},endDrag:function(a){this.panelProxy.hide();this.panel.saveState()},autoOffset:function(a,b){a-=this.startPageX;b-=this.startPageY;this.setDelta(a,b)},onInvalidDrop:function(c,b,d){var a=this;a.beforeInvalidDrop(c,b,d);if(a.cachedTarget){if(a.cachedTarget.isNotifyTarget){a.cachedTarget.notifyOut(a,b,a.dragData)}a.cacheTarget=null}if(a.afterInvalidDrop){a.afterInvalidDrop(b,d)}}});Ext.define("Ext.util.Memento",(function(){function d(i,h,j,g){i[g?g+j:j]=h[j]}function c(h,g,i){delete h[i]}function e(k,j,l,i){var g=i?i+l:l,h=k[g];if(h||k.hasOwnProperty(g)){a(j,l,h)}}function a(h,i,g){if(Ext.isDefined(g)){h[i]=g}else{delete h[i]}}function b(h,m,l,i,j){if(m){if(Ext.isArray(i)){var k,g=i.length;for(k=0;k<g;k++){h(m,l,i[k],j)}}else{h(m,l,i,j)}}}return{data:null,target:null,constructor:function(h,g){if(h){this.target=h;if(g){this.capture(g)}}},capture:function(g,j,i){var h=this;b(d,h.data||(h.data={}),j||h.target,g,i)},remove:function(g){b(c,this.data,null,g)},restore:function(h,g,j,i){b(e,this.data,j||this.target,h,i);if(g!==false){this.remove(h)}},restoreAll:function(g,k){var i=this,h=k||this.target,j=i.data,l;for(l in j){if(j.hasOwnProperty(l)){a(h,l,j[l])}}if(g!==false){delete i.data}}}}()));Ext.define("Ext.panel.Panel",{extend:"Ext.panel.AbstractPanel",requires:["Ext.panel.Header","Ext.fx.Anim","Ext.util.KeyMap","Ext.panel.DD","Ext.XTemplate","Ext.layout.component.Dock","Ext.util.Memento"],alias:"widget.panel",alternateClassName:"Ext.Panel",collapsedCls:"collapsed",animCollapse:Ext.enableFx,minButtonWidth:75,collapsed:false,collapseFirst:true,hideCollapseTool:false,titleCollapse:false,floatable:true,collapsible:false,closable:false,closeAction:"destroy",placeholderCollapseHideMode:Ext.Element.VISIBILITY,preventHeader:false,header:undefined,headerPosition:"top",frame:false,frameHeader:true,titleAlign:"left",manageHeight:true,initComponent:function(){var a=this;a.addEvents("beforeclose","close","beforeexpand","beforecollapse","expand","collapse","titlechange","iconchange","iconclschange");if(a.collapsible){this.addStateEvents(["expand","collapse"])}if(a.unstyled){a.setUI("plain")}if(a.frame){a.setUI(a.ui+"-framed")}a.bridgeToolbars();a.callParent();a.collapseDirection=a.collapseDirection||a.headerPosition||Ext.Component.DIRECTION_TOP;a.hiddenOnCollapse=new Ext.dom.CompositeElement()},beforeDestroy:function(){var a=this;Ext.destroy(a.placeholder,a.ghostPanel,a.dd);a.callParent()},initAria:function(){this.callParent();this.initHeaderAria()},getFocusEl:function(){return this.el},initHeaderAria:function(){var b=this,a=b.el,c=b.header;if(a&&c){a.dom.setAttribute("aria-labelledby",c.titleCmp.id)}},getHeader:function(){return this.header},setTitle:function(g){var c=this,b=c.title,e=c.header,a=c.reExpander,d=c.placeholder;c.title=g;if(e){if(e.isHeader){e.setTitle(g)}else{e.title=g}}else{c.updateHeader()}if(a){a.setTitle(g)}if(d&&d.setTitle){d.setTitle(g)}c.fireEvent("titlechange",c,g,b)},setIconCls:function(a){var c=this,b=c.iconCls,e=c.header,d=c.placeholder;c.iconCls=a;if(e){if(e.isHeader){e.setIconCls(a)}else{e.iconCls=a}}else{c.updateHeader()}if(d&&d.setIconCls){d.setIconCls(a)}c.fireEvent("iconclschange",c,a,b)},setIcon:function(a){var b=this,c=b.icon,e=b.header,d=b.placeholder;b.icon=a;if(e){if(e.isHeader){e.setIcon(a)}else{e.icon=a}}else{b.updateHeader()}if(d&&d.setIcon){d.setIcon(a)}b.fireEvent("iconchange",b,a,c)},bridgeToolbars:function(){var a=this,g=[],c,b,e=a.minButtonWidth;function d(h,j,i){if(Ext.isArray(h)){h={xtype:"toolbar",items:h}}else{if(!h.xtype){h.xtype="toolbar"}}h.dock=j;if(j=="left"||j=="right"){h.vertical=true}if(i){h.layout=Ext.applyIf(h.layout||{},{pack:{left:"start",center:"center"}[a.buttonAlign]||"end"})}return h}if(a.tbar){g.push(d(a.tbar,"top"));a.tbar=null}if(a.bbar){g.push(d(a.bbar,"bottom"));a.bbar=null}if(a.buttons){a.fbar=a.buttons;a.buttons=null}if(a.fbar){c=d(a.fbar,"bottom",true);c.ui="footer";if(e){b=c.defaults;c.defaults=function(h){var i=b||{};if((!h.xtype||h.xtype==="button"||(h.isComponent&&h.isXType("button")))&&!("minWidth" in i)){i=Ext.apply({minWidth:e},i)}return i}}g.push(c);a.fbar=null}if(a.lbar){g.push(d(a.lbar,"left"));a.lbar=null}if(a.rbar){g.push(d(a.rbar,"right"));a.rbar=null}if(a.dockedItems){if(!Ext.isArray(a.dockedItems)){a.dockedItems=[a.dockedItems]}a.dockedItems=a.dockedItems.concat(g)}else{a.dockedItems=g}},isPlaceHolderCollapse:function(){return this.collapseMode=="placeholder"},onBoxReady:function(){this.callParent();if(this.collapsed){this.setHiddenDocked()}},beforeRender:function(){var b=this,a;b.callParent();b.initTools();if(!(b.preventHeader||(b.header===false))){b.updateHeader()}if(b.collapsed){if(b.isPlaceHolderCollapse()){b.hidden=true;b.placeholderCollapse();a=b.collapsed;b.collapsed=false}else{b.beginCollapse();b.addClsWithUI(b.collapsedCls)}}if(a){b.collapsed=a}},initTools:function(){var a=this;a.tools=a.tools?Ext.Array.clone(a.tools):[];if(a.collapsible&&!(a.hideCollapseTool||a.header===false||a.preventHeader)){a.collapseDirection=a.collapseDirection||a.headerPosition||"top";a.collapseTool=a.expandTool=Ext.widget({xtype:"tool",type:(a.collapsed&&!a.isPlaceHolderCollapse())?("expand-"+a.getOppositeDirection(a.collapseDirection)):("collapse-"+a.collapseDirection),handler:a.toggleCollapse,scope:a});if(a.collapseFirst){a.tools.unshift(a.collapseTool)}}a.addTools();if(a.closable){a.addClsWithUI("closable");a.addTool({type:"close",handler:Ext.Function.bind(a.close,a,[])})}if(a.collapseTool&&!a.collapseFirst){a.addTool(a.collapseTool)}},addTools:Ext.emptyFn,close:function(){if(this.fireEvent("beforeclose",this)!==false){this.doClose()}},doClose:function(){this.fireEvent("close",this);this[this.closeAction]()},updateHeader:function(d){var c=this,h=c.header,g=c.title,e=c.tools,b=c.icon||c.iconCls,a=c.headerPosition=="left"||c.headerPosition=="right";if((h!==false)&&(d||(g||b)||(e&&e.length)||(c.collapsible&&!c.titleCollapse))){if(h&&h.isHeader){h.show()}else{h=c.header=Ext.widget(Ext.apply({xtype:"header",title:g,titleAlign:c.titleAlign,orientation:a?"vertical":"horizontal",dock:c.headerPosition||"top",textCls:c.headerTextCls,iconCls:c.iconCls,icon:c.icon,baseCls:c.baseCls+"-header",tools:e,ui:c.ui,id:c.id+"_header",indicateDrag:c.draggable,frame:(c.frame||c.alwaysFramed)&&c.frameHeader,ignoreParentFrame:c.frame||c.overlapHeader,ignoreBorderManagement:c.frame||c.ignoreHeaderBorderManagement,listeners:c.collapsible&&c.titleCollapse?{click:c.toggleCollapse,scope:c}:null},c.header));c.addDocked(h,0);c.tools=h.tools}c.initHeaderAria()}else{if(h){h.hide()}}},setUI:function(b){var a=this;a.callParent(arguments);if(a.header&&a.header.rendered){a.header.setUI(b)}},getContentTarget:function(){return this.body},getTargetEl:function(){var a=this;return a.body||a.protoBody||a.frameBody||a.el},isVisible:function(a){var b=this;if(b.collapsed&&b.placeholder){return b.placeholder.isVisible(a)}return b.callParent(arguments)},onHide:function(){var a=this;if(a.collapsed&&a.placeholder){a.placeholder.hide()}else{a.callParent(arguments)}},onShow:function(){var a=this;if(a.collapsed&&a.placeholder){a.hidden=true;a.placeholder.show()}else{a.callParent(arguments)}},onRemoved:function(b){var a=this;a.callParent(arguments);if(a.placeholder&&!b){a.ownerCt.remove(a.placeholder,false)}},addTool:function(e){e=[].concat(e);var d=this,g=d.header,c,a=e.length,b;for(c=0;c<a;c++){b=e[c];d.tools.push(b);if(g&&g.isHeader){g.addTool(b)}}d.updateHeader()},getOppositeDirection:function(a){var b=Ext.Component;switch(a){case b.DIRECTION_TOP:return b.DIRECTION_BOTTOM;case b.DIRECTION_RIGHT:return b.DIRECTION_LEFT;case b.DIRECTION_BOTTOM:return b.DIRECTION_TOP;case b.DIRECTION_LEFT:return b.DIRECTION_RIGHT}},getWidthAuthority:function(){if(this.collapsed&&this.collapsedHorizontal()){return 1}return this.callParent()},getHeightAuthority:function(){if(this.collapsed&&this.collapsedVertical()){return 1}return this.callParent()},collapsedHorizontal:function(){var a=this.getCollapsed();return a=="left"||a=="right"},collapsedVertical:function(){var a=this.getCollapsed();return a=="top"||a=="bottom"},restoreDimension:function(){var a=this.collapseDirection;return(a==="top"||a==="bottom")?"height":"width"},getCollapsed:function(){var a=this;if(a.collapsed===true){return a.collapseDirection}return a.collapsed},getState:function(){var a=this,b=a.callParent(),c;b=a.addPropertyToState(b,"collapsed");if(a.collapsed){c=a.collapseMemento;c=c&&c.data;if(a.collapsedVertical()){if(b){delete b.height}if(c){b=a.addPropertyToState(b,"height",c.height)}}else{if(b){delete b.width}if(c){b=a.addPropertyToState(b,"width",c.width)}}}return b},findReExpander:function(h){var g=this,j=Ext.Component,e=g.dockedItems.items,a=e.length,b,d;if(g.collapseMode=="mini"){return}switch(h){case j.DIRECTION_TOP:case j.DIRECTION_BOTTOM:for(d=0;d<a;d++){b=e[d];if(!b.hidden){if(b.isHeader&&(!b.dock||b.dock=="top"||b.dock=="bottom")){return b}}}break;case j.DIRECTION_LEFT:case j.DIRECTION_RIGHT:for(d=0;d<a;d++){b=e[d];if(!b.hidden){if(b.isHeader&&(b.dock=="left"||b.dock=="right")){return b}}}break;default:throw ("Panel#findReExpander must be passed a valid collapseDirection")}},getReExpander:function(c){var b=this,d=c||b.collapseDirection,a=b.reExpander||b.findReExpander(d);b.expandDirection=b.getOppositeDirection(d);if(!a){b.reExpander=a=b.createReExpander(d,{dock:d,cls:Ext.baseCSSPrefix+"docked "+b.baseCls+"-"+b.ui+"-collapsed",ownerCt:b,ownerLayout:b.componentLayout});b.dockedItems.insert(0,a)}return a},createReExpander:function(g,e){var d=this,i=g=="left",c=g=="right",h=i||c,b,a=Ext.apply({hideMode:"offsets",title:d.title,orientation:h?"vertical":"horizontal",textCls:d.headerTextCls,icon:d.icon,iconCls:d.iconCls,baseCls:d.baseCls+"-header",ui:d.ui,frame:d.frame&&d.frameHeader,ignoreParentFrame:d.frame||d.overlapHeader,indicateDrag:d.draggable},e);if(d.collapseMode=="mini"){if(h){a.width=1}else{a.height=1}}if(!d.hideCollapseTool){b=i||(c&&d.isPlaceHolderCollapse());a[b?"items":"tools"]=[{xtype:"tool",type:"expand-"+d.getOppositeDirection(g),uiCls:["top"],handler:d.toggleCollapse,scope:d}]}a=new Ext.panel.Header(a);a.addClsWithUI(d.getHeaderCollapsedClasses(a));return a},getHeaderCollapsedClasses:function(d){var b=this,c=b.collapsedCls,a;a=[c,c+"-"+d.dock];if(b.border&&(!b.frame||(b.frame&&Ext.supports.CSS3BorderRadius))){a.push(c+"-border-"+d.dock)}return a},beginCollapse:function(){var e=this,c=e.lastBox,g=e.rendered,b=e.collapseMemento||(e.collapseMemento=new Ext.util.Memento(e)),d=e.getSizeModel(),a;b.capture(["height","minHeight","width","minWidth"]);if(c){b.capture(e.restoreDimension(),c,"last.")}if(e.collapsedVertical()){if(d.width.shrinkWrap){e.width=g?e.getWidth():e.width||e.minWidth||100}delete e.height;e.minHeight=0}else{if(e.collapsedHorizontal()){if(d.height.shrinkWrap){e.height=g?e.getHeight():e.height||e.minHeight||100}delete e.width;e.minWidth=0}}if(e.ownerCt){e.ownerCt.getLayout().beginCollapse(e)}if(!e.isPlaceHolderCollapse()){if(e.header===(a=e.getReExpander())){e.header.addClsWithUI(e.getHeaderCollapsedClasses(e.header));if(e.header.rendered){e.header.updateFrame()}}else{if(a.el){a.el.show();a.hidden=false}}}if(e.resizer){e.resizer.disable()}},beginExpand:function(){var e=this,d=e.lastBox,c=e.collapseMemento,a=this.restoreDimension(),b;c.restore(["minHeight","minWidth",a]);if(d){c.restore(a,true,d,"last.")}if(e.ownerCt){e.ownerCt.getLayout().beginExpand(e)}if(!e.isPlaceHolderCollapse()){if(e.header===(b=e.getReExpander())){e.header.removeClsWithUI(e.getHeaderCollapsedClasses(e.header));if(e.header.rendered){e.header.updateFrame()}}else{b.hidden=true;b.el.hide()}}if(e.resizer){e.resizer.enable()}},collapse:function(d,a){var c=this,e=d||c.collapseDirection,b=c.ownerCt;if(c.isCollapsingOrExpanding){return c}if(arguments.length<2){a=c.animCollapse}if(c.collapsed||c.fireEvent("beforecollapse",c,d,a)===false){return c}if(b&&c.isPlaceHolderCollapse()){return c.placeholderCollapse(d,a)}c.collapsed=e;c.beginCollapse();c.fireHierarchyEvent("collapse");return c.doCollapseExpand(1,a)},doCollapseExpand:function(a,b){var d=this,c=d.animCollapse,e=d.ownerLayout;d.animCollapse=b;d.isCollapsingOrExpanding=a;if(e&&!b){e.onContentChange(d)}else{d.updateLayout({isRoot:true})}d.animCollapse=c;return d},afterCollapse:function(b){var a=this,c=a.ownerLayout;a.isCollapsingOrExpanding=0;if(a.collapseTool){a.collapseTool.setType("expand-"+a.getOppositeDirection(a.collapseDirection))}if(c&&b){c.onContentChange(a)}a.setHiddenDocked();a.fireEvent("collapse",a)},setHiddenDocked:function(){var h=this,d=h.hiddenOnCollapse,b=h.getReExpander(),c=h.getDockedItems(),a=c.length,e=0,g;d.add(h.body);for(;e<a;e++){g=c[e];if(g&&g!==b&&g.el){d.add(g.el)}}d.setStyle("visibility","hidden")},restoreHiddenDocked:function(){var a=this.hiddenOnCollapse;a.setStyle("visibility","");a.clear()},getPlaceholder:function(c){var b=this,e=c||b.collapseDirection,a=null,d=b.placeholder;if(!d){if(b.floatable||(b.collapsible&&b.titleCollapse)){a={click:{fn:b.floatable?b.floatCollapsedPanel:b.toggleCollapse,element:"el",scope:b}}}b.placeholder=d=Ext.widget(b.createReExpander(e,{id:b.id+"-placeholder",listeners:a}))}if(!d.placeholderFor){if(!d.isComponent){b.placeholder=d=b.lookupComponent(d)}Ext.applyIf(d,{margins:b.margins,placeholderFor:b});d.addCls([Ext.baseCSSPrefix+"region-collapsed-placeholder",Ext.baseCSSPrefix+"region-collapsed-"+e+"-placeholder",b.collapsedCls])}return d},placeholderCollapse:function(e,a){var d=this,c=d.ownerCt,h=e||d.collapseDirection,b=Ext.baseCSSPrefix+"border-region-slide-in",g=d.getPlaceholder(e);d.isCollapsingOrExpanding=1;d.hidden=true;d.collapsed=h;if(g.rendered){if(g.el.dom.parentNode!==d.el.dom.parentNode){d.el.dom.parentNode.insertBefore(g.el.dom,d.el.dom)}g.hidden=false;g.el.show();c.updateLayout()}else{c.insert(c.items.indexOf(d),g)}if(d.rendered){d.el.setVisibilityMode(d.placeholderCollapseHideMode);if(a){d.el.addCls(b);g.el.hide();d.el.slideOut(h.substr(0,1),{preserveScroll:true,duration:Ext.Number.from(a,Ext.fx.Anim.prototype.duration),listeners:{afteranimate:function(){d.el.removeCls(b);g.el.show().setStyle("display","none").slideIn(h.substr(0,1),{easing:"linear",duration:100,listeners:{afteranimate:function(){g.focus();d.isCollapsingOrExpanding=0;d.fireEvent("collapse",d)}}})}}})}else{d.el.hide();d.isCollapsingOrExpanding=0;d.fireEvent("collapse",d)}}else{d.isCollapsingOrExpanding=0;d.fireEvent("collapse",d)}return d},floatCollapsedPanel:function(){var g=this,i=g.placeholder,h=i.getBox(true),d,e=Ext.baseCSSPrefix+"border-region-slide-in",b=g.collapsed,j=g.ownerCt||g,a;if(g.el.hasCls(e)){g.slideOutFloatedPanel();return}if(g.isSliding){return}g.isSliding=true;function c(l){if(!g.isDestroyed){var k=g.el.getRegion().union(i.el.getRegion()).adjust(1,-1,-1,1);if(!k.contains(l.getPoint())){g.slideOutFloatedPanel()}}}g.placeholder.el.hide();g.placeholder.hidden=true;g.el.show();g.hidden=false;g.collapsed=false;j.updateLayout();d=g.getBox(true);g.placeholder.el.show();g.placeholder.hidden=false;g.el.hide();g.hidden=true;g.collapsed=b;j.updateLayout();g.placeholderMouseMon=i.el.monitorMouseLeave(500,c);g.panelMouseMon=g.el.monitorMouseLeave(500,c);g.el.addCls(e);if(g.collapseTool){g.collapseTool.el.hide()}switch(g.collapsed){case"top":g.el.setLeftTop(h.x,h.y+h.height-1);a="t";break;case"right":g.el.setLeftTop(h.x-d.width+1,h.y);a="r";break;case"bottom":g.el.setLeftTop(h.x,h.y-d.height+1);a="b";break;case"left":g.el.setLeftTop(h.x+h.width-1,h.y);a="l";break}g.floatedFromCollapse=g.collapsed;g.collapsed=g.hidden=false;g.el.slideIn(a,{preserveScroll:true,listeners:{afteranimate:function(){g.isSliding=false}}})},isLayoutRoot:function(){if(this.floatedFromCollapse){return true}return this.callParent()},slideOutFloatedPanel:function(){var a=this,c=this.el,b;if(a.isSliding){return}a.isSliding=true;a.slideOutFloatedPanelBegin();if(typeof a.collapsed=="string"){b=a.collapsed.charAt(0)}c.slideOut(b,{preserveScroll:true,listeners:{afteranimate:function(){a.slideOutFloatedPanelEnd();a.el.removeCls(Ext.baseCSSPrefix+"border-region-slide-in");a.isSliding=false}}})},slideOutFloatedPanelBegin:function(){var a=this,b=this.el;a.collapsed=a.floatedFromCollapse;a.hidden=true;a.floatedFromCollapse=null;b.un(a.panelMouseMon);a.placeholder.el.un(a.placeholderMouseMon)},slideOutFloatedPanelEnd:function(){if(this.collapseTool){this.collapseTool.el.show()}},expand:function(a){var b=this;if(b.isCollapsingOrExpanding){return b}if(!arguments.length){a=b.animCollapse}if(!b.collapsed&&!b.floatedFromCollapse){return b}if(b.fireEvent("beforeexpand",b,a)===false){return b}if(b.isPlaceHolderCollapse()){return b.placeholderExpand(a)}b.restoreHiddenDocked();b.beginExpand();b.collapsed=false;b.fireHierarchyEvent("expand");return b.doCollapseExpand(2,a)},placeholderExpand:function(b){var d=this,h=d.collapsed,c=Ext.baseCSSPrefix+"border-region-slide-in",e,a,g;if(d.floatedFromCollapse){a=d.getPosition(true);d.slideOutFloatedPanelBegin();d.slideOutFloatedPanelEnd()}d.isCollapsingOrExpanding=2;d.placeholder.hidden=true;d.placeholder.el.hide();d.collapsed=false;d.show();if(b){if(a){e=d.el.getXY();d.el.setLeftTop(a[0],a[1]);d.el.moveTo(e[0],e[1],{duration:Ext.Number.from(b,Ext.fx.Anim.prototype.duration),listeners:{afteranimate:function(){d.el.removeCls(c);d.isCollapsingOrExpanding=0;d.fireEvent("expand",d)}}})}else{d.hidden=true;d.el.addCls(c);d.el.hide();d.collapsed=h;d.placeholder.show();g=h.substr(0,1);d.hidden=false;d.el.slideIn(g,{preserveScroll:true,duration:Ext.Number.from(b,Ext.fx.Anim.prototype.duration),listeners:{afteranimate:function(){d.collapsed=false;d.el.removeCls(c);d.placeholder.hide();d.isCollapsingOrExpanding=0;d.fireEvent("expand",d)}}})}}else{d.isCollapsingOrExpanding=0;d.fireEvent("expand",d)}return d},afterExpand:function(b){var a=this,c=a.ownerLayout;a.isCollapsingOrExpanding=0;if(a.collapseTool){a.collapseTool.setType("collapse-"+a.collapseDirection)}if(c&&b){c.onContentChange(a)}a.fireEvent("expand",a)},setBorder:function(a,c){if(c){return}var b=this,d=b.header;if(!a){a=0}else{a=Ext.Element.unitizeBox((a===true)?1:a)}if(d){if(d.isHeader){d.setBorder(a)}else{d.border=a}}if(b.rendered&&b.bodyBorder!==false){b.body.setStyle("border-width",a)}b.updateLayout();b.border=a},toggleCollapse:function(){return(this.collapsed||this.floatedFromCollapse)?this.expand():this.collapse()},getKeyMap:function(){return this.keyMap||(this.keyMap=new Ext.util.KeyMap(Ext.apply({target:this.el},this.keys)))},initDraggable:function(){this.dd=new Ext.panel.DD(this,Ext.isBoolean(this.draggable)?null:this.draggable)},ghostTools:function(){var e=[],g=this.header,d=g?g.query("tool[hidden=false]"):[],c,a,b;if(d.length){c=0;a=d.length;for(;c<a;c++){b=d[c];e.push({type:b.type})}}else{e=[{type:"placeholder"}]}return e},ghost:function(a){var d=this,b=d.ghostPanel,c=d.getBox(),e;if(!b){b=new Ext.panel.Panel({renderTo:document.body,floating:{shadow:false},frame:d.frame&&!d.alwaysFramed,alwaysFramed:d.alwaysFramed,overlapHeader:d.overlapHeader,headerPosition:d.headerPosition,baseCls:d.baseCls,cls:d.baseCls+"-ghost "+(a||"")});d.ghostPanel=b}else{b.el.show()}b.floatParent=d.floatParent;if(d.floating){b.setZIndex(Ext.Number.from(d.el.getStyle("zIndex"),0))}else{b.toFront()}if(!(d.preventHeader||(d.header===false))){e=b.header;if(e){e.suspendLayouts();Ext.Array.forEach(e.query("tool"),e.remove,e);e.resumeLayouts()}b.addTool(d.ghostTools());b.setTitle(d.title);b.setIconCls(d.iconCls)}b.setPagePosition(c.x,c.y);b.setSize(c.width,c.height);d.el.hide();return b},unghost:function(b,a){var c=this;if(!c.ghostPanel){return}if(b!==false){c.el.show();if(a!==false){c.setPagePosition(c.ghostPanel.el.getXY());if(c.hideMode=="offsets"){delete c.el.hideModeStyles}}Ext.defer(c.focus,10,c)}c.ghostPanel.el.hide()},beginDrag:function(){if(this.floatingDescendants){this.floatingDescendants.hide()}},endDrag:function(){if(this.floatingDescendants){this.floatingDescendants.show()}},initResizable:function(a){if(this.collapsed){a.disabled=true}this.callParent([a])}},function(){this.prototype.animCollapse=Ext.enableFx});Ext.define("Ext.tip.Tip",{extend:"Ext.panel.Panel",alternateClassName:"Ext.Tip",minWidth:40,maxWidth:300,shadow:"sides",defaultAlign:"tl-bl?",constrainPosition:true,autoRender:true,hidden:true,baseCls:Ext.baseCSSPrefix+"tip",floating:{shadow:true,shim:true,constrain:true},focusOnToFront:false,closeAction:"hide",ariaRole:"tooltip",alwaysFramed:true,frameHeader:false,initComponent:function(){var a=this;a.floating=Ext.apply({},{shadow:a.shadow},a.self.prototype.floating);a.callParent(arguments);a.constrain=a.constrain||a.constrainPosition},showAt:function(b){var a=this;this.callParent(arguments);if(a.isVisible()){a.setPagePosition(b[0],b[1]);if(a.constrainPosition||a.constrain){a.doConstrain()}a.toFront(true)}},showBy:function(a,b){this.showAt(this.el.getAlignToXY(a,b||this.defaultAlign))},initDraggable:function(){var a=this;a.draggable={el:a.getDragEl(),delegate:a.header.el,constrain:a,constrainTo:a.el.getScopeParent()};Ext.Component.prototype.initDraggable.call(a)},ghost:undefined,unghost:undefined});Ext.define("Ext.tip.ToolTip",{extend:"Ext.tip.Tip",alias:"widget.tooltip",alternateClassName:"Ext.ToolTip",autoHide:true,showDelay:500,hideDelay:200,dismissDelay:5000,trackMouse:false,anchorToTarget:true,anchorOffset:0,targetCounter:0,quickShowInterval:250,initComponent:function(){var a=this;a.callParent(arguments);a.lastActive=new Date();a.setTarget(a.target);a.origAnchor=a.anchor},onRender:function(b,a){var c=this;c.callParent(arguments);c.anchorCls=Ext.baseCSSPrefix+"tip-anchor-"+c.getAnchorPosition();c.anchorEl=c.el.createChild({cls:Ext.baseCSSPrefix+"tip-anchor "+c.anchorCls})},setTarget:function(d){var b=this,a=Ext.get(d),c;if(b.target){c=Ext.get(b.target);b.mun(c,"mouseover",b.onTargetOver,b);b.mun(c,"mouseout",b.onTargetOut,b);b.mun(c,"mousemove",b.onMouseMove,b)}b.target=a;if(a){b.mon(a,{freezeEvent:true,mouseover:b.onTargetOver,mouseout:b.onTargetOut,mousemove:b.onMouseMove,scope:b})}if(b.anchor){b.anchorTarget=b.target}},onMouseMove:function(d){var b=this,a=b.delegate?d.getTarget(b.delegate):b.triggerElement=true,c;if(a){b.targetXY=d.getXY();if(a===b.triggerElement){if(!b.hidden&&b.trackMouse){c=b.getTargetXY();if(b.constrainPosition){c=b.el.adjustForConstraints(c,b.el.getScopeParent())}b.setPagePosition(c)}}else{b.hide();b.lastActive=new Date(0);b.onTargetOver(d)}}else{if((!b.closable&&b.isVisible())&&b.autoHide!==false){b.hide()}}},getTargetXY:function(){var j=this,d,c,n,a,i,l,e,m,k,b,h,g;if(j.delegate){j.anchorTarget=j.triggerElement}if(j.anchor){j.targetCounter++;c=j.getOffsets();n=(j.anchorToTarget&&!j.trackMouse)?j.el.getAlignToXY(j.anchorTarget,j.getAnchorAlign()):j.targetXY;a=Ext.Element.getViewWidth()-5;i=Ext.Element.getViewHeight()-5;l=document.documentElement;e=document.body;m=(l.scrollLeft||e.scrollLeft||0)+5;k=(l.scrollTop||e.scrollTop||0)+5;b=[n[0]+c[0],n[1]+c[1]];h=j.getSize();g=j.constrainPosition;j.anchorEl.removeCls(j.anchorCls);if(j.targetCounter<2&&g){if(b[0]<m){if(j.anchorToTarget){j.defaultAlign="l-r";if(j.mouseOffset){j.mouseOffset[0]*=-1}}j.anchor="left";return j.getTargetXY()}if(b[0]+h.width>a){if(j.anchorToTarget){j.defaultAlign="r-l";if(j.mouseOffset){j.mouseOffset[0]*=-1}}j.anchor="right";return j.getTargetXY()}if(b[1]<k){if(j.anchorToTarget){j.defaultAlign="t-b";if(j.mouseOffset){j.mouseOffset[1]*=-1}}j.anchor="top";return j.getTargetXY()}if(b[1]+h.height>i){if(j.anchorToTarget){j.defaultAlign="b-t";if(j.mouseOffset){j.mouseOffset[1]*=-1}}j.anchor="bottom";return j.getTargetXY()}}j.anchorCls=Ext.baseCSSPrefix+"tip-anchor-"+j.getAnchorPosition();j.anchorEl.addCls(j.anchorCls);j.targetCounter=0;return b}else{d=j.getMouseOffset();return(j.targetXY)?[j.targetXY[0]+d[0],j.targetXY[1]+d[1]]:d}},getMouseOffset:function(){var a=this,b=a.anchor?[0,0]:[15,18];if(a.mouseOffset){b[0]+=a.mouseOffset[0];b[1]+=a.mouseOffset[1]}return b},getAnchorPosition:function(){var b=this,a;if(b.anchor){b.tipAnchor=b.anchor.charAt(0)}else{a=b.defaultAlign.match(/^([a-z]+)-([a-z]+)(\?)?$/);b.tipAnchor=a[1].charAt(0)}switch(b.tipAnchor){case"t":return"top";case"b":return"bottom";case"r":return"right"}return"left"},getAnchorAlign:function(){switch(this.anchor){case"top":return"tl-bl";case"left":return"tl-tr";case"right":return"tr-tl";default:return"bl-tl"}},getOffsets:function(){var c=this,d,b,a=c.getAnchorPosition().charAt(0);if(c.anchorToTarget&&!c.trackMouse){switch(a){case"t":b=[0,9];break;case"b":b=[0,-13];break;case"r":b=[-13,0];break;default:b=[9,0];break}}else{switch(a){case"t":b=[-15-c.anchorOffset,30];break;case"b":b=[-19-c.anchorOffset,-13-c.el.dom.offsetHeight];break;case"r":b=[-15-c.el.dom.offsetWidth,-13-c.anchorOffset];break;default:b=[25,-13-c.anchorOffset];break}}d=c.getMouseOffset();b[0]+=d[0];b[1]+=d[1];return b},onTargetOver:function(c){var b=this,a;if(b.disabled||c.within(b.target.dom,true)){return}a=c.getTarget(b.delegate);if(a){b.triggerElement=a;b.clearTimer("hide");b.targetXY=c.getXY();b.delayShow()}},delayShow:function(){var a=this;if(a.hidden&&!a.showTimer){if(Ext.Date.getElapsed(a.lastActive)<a.quickShowInterval){a.show()}else{a.showTimer=Ext.defer(a.show,a.showDelay,a)}}else{if(!a.hidden&&a.autoHide!==false){a.show()}}},onShowVeto:function(){this.callParent();this.clearTimer("show")},onTargetOut:function(b){var a=this;if(a.disabled||b.within(a.target.dom,true)){return}a.clearTimer("show");if(a.autoHide!==false){a.delayHide()}},delayHide:function(){var a=this;if(!a.hidden&&!a.hideTimer){a.hideTimer=Ext.defer(a.hide,a.hideDelay,a)}},hide:function(){var a=this;a.clearTimer("dismiss");a.lastActive=new Date();if(a.anchorEl){a.anchorEl.hide()}a.callParent(arguments);delete a.triggerElement},show:function(){var a=this;this.callParent();if(this.hidden===false){a.setPagePosition(-10000,-10000);if(a.anchor){a.anchor=a.origAnchor}if(!a.calledFromShowAt){a.showAt(a.getTargetXY())}if(a.anchor){a.syncAnchor();a.anchorEl.show()}else{a.anchorEl.hide()}}},showAt:function(b){var a=this;a.lastActive=new Date();a.clearTimers();a.calledFromShowAt=true;if(!a.isVisible()){this.callParent(arguments)}if(a.isVisible()){a.setPagePosition(b[0],b[1]);if(a.constrainPosition||a.constrain){a.doConstrain()}a.toFront(true);a.el.sync(true);if(a.dismissDelay&&a.autoHide!==false){a.dismissTimer=Ext.defer(a.hide,a.dismissDelay,a)}if(a.anchor){a.syncAnchor();if(!a.anchorEl.isVisible()){a.anchorEl.show()}}else{a.anchorEl.hide()}}delete a.calledFromShowAt},syncAnchor:function(){var c=this,a,b,d;switch(c.tipAnchor.charAt(0)){case"t":a="b";b="tl";d=[20+c.anchorOffset,1];break;case"r":a="l";b="tr";d=[-1,12+c.anchorOffset];break;case"b":a="t";b="bl";d=[20+c.anchorOffset,-1];break;default:a="r";b="tl";d=[1,12+c.anchorOffset];break}c.anchorEl.alignTo(c.el,a+"-"+b,d);c.anchorEl.setStyle("z-index",parseInt(c.el.getZIndex(),10)||0+1).setVisibilityMode(Ext.Element.DISPLAY)},setPagePosition:function(a,c){var b=this;b.callParent(arguments);if(b.anchor){b.syncAnchor()}},clearTimer:function(a){a=a+"Timer";clearTimeout(this[a]);delete this[a]},clearTimers:function(){var a=this;a.clearTimer("show");a.clearTimer("dismiss");a.clearTimer("hide")},onShow:function(){var a=this;a.callParent();a.mon(Ext.getDoc(),"mousedown",a.onDocMouseDown,a)},onHide:function(){var a=this;a.callParent();a.mun(Ext.getDoc(),"mousedown",a.onDocMouseDown,a)},onDocMouseDown:function(b){var a=this;if(!a.closable&&!b.within(a.el.dom)){a.disable();Ext.defer(a.doEnable,100,a)}},doEnable:function(){if(!this.isDestroyed){this.enable()}},onDisable:function(){this.callParent();this.clearTimers();this.hide()},beforeDestroy:function(){var a=this;a.clearTimers();Ext.destroy(a.anchorEl);delete a.anchorEl;delete a.target;delete a.anchorTarget;delete a.triggerElement;a.callParent()},onDestroy:function(){Ext.getDoc().un("mousedown",this.onDocMouseDown,this);this.callParent()}});Ext.define("Ext.tip.QuickTip",{extend:"Ext.tip.ToolTip",alias:"widget.quicktip",alternateClassName:"Ext.QuickTip",interceptTitles:false,title:" ",tagConfig:{namespace:"data-",attribute:"qtip",width:"qwidth",target:"target",title:"qtitle",hide:"hide",cls:"qclass",align:"qalign",anchor:"anchor"},initComponent:function(){var a=this;a.target=a.target||Ext.getDoc();a.targets=a.targets||{};a.callParent()},register:function(c){var h=Ext.isArray(c)?c:arguments,d=0,a=h.length,g,b,e;for(;d<a;d++){c=h[d];g=c.target;if(g){if(Ext.isArray(g)){for(b=0,e=g.length;b<e;b++){this.targets[Ext.id(g[b])]=c}}else{this.targets[Ext.id(g)]=c}}}},unregister:function(a){delete this.targets[Ext.id(a)]},cancelShow:function(a){var b=this,c=b.activeTarget;a=Ext.get(a).dom;if(b.isVisible()){if(c&&c.el==a){b.hide()}}else{if(c&&c.el==a){b.clearTimer("show")}}},getTipCfg:function(d){var c=d.getTarget(),b=c.title,a;if(this.interceptTitles&&b&&Ext.isString(b)){c.qtip=b;c.removeAttribute("title");d.preventDefault();return{text:b}}else{a=this.tagConfig;c=d.getTarget("["+a.namespace+a.attribute+"]");if(c){return{target:c,text:c.getAttribute(a.namespace+a.attribute)}}}},onTargetOver:function(i){var k=this,j=i.getTarget(k.delegate),a,d,b,h,l,c,n,g,p,m,o;if(k.disabled){return}k.targetXY=i.getXY();if(!j||j.nodeType!==1||j==document.documentElement||j==document.body){return}if(k.activeTarget&&((j==k.activeTarget.el)||Ext.fly(k.activeTarget.el).contains(j))){k.clearTimer("hide");k.show();return}if(j){g=k.targets;for(o in g){if(g.hasOwnProperty(o)){m=g[o];p=Ext.fly(m.target);if(p&&(p.dom===j||p.contains(j))){b=p.dom;break}}}if(b){k.activeTarget=k.targets[b.id];k.activeTarget.el=j;k.anchor=k.activeTarget.anchor;if(k.anchor){k.anchorTarget=j}a=Ext.isDefined(k.activeTarget.showDelay);if(a){d=k.showDelay;k.showDelay=k.activeTarget.showDelay}k.delayShow();if(a){k.showDelay=d}return}}b=Ext.fly(j,"_quicktip-target");h=k.tagConfig;l=h.namespace;c=k.getTipCfg(i);if(c){if(c.target){j=c.target;b=Ext.fly(j,"_quicktip-target")}n=b.getAttribute(l+h.hide);k.activeTarget={el:j,text:c.text,width:+b.getAttribute(l+h.width)||null,autoHide:n!="user"&&n!=="false",title:b.getAttribute(l+h.title),cls:b.getAttribute(l+h.cls),align:b.getAttribute(l+h.align)};k.anchor=b.getAttribute(l+h.anchor);if(k.anchor){k.anchorTarget=j}a=Ext.isDefined(k.activeTarget.showDelay);if(a){d=k.showDelay;k.showDelay=k.activeTarget.showDelay}k.delayShow();if(a){k.showDelay=d}}},onTargetOut:function(g){var c=this,d=c.activeTarget,a,b;if(d&&g.within(c.activeTarget.el)&&!c.getTipCfg(g)){return}c.clearTimer("show");delete c.activeTarget;if(c.autoHide!==false){a=d&&Ext.isDefined(d.hideDelay);if(a){b=c.hideDelay;c.hideDelay=d.hideDelay}c.delayHide();if(a){c.hideDelay=b}}},showAt:function(d){var b=this,c=b.activeTarget,a;if(c){if(!b.rendered){b.render(Ext.getBody());b.activeTarget=c}b.suspendLayouts();if(c.title){b.setTitle(c.title);b.header.show()}else{b.header.hide()}b.update(c.text);b.autoHide=c.autoHide;b.dismissDelay=c.dismissDelay||b.dismissDelay;if(c.mouseOffset){d[0]+=c.mouseOffset[0];d[1]+=c.mouseOffset[1]}a=b.lastCls;if(a){b.removeCls(a);delete b.lastCls}a=c.cls;if(a){b.addCls(a);b.lastCls=a}b.setWidth(c.width);if(b.anchor){b.constrainPosition=false}else{if(c.align){d=b.el.getAlignToXY(c.el,c.align);b.constrainPosition=false}else{b.constrainPosition=true}}b.resumeLayouts(true)}b.callParent([d])},hide:function(){delete this.activeTarget;this.callParent()}});Ext.define("Ext.tip.QuickTipManager",(function(){var b,a=false;return{requires:["Ext.tip.QuickTip"],singleton:true,alternateClassName:"Ext.QuickTips",init:function(g,d){if(!b){if(!Ext.isReady){Ext.onReady(function(){Ext.tip.QuickTipManager.init(g,d)});return}var c=Ext.apply({disabled:a,id:"ext-quicktips-tip"},d),e=c.className,h=c.xtype;if(e){delete c.className}else{if(h){e="widget."+h;delete c.xtype}}if(g!==false){c.renderTo=document.body}b=Ext.create(e||"Ext.tip.QuickTip",c)}},destroy:function(){if(b){var c;b.destroy();b=c}},ddDisable:function(){if(b&&!a){b.disable()}},ddEnable:function(){if(b&&!a){b.enable()}},enable:function(){if(b){b.enable()}a=false},disable:function(){if(b){b.disable()}a=true},isEnabled:function(){return b!==undefined&&!b.disabled},getQuickTip:function(){return b},register:function(){b.register.apply(b,arguments)},unregister:function(){b.unregister.apply(b,arguments)},tips:function(){b.register.apply(b,arguments)}}}()));Ext.define("Ext.app.EventBus",{requires:["Ext.util.Event","Ext.Component"],mixins:{observable:"Ext.util.Observable"},constructor:function(){this.mixins.observable.constructor.call(this);this.bus={};var a=this;Ext.override(Ext.Component,{fireEvent:function(b){if(Ext.util.Observable.prototype.fireEvent.apply(this,arguments)!==false){return a.dispatch.call(a,b,this,arguments)}return false}})},dispatch:function(l,g,k){var h=this.bus,m=h[l],d,c,b,n,a,e,j;if(m){for(d in m){if(m.hasOwnProperty(d)&&g.is(d)){c=m[d];for(b in c){if(c.hasOwnProperty(b)){n=c[b];for(e=0,j=n.length;e<j;e++){a=n[e];if(a.fire.apply(a,Array.prototype.slice.call(k,1))===false){return false}}}}}}}return true},control:function(l,j,e){var h=this.bus,i,o,g,d,n,c,m,a,b,k;if(Ext.isString(l)){d=l;l={};l[d]=j;this.control(l,null,e);return}i=Ext.util.Observable.HasListeners.prototype;for(d in l){if(l.hasOwnProperty(d)){b=l[d]||{};for(k in b){if(b.hasOwnProperty(k)){n={};c=b[k];m=e;a=new Ext.util.Event(e,k);if(Ext.isObject(c)){n=c;c=n.fn;m=n.scope||e;delete n.fn;delete n.scope}a.addListener(c,m,n);i[k]=1;o=h[k]||(h[k]={});o=o[d]||(o[d]={});g=o[e.id]||(o[e.id]=[]);g.push(a)}}}}}});Ext.define("Ext.app.Application",{extend:"Ext.app.Controller",requires:["Ext.ModelManager","Ext.data.Model","Ext.data.StoreManager","Ext.tip.QuickTipManager","Ext.ComponentManager","Ext.app.EventBus"],scope:undefined,enableQuickTips:true,appFolder:"app",autoCreateViewport:false,constructor:function(b){b=b||{};Ext.apply(this,b);var g=this,l=b.requires||[],a,e,c,d,k,j,h;Ext.Loader.setPath(g.name,g.appFolder);if(g.paths){k=g.paths;for(h in k){if(k.hasOwnProperty(h)){j=k[h];Ext.Loader.setPath(h,j)}}}g.callParent(arguments);g.eventbus=new Ext.app.EventBus;a=Ext.Array.from(g.controllers);e=a&&a.length;g.controllers=new Ext.util.MixedCollection();if(g.autoCreateViewport){l.push(g.getModuleClassName("Viewport","view"))}for(c=0;c<e;c++){l.push(g.getModuleClassName(a[c],"controller"))}Ext.require(l);Ext.onReady(function(){g.init(g);for(c=0;c<e;c++){d=g.getController(a[c]);d.init(g)}g.onBeforeLaunch.call(g)},g)},control:function(b,c,a){this.eventbus.control(b,c,a)},launch:Ext.emptyFn,onBeforeLaunch:function(){var b=this,e,g,d,a;if(b.enableQuickTips){Ext.tip.QuickTipManager.init()}if(b.autoCreateViewport){b.getView("Viewport").create()}b.launch.call(this.scope||this);b.launched=true;b.fireEvent("launch",this);e=b.controllers.items;d=e.length;for(g=0;g<d;g++){a=e[g];a.onLaunch(this)}},getModuleClassName:function(a,b){if(a.indexOf(".")!==-1&&(Ext.ClassManager.isCreated(a)||Ext.Loader.isAClassNameWithAKnownPrefix(a))){return a}else{return this.name+"."+b+"."+a}},getController:function(b){var a=this.controllers.get(b);if(!a){a=Ext.create(this.getModuleClassName(b,"controller"),{application:this,id:b});this.controllers.add(a)}return a},getStore:function(b){var a=Ext.StoreManager.get(b);if(!a){a=Ext.create(this.getModuleClassName(b,"store"),{storeId:b})}return a},getModel:function(a){a=this.getModuleClassName(a,"model");return Ext.ModelManager.getModel(a)},getView:function(a){a=this.getModuleClassName(a,"view");return Ext.ClassManager.get(a)}});Ext.define("Ext.button.Split",{alias:"widget.splitbutton",extend:"Ext.button.Button",alternateClassName:"Ext.SplitButton",arrowCls:"split",split:true,initComponent:function(){this.callParent();this.addEvents("arrowclick")},setArrowHandler:function(b,a){this.arrowHandler=b;this.scope=a},onClick:function(c,a){var b=this;c.preventDefault();if(!b.disabled){if(b.overMenuTrigger){b.maybeShowMenu();b.fireEvent("arrowclick",b,c);if(b.arrowHandler){b.arrowHandler.call(b.scope||b,b,c)}}else{b.doToggle();b.fireHandler(c)}}}});Ext.define("Ext.button.Cycle",{alias:"widget.cycle",extend:"Ext.button.Split",alternateClassName:"Ext.CycleButton",getButtonText:function(b){var a=this,c="";if(b&&a.showText===true){if(a.prependText){c+=a.prependText}c+=b.text;return c}return a.text},setActiveItem:function(c,a){var b=this;if(!Ext.isObject(c)){c=b.menu.getComponent(c)}if(c){if(!b.rendered){b.text=b.getButtonText(c);b.iconCls=c.iconCls}else{b.setText(b.getButtonText(c));b.setIconCls(c.iconCls)}b.activeItem=c;if(!c.checked){c.setChecked(true,false)}if(b.forceIcon){b.setIconCls(b.forceIcon)}if(!a){b.fireEvent("change",b,c)}}},getActiveItem:function(){return this.activeItem},initComponent:function(){var g=this,e=0,b,c,a,d;g.addEvents("change");if(g.changeHandler){g.on("change",g.changeHandler,g.scope||g);delete g.changeHandler}b=(g.menu.items||[]).concat(g.items||[]);g.menu=Ext.applyIf({cls:Ext.baseCSSPrefix+"cycle-menu",items:[]},g.menu);a=b.length;for(c=0;c<a;c++){d=b[c];d=Ext.applyIf({group:g.id,itemIndex:c,checkHandler:g.checkHandler,scope:g,checked:d.checked||false},d);g.menu.items.push(d);if(d.checked){e=c}}g.itemCount=g.menu.items.length;g.callParent(arguments);g.on("click",g.toggleSelected,g);g.setActiveItem(e,g);if(g.width&&g.showText){g.addCls(Ext.baseCSSPrefix+"cycle-fixed-width")}},checkHandler:function(a,b){if(b){this.setActiveItem(a)}},toggleSelected:function(){var c=this,a=c.menu,b;b=c.activeItem.next(":not([disabled])")||a.items.getAt(0);b.setChecked(true)}});Ext.define("Ext.chart.Callout",{constructor:function(a){if(a.callouts){a.callouts.styles=Ext.applyIf(a.callouts.styles||{},{color:"#000",font:"11px Helvetica, sans-serif"});this.callouts=Ext.apply(this.callouts||{},a.callouts);this.calloutsArray=[]}},renderCallouts:function(){if(!this.callouts){return}var v=this,m=v.items,a=v.chart.animate,u=v.callouts,h=u.styles,e=v.calloutsArray,b=v.chart.store,s=b.getCount(),d=m.length/s,l=[],r,c,q,n,t,g,k,o;for(r=0,c=0;r<s;r++){for(q=0;q<d;q++){t=m[c];g=e[c];k=b.getAt(r);o=u.filter(k);if(!o&&!g){c++;continue}if(!g){e[c]=g=v.onCreateCallout(k,t,r,o,q,c)}for(n in g){if(g[n]&&g[n].setAttributes){g[n].setAttributes(h,true)}}if(!o){for(n in g){if(g[n]){if(g[n].setAttributes){g[n].setAttributes({hidden:true},true)}else{if(g[n].setVisible){g[n].setVisible(false)}}}}}u.renderer(g,k);v.onPlaceCallout(g,k,t,r,o,a,q,c,l);l.push(g);c++}}this.hideCallouts(c)},onCreateCallout:function(g,n,e,j){var k=this,l=k.calloutsGroup,d=k.callouts,o=d.styles,c=o.width,m=o.height,h=k.chart,b=h.surface,a={lines:false};a.lines=b.add(Ext.apply({},{type:"path",path:"M0,0",stroke:k.getLegendColor()||"#555"},o));if(d.items){a.panel=new Ext.Panel({style:"position: absolute;",width:c,height:m,items:d.items,renderTo:h.el})}return a},hideCallouts:function(b){var d=this.calloutsArray,a=d.length,e,c;while(a-->b){e=d[a];for(c in e){if(e[c]){e[c].hide(true)}}}}});Ext.define("Ext.layout.component.Draw",{alias:"layout.draw",extend:"Ext.layout.component.Auto",type:"draw",measureContentWidth:function(b){var c=b.target,a=b.getPaddingInfo(),d=this.getBBox(b);if(!c.viewBox){if(c.autoSize){return d.width+a.width}else{return d.x+d.width+a.width}}else{if(b.heightModel.shrinkWrap){return a.width}else{return d.width/d.height*(b.getProp("contentHeight")-a.height)+a.width}}},measureContentHeight:function(b){var c=b.target,a=b.getPaddingInfo(),d=this.getBBox(b);if(!b.target.viewBox){if(c.autoSize){return d.height+a.height}else{return d.y+d.height+a.height}}else{if(b.widthModel.shrinkWrap){return a.height}else{return d.height/d.width*(b.getProp("contentWidth")-a.width)+a.height}}},getBBox:function(a){var b=a.surfaceBBox;if(!b){b=a.target.surface.items.getBBox();if(b.width===-Infinity&&b.height===-Infinity){b.width=b.height=b.x=b.y=0}a.surfaceBBox=b}return b},publishInnerWidth:function(b,a){b.setContentWidth(a-b.getFrameInfo().width,true)},publishInnerHeight:function(b,a){b.setContentHeight(a-b.getFrameInfo().height,true)},finishedLayout:function(c){var b=c.props,a=c.getPaddingInfo();this.owner.setSurfaceSize(b.contentWidth-a.width,b.contentHeight-a.height);this.callParent(arguments)}});Ext.define("Ext.draw.CompositeSprite",{extend:"Ext.util.MixedCollection",mixins:{animate:"Ext.util.Animate"},autoDestroy:false,isCompositeSprite:true,constructor:function(a){var b=this;a=a||{};Ext.apply(b,a);b.addEvents("mousedown","mouseup","mouseover","mouseout","click");b.id=Ext.id(null,"ext-sprite-group-");b.callParent()},onClick:function(a){this.fireEvent("click",a)},onMouseUp:function(a){this.fireEvent("mouseup",a)},onMouseDown:function(a){this.fireEvent("mousedown",a)},onMouseOver:function(a){this.fireEvent("mouseover",a)},onMouseOut:function(a){this.fireEvent("mouseout",a)},attachEvents:function(b){var a=this;b.on({scope:a,mousedown:a.onMouseDown,mouseup:a.onMouseUp,mouseover:a.onMouseOver,mouseout:a.onMouseOut,click:a.onClick})},add:function(b,c){var a=this.callParent(arguments);this.attachEvents(a);return a},insert:function(a,b,c){return this.callParent(arguments)},remove:function(b){var a=this;b.un({scope:a,mousedown:a.onMouseDown,mouseup:a.onMouseUp,mouseover:a.onMouseOver,mouseout:a.onMouseOut,click:a.onClick});return a.callParent(arguments)},getBBox:function(){var e=0,n,j,k=this.items,g=this.length,h=Infinity,c=h,m=-h,b=h,l=-h,d,a;for(;e<g;e++){n=k[e];if(n.el&&!n.bboxExcluded){j=n.getBBox();c=Math.min(c,j.x);b=Math.min(b,j.y);m=Math.max(m,j.height+j.y);l=Math.max(l,j.width+j.x)}}return{x:c,y:b,height:m-b,width:l-c}},setAttributes:function(c,e){var d=0,b=this.items,a=this.length;for(;d<a;d++){b[d].setAttributes(c,e)}return this},hide:function(d){var c=0,b=this.items,a=this.length;for(;c<a;c++){b[c].hide(d)}return this},show:function(d){var c=0,b=this.items,a=this.length;for(;c<a;c++){b[c].show(d)}return this},redraw:function(){var e=this,d=0,c=e.items,b=e.getSurface(),a=e.length;if(b){for(;d<a;d++){b.renderItem(c[d])}}return e},setStyle:function(g){var c=0,b=this.items,a=this.length,e,d;for(;c<a;c++){e=b[c];d=e.el;if(d){d.setStyle(g)}}},addCls:function(e){var d=0,c=this.items,b=this.getSurface(),a=this.length;if(b){for(;d<a;d++){b.addCls(c[d],e)}}},removeCls:function(e){var d=0,c=this.items,b=this.getSurface(),a=this.length;if(b){for(;d<a;d++){b.removeCls(c[d],e)}}},getSurface:function(){var a=this.first();if(a){return a.surface}return null},destroy:function(){var d=this,a=d.getSurface(),c=d.autoDestroy,b;if(a){while(d.getCount()>0){b=d.first();d.remove(b);a.remove(b,c)}}d.clearListeners()}});Ext.define("Ext.draw.Surface",{mixins:{observable:"Ext.util.Observable"},requires:["Ext.draw.CompositeSprite"],uses:["Ext.draw.engine.Svg","Ext.draw.engine.Vml","Ext.draw.engine.SvgExporter","Ext.draw.engine.ImageExporter"],separatorRe:/[, ]+/,statics:{create:function(b,d){d=d||["Svg","Vml"];var c=0,a=d.length,e;for(;c<a;c++){if(Ext.supports[d[c]]!==false){return Ext.create("Ext.draw.engine."+d[c],b)}}return false},save:function(a,b){b=b||{};var e={"image/png":"Image","image/jpeg":"Image","image/svg+xml":"Svg"},d=e[b.type]||"Svg",c=Ext.draw.engine[d+"Exporter"];return c.generate(a,b)}},availableAttrs:{blur:0,"clip-rect":"0 0 1e9 1e9",cursor:"default",cx:0,cy:0,"dominant-baseline":"auto",fill:"none","fill-opacity":1,font:'10px "Arial"',"font-family":'"Arial"',"font-size":"10","font-style":"normal","font-weight":400,gradient:"",height:0,hidden:false,href:"http://sencha.com/",opacity:1,path:"M0,0",radius:0,rx:0,ry:0,scale:"1 1",src:"",stroke:"none","stroke-dasharray":"","stroke-linecap":"butt","stroke-linejoin":"butt","stroke-miterlimit":0,"stroke-opacity":1,"stroke-width":1,target:"_blank",text:"","text-anchor":"middle",title:"Ext Draw",width:0,x:0,y:0,zIndex:0},container:undefined,height:352,width:512,x:0,y:0,orderSpritesByZIndex:true,constructor:function(a){var b=this;a=a||{};Ext.apply(b,a);b.domRef=Ext.getDoc().dom;b.customAttributes={};b.addEvents("mousedown","mouseup","mouseover","mouseout","mousemove","mouseenter","mouseleave","click","dblclick");b.mixins.observable.constructor.call(b);b.getId();b.initGradients();b.initItems();if(b.renderTo){b.render(b.renderTo);delete b.renderTo}b.initBackground(a.background)},initSurface:Ext.emptyFn,renderItem:Ext.emptyFn,renderItems:Ext.emptyFn,setViewBox:function(b,d,c,a){if(isFinite(b)&&isFinite(d)&&isFinite(c)&&isFinite(a)){this.viewBox={x:b,y:d,width:c,height:a};this.applyViewBox()}},addCls:Ext.emptyFn,removeCls:Ext.emptyFn,setStyle:Ext.emptyFn,initGradients:function(){if(this.hasOwnProperty("gradients")){var a=this.gradients,d=a.length,b=this.addGradient,c;if(a){for(c=0;c<d;c++){if(b.call(this,a[c],c,d)===false){break}}}}},initItems:function(){var a=this.items;this.items=new Ext.draw.CompositeSprite();this.items.autoDestroy=true;this.groups=new Ext.draw.CompositeSprite();if(a){this.add(a)}},initBackground:function(b){var e=this,d=e.width,a=e.height,g,h,c;if(Ext.isString(b)){b={fill:b}}if(b){if(b.gradient){h=b.gradient;g=h.id;e.addGradient(h);e.background=e.add({type:"rect",x:0,y:0,width:d,height:a,fill:"url(#"+g+")",zIndex:-1})}else{if(b.fill){e.background=e.add({type:"rect",x:0,y:0,width:d,height:a,fill:b.fill,zIndex:-1})}else{if(b.image){e.background=e.add({type:"image",x:0,y:0,width:d,height:a,src:b.image,zIndex:-1})}}}e.background.bboxExcluded=true}},setSize:function(a,b){this.applyViewBox()},scrubAttrs:function(d){var c,b={},a={},e=d.attr;for(c in e){if(this.translateAttrs.hasOwnProperty(c)){b[this.translateAttrs[c]]=e[c];a[this.translateAttrs[c]]=true}else{if(this.availableAttrs.hasOwnProperty(c)&&!a[c]){b[c]=e[c]}}}return b},onClick:function(a){this.processEvent("click",a)},onDblClick:function(a){this.processEvent("dblclick",a)},onMouseUp:function(a){this.processEvent("mouseup",a)},onMouseDown:function(a){this.processEvent("mousedown",a)},onMouseOver:function(a){this.processEvent("mouseover",a)},onMouseOut:function(a){this.processEvent("mouseout",a)},onMouseMove:function(a){this.fireEvent("mousemove",a)},onMouseEnter:Ext.emptyFn,onMouseLeave:Ext.emptyFn,addGradient:Ext.emptyFn,add:function(){var g=Array.prototype.slice.call(arguments),j,d,a=g.length>1,h,b,c,e,k;if(a||Ext.isArray(g[0])){h=a?g:g[0];b=[];for(c=0,e=h.length;c<e;c++){k=h[c];k=this.add(k);b.push(k)}return b}j=this.prepareItems(g[0],true)[0];this.insertByZIndex(j);this.onAdd(j);return j},insertByZIndex:function(j){var g=this,d=g.items.items,c=d.length,k=Math.ceil,h=j.attr.zIndex,i=c,b=i-1,e=0,a;if(g.orderSpritesByZIndex&&c&&h<d[b].attr.zIndex){while(e<=b){i=k((e+b)/2);a=d[i].attr.zIndex;if(a>h){b=i-1}else{if(a<h){e=i+1}else{break}}}while(i<c&&d[i].attr.zIndex<=h){i++}}g.items.insert(i,j);return i},onAdd:function(d){var g=d.group,b=d.draggable,a,e,c;if(g){a=[].concat(g);e=a.length;for(c=0;c<e;c++){g=a[c];this.getGroup(g).add(d)}delete d.group}if(b){d.initDraggable()}},remove:function(b,e){if(b){this.items.remove(b);var a=[].concat(this.groups.items),d=a.length,c;for(c=0;c<d;c++){a[c].remove(b)}b.onRemove();if(e===true){b.destroy()}}},removeAll:function(d){var a=this.items.items,c=a.length,b;for(b=c-1;b>-1;b--){this.remove(a[b],d)}},onRemove:Ext.emptyFn,onDestroy:Ext.emptyFn,applyViewBox:function(){var d=this,l=d.viewBox,a=d.width||1,h=d.height||1,g,e,j,b,i,c,k;if(l&&(a||h)){g=l.x;e=l.y;j=l.width;b=l.height;i=h/b;c=a/j;k=Math.min(c,i);if(j*k<a){g-=(a-j*k)/2/k}if(b*k<h){e-=(h-b*k)/2/k}d.viewBoxShift={dx:-g,dy:-e,scale:k};if(d.background){d.background.setAttributes(Ext.apply({},{x:g,y:e,width:a/k,height:h/k},{hidden:false}),true)}}else{if(d.background&&a&&h){d.background.setAttributes(Ext.apply({x:0,y:0,width:a,height:h},{hidden:false}),true)}}},getBBox:function(a,b){var c=this["getPath"+a.type](a);if(b){a.bbox.plain=a.bbox.plain||Ext.draw.Draw.pathDimensions(c);return a.bbox.plain}if(a.dirtyTransform){this.applyTransformations(a,true)}a.bbox.transform=a.bbox.transform||Ext.draw.Draw.pathDimensions(Ext.draw.Draw.mapPath(c,a.matrix));return a.bbox.transform},transformToViewBox:function(a,d){if(this.viewBoxShift){var c=this,b=c.viewBoxShift;return[a/b.scale-b.dx,d/b.scale-b.dy]}else{return[a,d]}},applyTransformations:function(b,d){if(b.type=="text"){b.bbox.transform=0;this.transform(b,false)}b.dirtyTransform=false;var c=this,a=b.attr;if(a.translation.x!=null||a.translation.y!=null){c.translate(b)}if(a.scaling.x!=null||a.scaling.y!=null){c.scale(b)}if(a.rotation.degrees!=null){c.rotate(b)}b.bbox.transform=0;this.transform(b,d);b.transformations=[]},rotate:function(a){var e,b=a.attr.rotation.degrees,d=a.attr.rotation.x,c=a.attr.rotation.y;if(!Ext.isNumber(d)||!Ext.isNumber(c)){e=this.getBBox(a,true);d=!Ext.isNumber(d)?e.x+e.width/2:d;c=!Ext.isNumber(c)?e.y+e.height/2:c}a.transformations.push({type:"rotate",degrees:b,x:d,y:c})},translate:function(b){var a=b.attr.translation.x||0,c=b.attr.translation.y||0;b.transformations.push({type:"translate",x:a,y:c})},scale:function(b){var e,a=b.attr.scaling.x||1,g=b.attr.scaling.y||1,d=b.attr.scaling.centerX,c=b.attr.scaling.centerY;if(!Ext.isNumber(d)||!Ext.isNumber(c)){e=this.getBBox(b,true);d=!Ext.isNumber(d)?e.x+e.width/2:d;c=!Ext.isNumber(c)?e.y+e.height/2:c}b.transformations.push({type:"scale",x:a,y:g,centerX:d,centerY:c})},rectPath:function(a,e,b,c,d){if(d){return[["M",a+d,e],["l",b-d*2,0],["a",d,d,0,0,1,d,d],["l",0,c-d*2],["a",d,d,0,0,1,-d,d],["l",d*2-b,0],["a",d,d,0,0,1,-d,-d],["l",0,d*2-c],["a",d,d,0,0,1,d,-d],["z"]]}return[["M",a,e],["l",b,0],["l",0,c],["l",-b,0],["z"]]},ellipsePath:function(a,d,c,b){if(b==null){b=c}return[["M",a,d],["m",0,-b],["a",c,b,0,1,1,0,2*b],["a",c,b,0,1,1,0,-2*b],["z"]]},getPathpath:function(a){return a.attr.path},getPathcircle:function(c){var b=c.attr;return this.ellipsePath(b.x,b.y,b.radius,b.radius)},getPathellipse:function(c){var b=c.attr;return this.ellipsePath(b.x,b.y,b.radiusX||(b.width/2)||0,b.radiusY||(b.height/2)||0)},getPathrect:function(c){var b=c.attr;return this.rectPath(b.x||0,b.y||0,b.width||0,b.height||0,b.r||0)},getPathimage:function(c){var b=c.attr;return this.rectPath(b.x||0,b.y||0,b.width,b.height)},getPathtext:function(a){var b=this.getBBoxText(a);return this.rectPath(b.x,b.y,b.width,b.height)},createGroup:function(b){var a=this.groups.get(b);if(!a){a=new Ext.draw.CompositeSprite({surface:this});a.id=b||Ext.id(null,"ext-surface-group-");this.groups.add(a)}return a},getGroup:function(b){var a;if(typeof b=="string"){a=this.groups.get(b);if(!a){a=this.createGroup(b)}}else{a=b}return a},prepareItems:function(a,c){a=[].concat(a);var e,b,d;for(b=0,d=a.length;b<d;b++){e=a[b];if(!(e instanceof Ext.draw.Sprite)){e.surface=this;a[b]=this.createItem(e)}else{e.surface=this}}return a},setText:Ext.emptyFn,createItem:Ext.emptyFn,getId:function(){return this.id||(this.id=Ext.id(null,"ext-surface-"))},destroy:function(){var a=this;delete a.domRef;if(a.background){a.background.destroy()}a.removeAll(true);Ext.destroy(a.groups.items)}});Ext.define("Ext.draw.Component",{alias:"widget.draw",extend:"Ext.Component",requires:["Ext.draw.Surface","Ext.layout.component.Draw"],enginePriority:["Svg","Vml"],baseCls:Ext.baseCSSPrefix+"surface",componentLayout:"draw",viewBox:true,shrinkWrap:3,autoSize:false,initComponent:function(){this.callParent(arguments);this.addEvents("mousedown","mouseup","mousemove","mouseenter","mouseleave","click","dblclick")},onRender:function(){var d=this,j=d.viewBox,b=d.autoSize,h,c,a,i,g,e;d.callParent(arguments);if(d.createSurface()!==false){c=d.surface.items;if(j||b){h=c.getBBox();a=h.width;i=h.height;g=h.x;e=h.y;if(d.viewBox){d.surface.setViewBox(g,e,a,i)}else{d.autoSizeSurface()}}}},autoSizeSurface:function(){var a=this.surface.items.getBBox();this.setSurfaceSize(a.width,a.height)},setSurfaceSize:function(b,a){this.surface.setSize(b,a);if(this.autoSize){var c=this.surface.items.getBBox();this.surface.setViewBox(c.x,c.y-(+Ext.isOpera),b,a)}},createSurface:function(){var d=this,b=Ext.applyIf({renderTo:d.el,height:d.height,width:d.width,items:d.items},d.initialConfig),a;delete b.listeners;a=Ext.draw.Surface.create(b);if(!a){return false}d.surface=a;function c(e){return function(g){d.fireEvent(e,g)}}a.on({scope:d,mouseup:c("mouseup"),mousedown:c("mousedown"),mousemove:c("mousemove"),mouseenter:c("mouseenter"),mouseleave:c("mouseleave"),click:c("click"),dblclick:c("dblclick")})},onDestroy:function(){Ext.destroy(this.surface);this.callParent(arguments)}});Ext.define("Ext.chart.Shape",{singleton:true,circle:function(a,b){return a.add(Ext.apply({type:"circle",x:b.x,y:b.y,stroke:null,radius:b.radius},b))},line:function(a,b){return a.add(Ext.apply({type:"rect",x:b.x-b.radius,y:b.y-b.radius,height:2*b.radius,width:2*b.radius/5},b))},square:function(a,b){return a.add(Ext.applyIf({type:"rect",x:b.x-b.radius,y:b.y-b.radius,height:2*b.radius,width:2*b.radius,radius:null},b))},triangle:function(a,b){b.radius*=1.75;return a.add(Ext.apply({type:"path",stroke:null,path:"M".concat(b.x,",",b.y,"m0-",b.radius*0.58,"l",b.radius*0.5,",",b.radius*0.87,"-",b.radius,",0z")},b))},diamond:function(a,c){var b=c.radius;b*=1.5;return a.add(Ext.apply({type:"path",stroke:null,path:["M",c.x,c.y-b,"l",b,b,-b,b,-b,-b,b,-b,"z"]},c))},cross:function(a,c){var b=c.radius;b=b/1.7;return a.add(Ext.apply({type:"path",stroke:null,path:"M".concat(c.x-b,",",c.y,"l",[-b,-b,b,-b,b,b,b,-b,b,b,-b,b,b,b,-b,b,-b,-b,-b,b,-b,-b,"z"])},c))},plus:function(a,c){var b=c.radius/1.3;return a.add(Ext.apply({type:"path",stroke:null,path:"M".concat(c.x-b/2,",",c.y-b/2,"l",[0,-b,b,0,0,b,b,0,0,b,-b,0,0,b,-b,0,0,-b,-b,0,0,-b,"z"])},c))},arrow:function(a,c){var b=c.radius;return a.add(Ext.apply({type:"path",path:"M".concat(c.x-b*0.7,",",c.y-b*0.4,"l",[b*0.6,0,0,-b*0.4,b,b*0.8,-b,b*0.8,0,-b*0.4,-b*0.6,0],"z")},c))},drop:function(b,a,g,e,c,d){c=c||30;d=d||0;b.add({type:"path",path:["M",a,g,"l",c,0,"A",c*0.4,c*0.4,0,1,0,a+c*0.7,g-c*0.7,"z"],fill:"#000",stroke:"none",rotate:{degrees:22.5-d,x:a,y:g}});d=(d+90)*Math.PI/180;b.add({type:"text",x:a+c*Math.sin(d)-10,y:g+c*Math.cos(d)+5,text:e,"font-size":c*12/40,stroke:"none",fill:"#fff"})}});Ext.define("Ext.chart.LegendItem",{extend:"Ext.draw.CompositeSprite",requires:["Ext.chart.Shape"],x:0,y:0,zIndex:500,boldRe:/bold\s\d{1,}.*/i,constructor:function(a){this.callParent(arguments);this.createLegend(a)},createLegend:function(s){var t=this,i=s.yFieldIndex,l=t.series,a=l.type,m=t.yFieldIndex,d=t.legend,p=t.surface,q=d.x+t.x,n=d.y+t.y,c,k=t.zIndex,b,j,r,e,o=false,h=Ext.apply(l.seriesStyle,l.style);function g(u){var v=l[u];return(Ext.isArray(v)?v[m]:v)}j=t.add("label",p.add({type:"text",x:20,y:0,zIndex:(k||0)+2,fill:d.labelColor,font:d.labelFont,text:g("title")||g("yField"),style:{cursor:"pointer"}}));if(a==="line"||a==="scatter"){if(a==="line"){t.add("line",p.add({type:"path",path:"M0.5,0.5L16.5,0.5",zIndex:(k||0)+2,"stroke-width":l.lineWidth,"stroke-linejoin":"round","stroke-dasharray":l.dash,stroke:h.stroke||l.getLegendColor(i)||"#000",style:{cursor:"pointer"}}))}if(l.showMarkers||a==="scatter"){b=Ext.apply(l.markerStyle,l.markerConfig||{},{fill:l.getLegendColor(i)});t.add("marker",Ext.chart.Shape[b.type](p,{fill:b.fill,x:8.5,y:0.5,zIndex:(k||0)+2,radius:b.radius||b.size,style:{cursor:"pointer"}}))}}else{t.add("box",p.add({type:"rect",zIndex:(k||0)+2,x:0,y:0,width:12,height:12,fill:l.getLegendColor(i),style:{cursor:"pointer"}}))}t.setAttributes({hidden:false},true);c=t.getBBox();r=t.add("mask",p.add({type:"rect",x:c.x,y:c.y,width:c.width||20,height:c.height||20,zIndex:(k||0)+1,fill:t.legend.boxFill,style:{cursor:"pointer"}}));t.on("mouseover",function(){j.setStyle({"font-weight":"bold"});r.setStyle({cursor:"pointer"});l._index=i;l.highlightItem()},t);t.on("mouseout",function(){j.setStyle({"font-weight":d.labelFont&&t.boldRe.test(d.labelFont)?"bold":"normal"});l._index=i;l.unHighlightItem()},t);if(!l.visibleInLegend(i)){o=true;j.setAttributes({opacity:0.5},true)}t.on("mousedown",function(){if(!o){l.hideAll(i);j.setAttributes({opacity:0.5},true)}else{l.showAll(i);j.setAttributes({opacity:1},true)}o=!o;t.legend.chart.redraw()},t);t.updatePosition({x:0,y:0})},updatePosition:function(c){var g=this,a=g.items,e=a.length,b=0,d;if(!c){c=g.legend}for(;b<e;b++){d=a[b];switch(d.type){case"text":d.setAttributes({x:20+c.x+g.x,y:c.y+g.y},true);break;case"rect":d.setAttributes({translate:{x:c.x+g.x,y:c.y+g.y-6}},true);break;default:d.setAttributes({translate:{x:c.x+g.x,y:c.y+g.y}},true)}}}});Ext.define("Ext.chart.Legend",{requires:["Ext.chart.LegendItem"],visible:true,update:true,position:"bottom",x:0,y:0,labelColor:"#000",labelFont:"12px Helvetica, sans-serif",boxStroke:"#000",boxStrokeWidth:1,boxFill:"#FFF",itemSpacing:10,padding:5,width:0,height:0,boxZIndex:100,constructor:function(a){var b=this;if(a){Ext.apply(b,a)}b.items=[];b.isVertical=("left|right|float".indexOf(b.position)!==-1);b.origX=b.x;b.origY=b.y},create:function(){var e=this,a=e.chart.series.items,c,d,b;e.createBox();if(e.rebuild!==false){e.createItems()}if(!e.created&&e.isDisplayed()){e.created=true;for(c=0,d=a.length;c<d;c++){b=a[c];b.on("titlechange",function(){e.create();e.updatePosition()})}}},isDisplayed:function(){return this.visible&&this.chart.series.findIndex("showInLegend",true)!==-1},createItems:function(){var H=this,s=H.chart,b=s.series.items,o,q,A=s.surface,u=H.items,r=H.padding,K=H.itemSpacing,m=2,E=0,z=0,h=0,G=0,d=H.isVertical,g=Math,e=g.floor,J=g.max,l=0,C=0,D=u?u.length:0,p,n,k,F,a,t,w,v,c,I,B;if(D){for(;C<D;C++){u[C].destroy()}}u.length=[];for(C=0,o=b.length;C<o;C++){q=b[C];if(q.showInLegend){v=[].concat(q.yField);for(B=0,I=v.length;B<I;B++){c=v[B];F=new Ext.chart.LegendItem({legend:this,series:q,surface:s.surface,yFieldIndex:B});a=F.getBBox();w=a.width;t=a.height;if(C+B===0){k=d?r+t/2:r}else{k=K/(d?2:1)}F.x=e(d?r:h+k);F.y=e(d?G+k:r+t/2);h+=w+k;G+=t+k;E=J(E,w);z=J(z,t);u.push(F)}}}H.width=e((d?E:h)+r*2);if(d&&u.length===1){m=1}H.height=e((d?G-m*k:z)+(r*2));H.itemHeight=z},getBBox:function(){var a=this;return{x:Math.round(a.x)-a.boxStrokeWidth/2,y:Math.round(a.y)-a.boxStrokeWidth/2,width:a.width,height:a.height}},createBox:function(){var b=this,a,c;if(b.boxSprite){b.boxSprite.destroy()}c=b.getBBox();if(isNaN(c.width)||isNaN(c.height)){b.boxSprite=false;return}a=b.boxSprite=b.chart.surface.add(Ext.apply({type:"rect",stroke:b.boxStroke,"stroke-width":b.boxStrokeWidth,fill:b.boxFill,zIndex:b.boxZIndex},c));a.redraw()},updatePosition:function(){var u=this,p=u.items,r,j,l,h,n=u.width||0,c=u.height||0,m=u.padding,o=u.chart,k=o.chartBBox,s=o.insetPadding,t=k.width-(s*2),d=k.height-(s*2),g=k.x+s,e=k.y+s,q=o.surface,b=Math.floor,a;if(u.isDisplayed()){switch(u.position){case"left":l=s;h=b(e+d/2-c/2);break;case"right":l=b(q.width-n)-s;h=b(e+d/2-c/2);break;case"top":l=b(g+t/2-n/2);h=s;break;case"bottom":l=b(g+t/2-n/2);h=b(q.height-c)-s;break;default:l=b(u.origX)+s;h=b(u.origY)+s}u.x=l;u.y=h;for(r=0,j=p.length;r<j;r++){p[r].updatePosition()}a=u.getBBox();if(isNaN(a.width)||isNaN(a.height)){if(u.boxSprite){u.boxSprite.hide(true)}}else{if(!u.boxSprite){u.createBox()}u.boxSprite.setAttributes(a,true);u.boxSprite.show(true)}}},toggle:function(b){var e=this,d=0,c=e.items,a=c.length;if(e.boxSprite){if(b){e.boxSprite.show(true)}else{e.boxSprite.hide(true)}}for(;d<a;++d){if(b){c[d].show(true)}else{c[d].hide(true)}}e.visible=b}});Ext.define("Ext.chart.theme.Theme",{requires:["Ext.draw.Color"],theme:"Base",themeAttrs:false,initTheme:function(e){var d=this,b=Ext.chart.theme,c,a;if(e){e=e.split(":");for(c in b){if(c==e[0]){a=e[1]=="gradients";d.themeAttrs=new b[c]({useGradients:a});if(a){d.gradients=d.themeAttrs.gradients}if(d.themeAttrs.background){d.background=d.themeAttrs.background}return}}}}},function(){(function(){Ext.chart.theme=function(c,b){c=c||{};var m=0,p=+new Date(),j,a,k,r,s,g,o,q,n=[],e,h;if(c.baseColor){e=Ext.draw.Color.fromString(c.baseColor);h=e.getHSL()[2];if(h<0.15){e=e.getLighter(0.3)}else{if(h<0.3){e=e.getLighter(0.15)}else{if(h>0.85){e=e.getDarker(0.3)}else{if(h>0.7){e=e.getDarker(0.15)}}}}c.colors=[e.getDarker(0.3).toString(),e.getDarker(0.15).toString(),e.toString(),e.getLighter(0.15).toString(),e.getLighter(0.3).toString()];delete c.baseColor}if(c.colors){a=c.colors.slice();s=b.markerThemes;r=b.seriesThemes;j=a.length;b.colors=a;for(;m<j;m++){k=a[m];o=s[m]||{};g=r[m]||{};o.fill=g.fill=o.stroke=g.stroke=k;s[m]=o;r[m]=g}b.markerThemes=s.slice(0,j);b.seriesThemes=r.slice(0,j)}for(q in b){if(q in c){if(Ext.isObject(c[q])&&Ext.isObject(b[q])){Ext.apply(b[q],c[q])}else{b[q]=c[q]}}}if(c.useGradients){a=b.colors||(function(){var d=[];for(m=0,r=b.seriesThemes,j=r.length;m<j;m++){d.push(r[m].fill||r[m].stroke)}return d}());for(m=0,j=a.length;m<j;m++){e=Ext.draw.Color.fromString(a[m]);if(e){k=e.getDarker(0.1).toString();e=e.toString();q="theme-"+e.substr(1)+"-"+k.substr(1)+"-"+p;n.push({id:q,angle:45,stops:{0:{color:e.toString()},100:{color:k.toString()}}});a[m]="url(#"+q+")"}}b.gradients=n;b.colors=a}Ext.apply(this,b)}}())});Ext.define("Ext.chart.theme.Base",{requires:["Ext.chart.theme.Theme"],constructor:function(a){Ext.chart.theme.call(this,a,{background:false,axis:{stroke:"#444","stroke-width":1},axisLabelTop:{fill:"#444",font:"12px Arial, Helvetica, sans-serif",spacing:2,padding:5,renderer:function(b){return b}},axisLabelRight:{fill:"#444",font:"12px Arial, Helvetica, sans-serif",spacing:2,padding:5,renderer:function(b){return b}},axisLabelBottom:{fill:"#444",font:"12px Arial, Helvetica, sans-serif",spacing:2,padding:5,renderer:function(b){return b}},axisLabelLeft:{fill:"#444",font:"12px Arial, Helvetica, sans-serif",spacing:2,padding:5,renderer:function(b){return b}},axisTitleTop:{font:"bold 18px Arial",fill:"#444"},axisTitleRight:{font:"bold 18px Arial",fill:"#444",rotate:{x:0,y:0,degrees:270}},axisTitleBottom:{font:"bold 18px Arial",fill:"#444"},axisTitleLeft:{font:"bold 18px Arial",fill:"#444",rotate:{x:0,y:0,degrees:270}},series:{"stroke-width":0},seriesLabel:{font:"12px Arial",fill:"#333"},marker:{stroke:"#555",radius:3,size:3},colors:["#94ae0a","#115fa6","#a61120","#ff8809","#ffd13e","#a61187","#24ad9a","#7c7474","#a66111"],seriesThemes:[{fill:"#115fa6"},{fill:"#94ae0a"},{fill:"#a61120"},{fill:"#ff8809"},{fill:"#ffd13e"},{fill:"#a61187"},{fill:"#24ad9a"},{fill:"#7c7474"},{fill:"#115fa6"},{fill:"#94ae0a"},{fill:"#a61120"},{fill:"#ff8809"},{fill:"#ffd13e"},{fill:"#a61187"},{fill:"#24ad9a"},{fill:"#7c7474"},{fill:"#a66111"}],markerThemes:[{fill:"#115fa6",type:"circle"},{fill:"#94ae0a",type:"cross"},{fill:"#115fa6",type:"plus"},{fill:"#94ae0a",type:"circle"},{fill:"#a61120",type:"cross"}]})}},function(){var c=["#b1da5a","#4ce0e7","#e84b67","#da5abd","#4d7fe6","#fec935"],k=["Green","Sky","Red","Purple","Blue","Yellow"],h=0,g=0,b=c.length,a=Ext.chart.theme,d=[["#f0a50a","#c20024","#2044ba","#810065","#7eae29"],["#6d9824","#87146e","#2a9196","#d39006","#1e40ac"],["#fbbc29","#ce2e4e","#7e0062","#158b90","#57880e"],["#ef5773","#fcbd2a","#4f770d","#1d3eaa","#9b001f"],["#7eae29","#fdbe2a","#910019","#27b4bc","#d74dbc"],["#44dce1","#0b2592","#996e05","#7fb325","#b821a1"]],e=d.length;for(;h<b;h++){a[k[h]]=(function(i){return Ext.extend(a.Base,{constructor:function(j){a.Base.prototype.constructor.call(this,Ext.apply({baseColor:i},j))}})}(c[h]))}for(h=0;h<e;h++){a["Category"+(h+1)]=(function(i){return Ext.extend(a.Base,{constructor:function(j){a.Base.prototype.constructor.call(this,Ext.apply({colors:i},j))}})}(d[h]))}});Ext.define("Ext.chart.MaskLayer",{extend:"Ext.Component",constructor:function(a){a=Ext.apply(a||{},{style:"position:absolute;background-color:#888;cursor:move;opacity:0.6;border:1px solid #222;"});this.callParent([a])},initComponent:function(){var a=this;a.callParent(arguments);a.addEvents("mousedown","mouseup","mousemove","mouseenter","mouseleave")},initDraggable:function(){this.callParent(arguments);this.dd.onStart=function(c){var b=this,a=b.comp;this.startPosition=a.getPosition(true);if(a.ghost&&!a.liveDrag){b.proxy=a.ghost();b.dragTarget=b.proxy.header.el}if(b.constrain||b.constrainDelegate){b.constrainTo=b.calculateConstrainRegion()}}}});Ext.define("Ext.chart.Mask",{requires:["Ext.chart.MaskLayer"],constructor:function(a){var c=this,b;c.addEvents("select");if(a){Ext.apply(c,a)}if(c.enableMask){c.on("afterrender",function(){var d=new Ext.chart.MaskLayer({renderTo:c.el,hidden:true});d.el.on({mousemove:function(g){c.onMouseMove(g)},mouseup:function(g){c.resized(g)}});b=new Ext.resizer.Resizer({el:d.el,handles:"all",pinned:true});b.on({resize:function(g){c.resized(g)}});d.initDraggable();c.maskType=c.mask;c.mask=d;c.maskSprite=c.surface.add({type:"path",path:["M",0,0],zIndex:1001,opacity:0.7,hidden:true,stroke:"#444"})},c,{single:true})}},resized:function(d){var g=this,l=g.bbox||g.chartBBox,j=l.x,i=l.y,a=l.width,m=l.height,c=g.mask.getBox(true),h=Math.max,b=Math.min,n=c.x-j,k=c.y-i;n=h(n,j);k=h(k,i);n=b(n,a);k=b(k,m);c.x=n;c.y=k;g.fireEvent("select",g,c)},onMouseUp:function(c){var a=this,d=a.bbox||a.chartBBox,b=a.maskSelection;a.maskMouseDown=false;a.mouseDown=false;if(a.mouseMoved){a.onMouseMove(c);a.mouseMoved=false;a.fireEvent("select",a,{x:b.x-d.x,y:b.y-d.y,width:b.width,height:b.height})}},onMouseDown:function(b){var a=this;a.mouseDown=true;a.mouseMoved=false;a.maskMouseDown={x:b.getPageX()-a.el.getX(),y:b.getPageY()-a.el.getY()}},onMouseMove:function(t){var u=this,o=u.maskType,a=u.bbox||u.chartBBox,i=a.x,h=a.y,b=Math,q=b.floor,j=b.abs,n=b.min,p=b.max,k=q(h+a.height),m=q(i+a.width),d=t.getPageX(),c=t.getPageY(),s=d-u.el.getX(),r=c-u.el.getY(),g=u.maskMouseDown,l;u.mouseMoved=u.mouseDown;s=p(s,i);r=p(r,h);s=n(s,m);r=n(r,k);if(g&&u.mouseDown){if(o=="horizontal"){r=h;g.y=k;c=u.el.getY()+a.height+u.insetPadding}else{if(o=="vertical"){s=i;g.x=m}}m=g.x-s;k=g.y-r;l=["M",s,r,"l",m,0,0,k,-m,0,"z"];u.maskSelection={x:m>0?s:s+m,y:k>0?r:r+k,width:j(m),height:j(k)};u.mask.updateBox(u.maskSelection);u.mask.show();u.maskSprite.setAttributes({hidden:true},true)}else{if(o=="horizontal"){l=["M",s,h,"L",s,k]}else{if(o=="vertical"){l=["M",i,r,"L",m,r]}else{l=["M",s,h,"L",s,k,"M",i,r,"L",m,r]}}u.maskSprite.setAttributes({path:l,fill:u.maskMouseDown?u.maskSprite.stroke:false,"stroke-width":o===true?1:3,hidden:false},true)}},onMouseLeave:function(b){var a=this;a.mouseMoved=false;a.mouseDown=false;a.maskMouseDown=false;a.mask.hide();a.maskSprite.hide(true)}});Ext.define("Ext.chart.Navigation",{constructor:function(){this.originalStore=this.store},setZoom:function(k){var j=this,g=j.axes,a=g.items,e,h,c,p=j.chartBBox,o=1/p.width,b=1/p.height,d={x:k.x*o,y:k.y*b,width:k.width*o,height:k.height*b},l,n,m;for(e=0,h=a.length;e<h;e++){c=a[e];l=c.calcEnds();if(c.position=="bottom"||c.position=="top"){n=(l.to-l.from)*d.x+l.from;m=(l.to-l.from)*d.width+n;c.minimum=n;c.maximum=m}else{m=(l.to-l.from)*(1-d.y)+l.from;n=m-(l.to-l.from)*d.height;c.minimum=n;c.maximum=m}}j.redraw(false)},restoreZoom:function(){if(this.originalStore){this.store=this.substore=this.originalStore;this.redraw(true)}}});Ext.define("Ext.chart.Chart",{alias:"widget.chart",extend:"Ext.draw.Component",mixins:{themeManager:"Ext.chart.theme.Theme",mask:"Ext.chart.Mask",navigation:"Ext.chart.Navigation",bindable:"Ext.util.Bindable",observable:"Ext.util.Observable"},uses:["Ext.chart.series.Series"],requires:["Ext.util.MixedCollection","Ext.data.StoreManager","Ext.chart.Legend","Ext.chart.theme.Base","Ext.chart.theme.Theme","Ext.util.DelayedTask"],viewBox:false,animate:false,legend:false,insetPadding:10,enginePriority:["Svg","Vml"],background:false,constructor:function(b){var c=this,a;b=Ext.apply({},b);c.initTheme(b.theme||c.theme);if(c.gradients){Ext.apply(b,{gradients:c.gradients})}if(c.background){Ext.apply(b,{background:c.background})}if(b.animate){a={easing:"ease",duration:500};if(Ext.isObject(b.animate)){b.animate=Ext.applyIf(b.animate,a)}else{b.animate=a}}c.mixins.observable.constructor.call(c,b);if(b.enableMask){c.mixins.mask.constructor.call(c)}c.mixins.navigation.constructor.call(c);c.callParent([b])},getChartStore:function(){return this.substore||this.store},initComponent:function(){var b=this,c,a;b.callParent();b.addEvents("itemmousedown","itemmouseup","itemmouseover","itemmouseout","itemclick","itemdblclick","itemdragstart","itemdrag","itemdragend","beforerefresh","refresh");Ext.applyIf(b,{zoom:{width:1,height:1,x:0,y:0}});b.maxGutter=[0,0];b.store=Ext.data.StoreManager.lookup(b.store);c=b.axes;b.axes=new Ext.util.MixedCollection(false,function(d){return d.position});if(c){b.axes.addAll(c)}a=b.series;b.series=new Ext.util.MixedCollection(false,function(d){return d.seriesId||(d.seriesId=Ext.id(null,"ext-chart-series-"))});if(a){b.series.addAll(a)}if(b.legend!==false){b.legend=new Ext.chart.Legend(Ext.applyIf({chart:b},b.legend))}b.on({mousemove:b.onMouseMove,mouseleave:b.onMouseLeave,mousedown:b.onMouseDown,mouseup:b.onMouseUp,click:b.onClick,dblclick:b.onDblClick,scope:b})},afterComponentLayout:function(b,a){var c=this;if(Ext.isNumber(b)&&Ext.isNumber(a)){if(b!==c.curWidth||a!==c.curHeight){c.curWidth=b;c.curHeight=a;c.redraw(true)}else{if(c.needsRedraw){delete c.needsRedraw;c.redraw()}}}this.callParent(arguments)},redraw:function(b){var h=this,g=h.series.items,d=g.length,a=h.axes.items,c=a.length,e,k=h.chartBBox={x:0,y:0,height:h.curHeight,width:h.curWidth},j=h.legend;h.surface.setSize(k.width,k.height);for(e=0;e<d;e++){h.initializeSeries(g[e],e)}for(e=0;e<c;e++){h.initializeAxis(a[e])}for(e=0;e<c;e++){a[e].processView()}for(e=0;e<c;e++){a[e].drawAxis(true)}if(j!==false&&j.visible){if(j.update||!j.created){j.create()}}h.alignAxes();if(j!==false&&j.visible){j.updatePosition()}h.getMaxGutter();h.resizing=!!b;for(e=0;e<c;e++){a[e].drawAxis()}for(e=0;e<d;e++){h.drawCharts(g[e])}h.resizing=false},afterRender:function(){var b,a=this;this.callParent();if(a.categoryNames){a.setCategoryNames(a.categoryNames)}if(a.tipRenderer){b=a.getFunctionRef(a.tipRenderer);a.setTipRenderer(b.fn,b.scope)}a.bindStore(a.store,true);a.refresh();if(a.surface.engine==="Vml"){a.on("added",a.onAddedVml,a);a.mon(Ext.container.Container.hierarchyEventSource,"added",a.onContainerAddedVml,a)}},onAddedVml:function(){this.needsRedraw=true},onContainerAddedVml:function(a){if(this.isDescendantOf(a)){this.needsRedraw=true}},getEventXY:function(d){var c=this,b=this.surface.getRegion(),h=d.getXY(),a=h[0]-b.left,g=h[1]-b.top;return[a,g]},onClick:function(a){this.handleClick("itemclick",a)},onDblClick:function(a){this.handleClick("itemdblclick",a)},handleClick:function(a,h){var k=this,g=k.getEventXY(h),d=k.series.items,b,j,c,l;for(b=0,j=d.length;b<j;b++){c=d[b];if(Ext.draw.Draw.withinBox(g[0],g[1],c.bbox)){if(c.getItemForPoint){l=c.getItemForPoint(g[0],g[1]);if(l){c.fireEvent(a,l)}}}}},onMouseDown:function(k){var j=this,a=j.getEventXY(k),b=j.series.items,d,h,c,g;if(j.enableMask){j.mixins.mask.onMouseDown.call(j,k)}for(d=0,h=b.length;d<h;d++){c=b[d];if(Ext.draw.Draw.withinBox(a[0],a[1],c.bbox)){if(c.getItemForPoint){g=c.getItemForPoint(a[0],a[1]);if(g){c.fireEvent("itemmousedown",g)}}}}},onMouseUp:function(k){var j=this,a=j.getEventXY(k),b=j.series.items,d,h,c,g;if(j.enableMask){j.mixins.mask.onMouseUp.call(j,k)}for(d=0,h=b.length;d<h;d++){c=b[d];if(Ext.draw.Draw.withinBox(a[0],a[1],c.bbox)){if(c.getItemForPoint){g=c.getItemForPoint(a[0],a[1]);if(g){c.fireEvent("itemmouseup",g)}}}}},onMouseMove:function(h){var k=this,d=k.getEventXY(h),c=k.series.items,a,j,b,n,l,g,m;if(k.enableMask){k.mixins.mask.onMouseMove.call(k,h)}for(a=0,j=c.length;a<j;a++){b=c[a];if(Ext.draw.Draw.withinBox(d[0],d[1],b.bbox)){if(b.getItemForPoint){n=b.getItemForPoint(d[0],d[1]);l=b._lastItemForPoint;g=b._lastStoreItem;m=b._lastStoreField;if(n!==l||n&&(n.storeItem!=g||n.storeField!=m)){if(l){b.fireEvent("itemmouseout",l);delete b._lastItemForPoint;delete b._lastStoreField;delete b._lastStoreItem}if(n){b.fireEvent("itemmouseover",n);b._lastItemForPoint=n;b._lastStoreItem=n.storeItem;b._lastStoreField=n.storeField}}}}else{l=b._lastItemForPoint;if(l){b.fireEvent("itemmouseout",l);delete b._lastItemForPoint;delete b._lastStoreField;delete b._lastStoreItem}}}},onMouseLeave:function(h){var g=this,a=g.series.items,c,d,b;if(g.enableMask){g.mixins.mask.onMouseLeave.call(g,h)}for(c=0,d=a.length;c<d;c++){b=a[c];delete b._lastItemForPoint}},delayRefresh:function(){var a=this;if(!a.refreshTask){a.refreshTask=new Ext.util.DelayedTask(a.refresh,a)}a.refreshTask.delay(a.refreshBuffer)},refresh:function(){var a=this;if(a.rendered&&a.curWidth!==undefined&&a.curHeight!==undefined){if(!a.isVisible(true)&&!a.refreshPending){a.setShowListeners("mon");a.refreshPending=true;return}if(a.fireEvent("beforerefresh",a)!==false){a.redraw();a.fireEvent("refresh",a)}}},onShow:function(){var a=this;a.callParent(arguments);if(a.refreshPending){a.delayRefresh();a.setShowListeners("mun")}delete a.refreshPending},setShowListeners:function(b){var a=this;a[b](Ext.container.Container.hierarchyEventSource,{scope:a,single:true,show:a.forceRefresh,expand:a.forceRefresh})},forceRefresh:function(a){var b=this;if(b.isDescendantOf(a)&&b.refreshPending){b.setShowListeners("mun");b.delayRefresh()}delete b.refreshPending},bindStore:function(a,b){var c=this;c.mixins.bindable.bindStore.apply(c,arguments);if(c.store&&!b){c.refresh()}},getStoreListeners:function(){var b=this.refresh,a=this.delayRefresh;return{refresh:b,add:a,remove:a,update:a,clear:b}},initializeAxis:function(b){var e=this,k=e.chartBBox,j=k.width,d=k.height,i=k.x,g=k.y,c=e.themeAttrs,a={chart:e};if(c){a.axisStyle=Ext.apply({},c.axis);a.axisLabelLeftStyle=Ext.apply({},c.axisLabelLeft);a.axisLabelRightStyle=Ext.apply({},c.axisLabelRight);a.axisLabelTopStyle=Ext.apply({},c.axisLabelTop);a.axisLabelBottomStyle=Ext.apply({},c.axisLabelBottom);a.axisTitleLeftStyle=Ext.apply({},c.axisTitleLeft);a.axisTitleRightStyle=Ext.apply({},c.axisTitleRight);a.axisTitleTopStyle=Ext.apply({},c.axisTitleTop);a.axisTitleBottomStyle=Ext.apply({},c.axisTitleBottom)}switch(b.position){case"top":Ext.apply(a,{length:j,width:d,x:i,y:g});break;case"bottom":Ext.apply(a,{length:j,width:d,x:i,y:d});break;case"left":Ext.apply(a,{length:d,width:j,x:i,y:d});break;case"right":Ext.apply(a,{length:d,width:j,x:j,y:d});break}if(!b.chart){Ext.apply(a,b);b=e.axes.replace(Ext.createByAlias("axis."+b.type.toLowerCase(),a))}else{Ext.apply(b,a)}},alignAxes:function(){var l=this,k=l.axes,a=k.items,e,p=l.legend,g=["top","right","bottom","left"],b,h,j,r,o=l.insetPadding,d={top:o,right:o,bottom:o,left:o},n,q,m;function c(t){var s=k.findIndex("position",t);return(s<0)?null:k.getAt(s)}for(h=0,j=g.length;h<j;h++){b=g[h];n=(b==="left"||b==="right");e=c(b);if(p!==false){if(p.position===b){q=p.getBBox();d[b]+=(n?q.width:q.height)+d[b]}}if(e&&e.bbox){q=e.bbox;d[b]+=(n?q.width:q.height)}}r={x:d.left,y:d.top,width:l.curWidth-d.left-d.right,height:l.curHeight-d.top-d.bottom};l.chartBBox=r;for(h=0,j=a.length;h<j;h++){e=a[h];m=e.position;n=(m==="left"||m==="right");e.x=(m==="right"?r.x+r.width:r.x);e.y=(m==="top"?r.y:r.y+r.height);e.width=(n?r.width:r.height);e.length=(n?r.height:r.width)}},initializeSeries:function(h,k){var j=this,d=j.themeAttrs,c,e,n,p,o,m=[],g=0,b,a={chart:j,seriesId:h.seriesId};if(d){n=d.seriesThemes;o=d.markerThemes;c=Ext.apply({},d.series);e=Ext.apply({},d.marker);a.seriesStyle=Ext.apply(c,n[k%n.length]);a.seriesLabelStyle=Ext.apply({},d.seriesLabel);a.markerStyle=Ext.apply(e,o[k%o.length]);if(d.colors){a.colorArrayStyle=d.colors}else{m=[];for(b=n.length;g<b;g++){p=n[g];if(p.fill||p.stroke){m.push(p.fill||p.stroke)}}if(m.length){a.colorArrayStyle=m}}a.seriesIdx=k}if(h instanceof Ext.chart.series.Series){Ext.apply(h,a)}else{Ext.applyIf(a,h);h=j.series.replace(Ext.createByAlias("series."+h.type.toLowerCase(),a))}if(h.initialize){h.initialize()}},getMaxGutter:function(){var g=this,a=g.series.items,d,e,c,b=[0,0],h;for(d=0,e=a.length;d<e;d++){c=a[d];h=c.getGutters&&c.getGutters()||[0,0];b[0]=Math.max(b[0],h[0]);b[1]=Math.max(b[1],h[1])}g.maxGutter=b},drawAxis:function(a){a.drawAxis()},drawCharts:function(a){a.triggerafterrender=false;a.drawSeries();if(!this.animate){a.fireEvent("afterrender")}},save:function(a){return Ext.draw.Surface.save(this.surface,a)},destroy:function(){Ext.destroy(this.surface);this.bindStore(null);this.callParent(arguments)}});Ext.define("Ext.chart.Highlight",{requires:["Ext.fx.Anim"],highlight:false,highlightCfg:{fill:"#fdd","stroke-width":5,stroke:"#f55"},constructor:function(a){if(a.highlight){if(a.highlight!==true){this.highlightCfg=Ext.merge(this.highlightCfg,a.highlight)}}},highlightItem:function(k){if(!k){return}var g=this,j=k.sprite,a=Ext.merge({},g.highlightCfg,g.highlight),d=g.chart.surface,c=g.chart.animate,b,i,h,e;if(!g.highlight||!j||j._highlighted){return}if(j._anim){j._anim.paused=true}j._highlighted=true;if(!j._defaults){j._defaults=Ext.apply({},j.attr);i={};h={};for(b in a){if(!(b in j._defaults)){j._defaults[b]=d.availableAttrs[b]}i[b]=j._defaults[b];h[b]=a[b];if(Ext.isObject(a[b])){i[b]={};h[b]={};Ext.apply(j._defaults[b],j.attr[b]);Ext.apply(i[b],j._defaults[b]);for(e in j._defaults[b]){if(!(e in a[b])){h[b][e]=i[b][e]}else{h[b][e]=a[b][e]}}for(e in a[b]){if(!(e in h[b])){h[b][e]=a[b][e]}}}}j._from=i;j._to=h;j._endStyle=h}if(c){j._anim=new Ext.fx.Anim({target:j,from:j._from,to:j._to,duration:150})}else{j.setAttributes(j._to,true)}},unHighlightItem:function(){if(!this.highlight||!this.items){return}var j=this,h=j.items,g=h.length,a=Ext.merge({},j.highlightCfg,j.highlight),c=j.chart.animate,e=0,d,b,k;for(;e<g;e++){if(!h[e]){continue}k=h[e].sprite;if(k&&k._highlighted){if(k._anim){k._anim.paused=true}d={};for(b in a){if(Ext.isObject(k._defaults[b])){d[b]={};Ext.apply(d[b],k._defaults[b])}else{d[b]=k._defaults[b]}}if(c){k._endStyle=d;k._anim=new Ext.fx.Anim({target:k,to:d,duration:150})}else{k.setAttributes(d,true)}delete k._highlighted}}},cleanHighlights:function(){if(!this.highlight){return}var d=this.group,c=this.markerGroup,b=0,a;for(a=d.getCount();b<a;b++){delete d.getAt(b)._defaults}if(c){for(a=c.getCount();b<a;b++){delete c.getAt(b)._defaults}}}});Ext.define("Ext.chart.Label",{requires:["Ext.draw.Color"],colorStringRe:/url\s*\(\s*#([^\/)]+)\s*\)/,constructor:function(a){var b=this;b.label=Ext.applyIf(b.label||{},{display:"none",color:"#000",field:"name",minMargin:50,font:"11px Helvetica, sans-serif",orientation:"horizontal",renderer:function(c){return c}});if(b.label.display!=="none"){b.labelsGroup=b.chart.surface.getGroup(b.seriesId+"-labels")}},renderLabels:function(){var o=this,L=o.chart,x=L.gradients,r=o.items,H=L.animate,A=o.label,u=A.display,v=A.color,d=[].concat(A.field),q=o.labelsGroup,l=(q||0)&&q.length,b=o.chart.getChartStore(),p=b.getCount(),h=(r||0)&&r.length,D=h/p,z=(x||0)&&x.length,m=Ext.draw.Color,K=[],n,J,E,c,y,I,G,e,g,t,w,F,M,s,N,C,B,a;if(u=="none"){return}if(h==0){while(l--){K.push(l)}}else{for(J=0,E=0,c=0;J<p;J++){y=0;for(I=0;I<D;I++){w=r[E];F=q.getAt(c);M=b.getAt(J);while(this.__excludes&&this.__excludes[y]){y++}if(!w&&F){F.hide(true);c++}if(w&&d[I]){if(!F){F=o.onCreateLabel(M,w,J,u,I,y)}o.onPlaceLabel(F,M,w,J,u,H,I,y);c++;if(A.contrast&&w.sprite){s=w.sprite;if(s._endStyle){a=s._endStyle.fill}else{if(s._to){a=s._to.fill}else{a=s.attr.fill}}a=a||s.attr.fill;N=m.fromString(a);if(a&&!N){a=a.match(o.colorStringRe)[1];for(G=0;G<z;G++){n=x[G];if(n.id==a){t=0;e=0;for(g in n.stops){t++;e+=m.fromString(n.stops[g].color).getGrayscale()}C=(e/t)/255;break}}}else{C=N.getGrayscale()/255}if(F.isOutside){C=1}B=m.fromString(F.attr.color||F.attr.fill).getHSL();B[2]=C>0.5?0.2:0.8;F.setAttributes({fill:String(m.fromHSL.apply({},B))},true)}}E++;y++}}l=q.length;while(l>c){K.push(c);c++}}o.hideLabels(K)},hideLabels:function(b){var a=this.labelsGroup,c=!!b&&b.length;if(!a){return}if(c===false){c=a.getCount();while(c--){a.getAt(c).hide(true)}}else{while(c--){a.getAt(b[c]).hide(true)}}}});Ext.define("Ext.chart.TipSurface",{extend:"Ext.draw.Component",spriteArray:false,renderFirst:true,constructor:function(a){this.callParent([a]);if(a.sprites){this.spriteArray=[].concat(a.sprites);delete a.sprites}},onRender:function(){var c=this,b=0,a=0,d,e;this.callParent(arguments);e=c.spriteArray;if(c.renderFirst&&e){c.renderFirst=false;for(a=e.length;b<a;b++){d=c.surface.add(e[b]);d.setAttributes({hidden:false},true)}}}});Ext.define("Ext.chart.Tip",{requires:["Ext.tip.ToolTip","Ext.chart.TipSurface"],constructor:function(b){var c=this,a,d,e;if(b.tips){c.tipTimeout=null;c.tipConfig=Ext.apply({},b.tips,{renderer:Ext.emptyFn,constrainPosition:true,autoHide:true});c.tooltip=new Ext.tip.ToolTip(c.tipConfig);c.chart.surface.on("mousemove",c.tooltip.onMouseMove,c.tooltip);c.chart.surface.on("mouseleave",function(){c.hideTip()});if(c.tipConfig.surface){a=c.tipConfig.surface;d=a.sprites;e=new Ext.chart.TipSurface({id:"tipSurfaceComponent",sprites:d});if(a.width&&a.height){e.setSize(a.width,a.height)}c.tooltip.add(e);c.spriteTip=e}}},showTip:function(l){var e=this,m,a,c,d,k,b,j,h,i,g;if(!e.tooltip){return}clearTimeout(e.tipTimeout);m=e.tooltip;a=e.spriteTip;c=e.tipConfig;d=m.trackMouse;if(!d){m.trackMouse=true;k=l.sprite;b=k.surface;j=Ext.get(b.getId());if(j){h=j.getXY();i=h[0]+(k.attr.x||0)+(k.attr.translation&&k.attr.translation.x||0);g=h[1]+(k.attr.y||0)+(k.attr.translation&&k.attr.translation.y||0);m.targetXY=[i,g]}}if(a){c.renderer.call(m,l.storeItem,l,a.surface)}else{c.renderer.call(m,l.storeItem,l)}m.show();m.trackMouse=d},hideTip:function(a){var b=this.tooltip;if(!b){return}clearTimeout(this.tipTimeout);this.tipTimeout=setTimeout(function(){b.hide()},0)}});Ext.define("Ext.chart.axis.Abstract",{requires:["Ext.chart.Chart"],constructor:function(a){a=a||{};var b=this,c=a.position||"left";c=c.charAt(0).toUpperCase()+c.substring(1);a.label=Ext.apply(a["axisLabel"+c+"Style"]||{},a.label||{});a.axisTitleStyle=Ext.apply(a["axisTitle"+c+"Style"]||{},a.labelTitle||{});Ext.apply(b,a);b.fields=Ext.Array.from(b.fields);this.callParent();b.labels=[];b.getId();b.labelGroup=b.chart.surface.getGroup(b.axisId+"-labels")},alignment:null,grid:false,steps:10,x:0,y:0,minValue:0,maxValue:0,getId:function(){return this.axisId||(this.axisId=Ext.id(null,"ext-axis-"))},processView:Ext.emptyFn,drawAxis:Ext.emptyFn,addDisplayAndLabels:Ext.emptyFn});Ext.define("Ext.chart.axis.Axis",{extend:"Ext.chart.axis.Abstract",alternateClassName:"Ext.chart.Axis",requires:["Ext.draw.Draw"],forceMinMax:false,dashSize:3,position:"bottom",skipFirst:false,length:0,width:0,adjustEnd:true,majorTickSteps:false,applyData:Ext.emptyFn,getRange:function(){var C=this,p=C.chart,l=p.getChartStore(),E=l.data.items,o=p.series.items,D=C.position,q,a=Ext.chart.series,v=[],u=Infinity,y=-Infinity,c=C.position==="left"||C.position==="right",z,n,d,x,w,m=E.length,g,B={},t={},A=true,r,h,e,b,s;r=C.fields;for(x=0,n=r.length;x<n;x++){t[r[x]]=true}for(z=0,n=o.length;z<n;z++){if(o[z].seriesIsHidden){continue}if(!o[z].getAxesForXAndYFields){continue}q=o[z].getAxesForXAndYFields();if(q.xAxis&&q.xAxis!==D&&q.yAxis&&q.yAxis!==D){continue}if(a.Bar&&o[z] instanceof a.Bar&&!o[z].column){r=c?Ext.Array.from(o[z].xField):Ext.Array.from(o[z].yField)}else{r=c?Ext.Array.from(o[z].yField):Ext.Array.from(o[z].xField)}if(C.fields.length){for(x=0,d=r.length;x<d;x++){if(t[r[x]]){break}}if(x==d){continue}}if(g=o[z].stacked){if(a.Bar&&o[z] instanceof a.Bar){if(o[z].column!=c){g=false;A=false}}else{if(!c){g=false;A=false}}}if(g){h={};for(x=0;x<r.length;x++){if(A&&o[z].__excludes&&o[z].__excludes[x]){continue}if(!t[r[x]]){Ext.Logger.warn("Field `"+r[x]+"` is not included in the "+D+" axis config.")}t[r[x]]=h[r[x]]=true}v.push({fields:h,value:0})}else{if(!r||r.length==0){r=C.fields}for(x=0;x<r.length;x++){if(A&&o[z].__excludes&&o[z].__excludes[x]){continue}t[r[x]]=B[r[x]]=true}}}for(z=0;z<m;z++){e=E[z];for(w=0;w<v.length;w++){v[w].value=0}for(b in t){s=e.get(b);if(isNaN(s)){continue}if(s===undefined){s=0}if(B[b]){if(u>s){u=s}if(y<s){y=s}}for(w=0;w<v.length;w++){if(v[w].fields[b]){v[w].value+=s;if(u>0){u=0}if(y<v[w].value){y=v[w].value}}}}}if(!isFinite(y)){y=C.prevMax||0}if(!isFinite(u)){u=C.prevMin||0}if(u!=y&&(y!=Math.floor(y))){y=Math.floor(y)+1}if(!isNaN(C.minimum)){u=C.minimum}if(!isNaN(C.maximum)){y=C.maximum}if(u>=y){y=u+1}return{min:u,max:y}},calcEnds:function(){var h=this,d=h.getRange(),g=d.min,a=d.max,c,i,e,b;c=(Ext.isNumber(h.majorTickSteps)?h.majorTickSteps+1:h.steps);i=!(Ext.isNumber(h.maximum)&&Ext.isNumber(h.minimum)&&Ext.isNumber(h.majorTickSteps)&&h.majorTickSteps>0);e=Ext.draw.Draw.snapEnds(g,a,c,i);if(Ext.isNumber(h.maximum)){e.to=h.maximum;b=true}if(Ext.isNumber(h.minimum)){e.from=h.minimum;b=true}if(h.adjustMaximumByMajorUnit){e.to=Math.ceil(e.to/e.step)*e.step;b=true}if(h.adjustMinimumByMajorUnit){e.from=Math.floor(e.from/e.step)*e.step;b=true}if(b){e.steps=Math.ceil((e.to-e.from)/e.step)}h.prevMin=(g==a?0:g);h.prevMax=a;return e},drawAxis:function(r){var C=this,s,j=C.x,h=C.y,A=C.chart.maxGutter[0],z=C.chart.maxGutter[1],e=C.dashSize,w=C.minorTickSteps||0,v=C.minorTickSteps||0,b=C.length,D=C.position,g=[],m=false,c=C.applyData(),d=c.step,t=c.steps,q=c.from,a=c.to,u,p,o,n,l,k,B;if(C.hidden||isNaN(d)||(q>a)){return}C.from=c.from;C.to=c.to;if(D=="left"||D=="right"){p=Math.floor(j)+0.5;n=["M",p,h,"l",0,-b];u=b-(z*2)}else{o=Math.floor(h)+0.5;n=["M",j,o,"l",b,0];u=b-(A*2)}B=t&&u/t;l=Math.max(w+1,0);k=Math.max(v+1,0);if(C.type=="Numeric"||C.type=="Time"){m=true;C.labels=[c.from]}if(D=="right"||D=="left"){o=h-z;p=j-((D=="left")*e*2);while(o>=h-z-u){n.push("M",p,Math.floor(o)+0.5,"l",e*2+1,0);if(o!=h-z){for(s=1;s<k;s++){n.push("M",p+e,Math.floor(o+B*s/k)+0.5,"l",e+1,0)}}g.push([Math.floor(j),Math.floor(o)]);o-=B;if(m){C.labels.push(C.labels[C.labels.length-1]+d)}if(B===0){break}}if(Math.round(o+B-(h-z-u))){n.push("M",p,Math.floor(h-b+z)+0.5,"l",e*2+1,0);for(s=1;s<k;s++){n.push("M",p+e,Math.floor(h-b+z+B*s/k)+0.5,"l",e+1,0)}g.push([Math.floor(j),Math.floor(o)]);if(m){C.labels.push(C.labels[C.labels.length-1]+d)}}}else{p=j+A;o=h-((D=="top")*e*2);while(p<=j+A+u){n.push("M",Math.floor(p)+0.5,o,"l",0,e*2+1);if(p!=j+A){for(s=1;s<l;s++){n.push("M",Math.floor(p-B*s/l)+0.5,o,"l",0,e+1)}}g.push([Math.floor(p),Math.floor(h)]);p+=B;if(m){C.labels.push(C.labels[C.labels.length-1]+d)}if(B===0){break}}if(Math.round(p-B-(j+A+u))){n.push("M",Math.floor(j+b-A)+0.5,o,"l",0,e*2+1);for(s=1;s<l;s++){n.push("M",Math.floor(j+b-A-B*s/l)+0.5,o,"l",0,e+1)}g.push([Math.floor(p),Math.floor(h)]);if(m){C.labels.push(C.labels[C.labels.length-1]+d)}}}if(m){C.labels[g.length-1]=+(C.labels[g.length-1]).toFixed(10)}if(!C.axis){C.axis=C.chart.surface.add(Ext.apply({type:"path",path:n},C.axisStyle))}C.axis.setAttributes({path:n},true);C.inflections=g;if(!r&&C.grid){C.drawGrid()}C.axisBBox=C.axis.getBBox();C.drawLabel()},drawGrid:function(){var t=this,o=t.chart.surface,b=t.grid,d=b.odd,e=b.even,h=t.inflections,j=h.length-((d||e)?0:1),u=t.position,c=t.chart.maxGutter,n=t.width-2,p,q,r=1,m=[],g,a,k,l=[],s=[];if((c[1]!==0&&(u=="left"||u=="right"))||(c[0]!==0&&(u=="top"||u=="bottom"))){r=0;j++}for(;r<j;r++){p=h[r];q=h[r-1];if(d||e){m=(r%2)?l:s;g=((r%2)?d:e)||{};a=(g.lineWidth||g["stroke-width"]||0)/2;k=2*a;if(u=="left"){m.push("M",q[0]+1+a,q[1]+0.5-a,"L",q[0]+1+n-a,q[1]+0.5-a,"L",p[0]+1+n-a,p[1]+0.5+a,"L",p[0]+1+a,p[1]+0.5+a,"Z")}else{if(u=="right"){m.push("M",q[0]-a,q[1]+0.5-a,"L",q[0]-n+a,q[1]+0.5-a,"L",p[0]-n+a,p[1]+0.5+a,"L",p[0]-a,p[1]+0.5+a,"Z")}else{if(u=="top"){m.push("M",q[0]+0.5+a,q[1]+1+a,"L",q[0]+0.5+a,q[1]+1+n-a,"L",p[0]+0.5-a,p[1]+1+n-a,"L",p[0]+0.5-a,p[1]+1+a,"Z")}else{m.push("M",q[0]+0.5+a,q[1]-a,"L",q[0]+0.5+a,q[1]-n+a,"L",p[0]+0.5-a,p[1]-n+a,"L",p[0]+0.5-a,p[1]-a,"Z")}}}}else{if(u=="left"){m=m.concat(["M",p[0]+0.5,p[1]+0.5,"l",n,0])}else{if(u=="right"){m=m.concat(["M",p[0]-0.5,p[1]+0.5,"l",-n,0])}else{if(u=="top"){m=m.concat(["M",p[0]+0.5,p[1]+0.5,"l",0,n])}else{m=m.concat(["M",p[0]+0.5,p[1]-0.5,"l",0,-n])}}}}}if(d||e){if(l.length){if(!t.gridOdd&&l.length){t.gridOdd=o.add({type:"path",path:l})}t.gridOdd.setAttributes(Ext.apply({path:l,hidden:false},d||{}),true)}if(s.length){if(!t.gridEven){t.gridEven=o.add({type:"path",path:s})}t.gridEven.setAttributes(Ext.apply({path:s,hidden:false},e||{}),true)}}else{if(m.length){if(!t.gridLines){t.gridLines=t.chart.surface.add({type:"path",path:m,"stroke-width":t.lineWidth||1,stroke:t.gridColor||"#ccc"})}t.gridLines.setAttributes({hidden:false,path:m},true)}else{if(t.gridLines){t.gridLines.hide(true)}}}},getOrCreateLabel:function(c,g){var d=this,b=d.labelGroup,e=b.getAt(c),a=d.chart.surface;if(e){if(g!=e.attr.text){e.setAttributes(Ext.apply({text:g},d.label),true);e._bbox=e.getBBox()}}else{e=a.add(Ext.apply({group:b,type:"text",x:0,y:0,text:g},d.label));a.renderItem(e);e._bbox=e.getBBox()}if(d.label.rotation){e.setAttributes({rotation:{degrees:0}},true);e._ubbox=e.getBBox();e.setAttributes(d.label,true)}else{e._ubbox=e._bbox}return e},rect2pointArray:function(l){var b=this.chart.surface,g=b.getBBox(l,true),m=[g.x,g.y],d=m.slice(),k=[g.x+g.width,g.y],a=k.slice(),j=[g.x+g.width,g.y+g.height],e=j.slice(),i=[g.x,g.y+g.height],c=i.slice(),h=l.matrix;m[0]=h.x.apply(h,d);m[1]=h.y.apply(h,d);k[0]=h.x.apply(h,a);k[1]=h.y.apply(h,a);j[0]=h.x.apply(h,e);j[1]=h.y.apply(h,e);i[0]=h.x.apply(h,c);i[1]=h.y.apply(h,c);return[m,k,j,i]},intersect:function(c,a){var d=this.rect2pointArray(c),b=this.rect2pointArray(a);return !!Ext.draw.Draw.intersect(d,b).length},drawHorizontalLabels:function(){var C=this,e=C.label,w=Math.floor,u=Math.max,v=C.chart.axes,g=C.chart.insetPadding,D=C.position,j=C.inflections,n=j.length,A=C.labels,r=0,h,c,s,o,b,B=C.adjustEnd,a=v.findIndex("position","left")!=-1,m=v.findIndex("position","right")!=-1,z,q,l,p,k,t,d;l=n-1;s=j[0];d=C.getOrCreateLabel(0,C.label.renderer(A[0]));h=Math.floor(Math.abs(Math.sin(e.rotate&&(e.rotate.degrees*Math.PI/180)||0)));for(t=0;t<n;t++){s=j[t];q=C.label.renderer(A[t]);z=C.getOrCreateLabel(t,q);c=z._bbox;r=u(r,c.height+C.dashSize+C.label.padding);p=w(s[0]-(h?c.height:c.width)/2);if(B&&C.chart.maxGutter[0]==0){if(t==0&&!a){p=s[0]}else{if(t==l&&!m){p=Math.min(p,s[0]-c.width+g)}}}if(D=="top"){k=s[1]-(C.dashSize*2)-C.label.padding-(c.height/2)}else{k=s[1]+(C.dashSize*2)+C.label.padding+(c.height/2)}z.setAttributes({hidden:false,x:p,y:k},true);if(t!=0&&(C.intersect(z,o)||C.intersect(z,d))){if(t===l&&b!==0){o.hide(true)}else{z.hide(true);continue}}o=z;b=t}return r},drawVerticalLabels:function(){var C=this,e=C.inflections,D=C.position,j=e.length,o=C.chart,d=o.insetPadding,B=C.labels,u=0,r=Math.max,t=Math.floor,c=Math.ceil,s=C.chart.axes,w=C.chart.maxGutter[1],b,p,k,a,n=s.findIndex("position","top")!=-1,v=s.findIndex("position","bottom")!=-1,A=C.adjustEnd,z,m,h=j-1,l,g,q;for(q=0;q<j;q++){p=e[q];m=C.label.renderer(B[q]);z=C.getOrCreateLabel(q,m);b=z._bbox;u=r(u,b.width+C.dashSize+C.label.padding);g=p[1];if(A&&w<b.height/2){if(q==h&&!n){g=Math.max(g,C.y-C.length+c(b.height/2)-d)}else{if(q==0&&!v){g=C.y+w-t(b.height/2)}}}if(D=="left"){l=p[0]-b.width-C.dashSize-C.label.padding-2}else{l=p[0]+C.dashSize+C.label.padding+2}z.setAttributes(Ext.apply({hidden:false,x:l,y:g},C.label),true);if(q!=0&&C.intersect(z,k)){if(q===h&&a!==0){k.hide(true)}else{z.hide(true);continue}}k=z;a=q}return u},drawLabel:function(){var h=this,a=h.position,b=h.labelGroup,j=h.inflections,g=0,e=0,d,c;if(a=="left"||a=="right"){g=h.drawVerticalLabels()}else{e=h.drawHorizontalLabels()}d=b.getCount();c=j.length;for(;c<d;c++){b.getAt(c).hide(true)}h.bbox={};Ext.apply(h.bbox,h.axisBBox);h.bbox.height=e;h.bbox.width=g;if(Ext.isString(h.title)){h.drawTitle(g,e)}},setTitle:function(a){this.title=a;this.drawLabel()},drawTitle:function(l,m){var h=this,g=h.position,b=h.chart.surface,c=h.displaySprite,k=h.title,e=(g=="left"||g=="right"),j=h.x,i=h.y,a,n,d;if(c){c.setAttributes({text:k},true)}else{a={type:"text",x:0,y:0,text:k};c=h.displaySprite=b.add(Ext.apply(a,h.axisTitleStyle,h.labelTitle));b.renderItem(c)}n=c.getBBox();d=h.dashSize+h.label.padding;if(e){i-=((h.length/2)-(n.height/2));if(g=="left"){j-=(l+d+(n.width/2))}else{j+=(l+d+n.width-(n.width/2))}h.bbox.width+=n.width+10}else{j+=(h.length/2)-(n.width*0.5);if(g=="top"){i-=(m+d+(n.height*0.3))}else{i+=(m+d+(n.height*0.8))}h.bbox.height+=n.height+10}c.setAttributes({translate:{x:j,y:i}},true)}});Ext.define("Ext.chart.axis.Category",{extend:"Ext.chart.axis.Axis",alternateClassName:"Ext.chart.CategoryAxis",alias:"axis.category",categoryNames:null,calculateCategoryCount:false,setLabels:function(){var c=this.chart.getChartStore(),j=c.data.items,k,g,b,a=this.fields,h=a.length,e;this.labels=[];for(k=0,g=j.length;k<g;k++){b=j[k];for(e=0;e<h;e++){this.labels.push(b.get(a[e]))}}},applyData:function(){this.callParent();this.setLabels();var a=this.chart.getChartStore().getCount();return{from:0,to:a-1,power:1,step:1,steps:a-1}}});Ext.define("Ext.chart.axis.Gauge",{extend:"Ext.chart.axis.Abstract",position:"gauge",alias:"axis.gauge",drawAxis:function(q){var j=this.chart,a=j.surface,p=j.chartBBox,d=p.x+(p.width/2),b=p.y+p.height,c=this.margin||10,m=Math.min(p.width,2*p.height)/2+c,h=[],n,l=this.steps,e,g=Math.PI,o=Math.cos,k=Math.sin;if(this.sprites&&!j.resizing){this.drawLabel();return}if(this.margin>=0){if(!this.sprites){for(e=0;e<=l;e++){n=a.add({type:"path",path:["M",d+(m-c)*o(e/l*g-g),b+(m-c)*k(e/l*g-g),"L",d+m*o(e/l*g-g),b+m*k(e/l*g-g),"Z"],stroke:"#ccc"});n.setAttributes({hidden:false},true);h.push(n)}}else{h=this.sprites;for(e=0;e<=l;e++){h[e].setAttributes({path:["M",d+(m-c)*o(e/l*g-g),b+(m-c)*k(e/l*g-g),"L",d+m*o(e/l*g-g),b+m*k(e/l*g-g),"Z"],stroke:"#ccc"},true)}}}this.sprites=h;this.drawLabel();if(this.title){this.drawTitle()}},drawTitle:function(){var e=this,d=e.chart,a=d.surface,g=d.chartBBox,c=e.titleSprite,b;if(!c){e.titleSprite=c=a.add({type:"text",zIndex:2})}c.setAttributes(Ext.apply({text:e.title},e.label||{}),true);b=c.getBBox();c.setAttributes({x:g.x+(g.width/2)-(b.width/2),y:g.y+g.height-(b.height/2)-4},true)},setTitle:function(a){this.title=a;this.drawTitle()},drawLabel:function(){var l=this.chart,p=l.surface,b=l.chartBBox,j=b.x+(b.width/2),h=b.y+b.height,m=this.margin||10,d=Math.min(b.width,2*b.height)/2+2*m,u=Math.round,n=[],g,s=this.maximum||0,k=this.minimum||0,r=this.steps,q=0,v,t=Math.PI,c=Math.cos,a=Math.sin,e=this.label,o=e.renderer||function(i){return i};if(!this.labelArray){for(q=0;q<=r;q++){v=(q===0||q===r)?7:0;g=p.add({type:"text",text:o(u(k+q/r*(s-k))),x:j+d*c(q/r*t-t),y:h+d*a(q/r*t-t)-v,"text-anchor":"middle","stroke-width":0.2,zIndex:10,stroke:"#333"});g.setAttributes({hidden:false},true);n.push(g)}}else{n=this.labelArray;for(q=0;q<=r;q++){v=(q===0||q===r)?7:0;n[q].setAttributes({text:o(u(k+q/r*(s-k))),x:j+d*c(q/r*t-t),y:h+d*a(q/r*t-t)-v},true)}}this.labelArray=n}});Ext.define("Ext.chart.axis.Numeric",{extend:"Ext.chart.axis.Axis",alternateClassName:"Ext.chart.NumericAxis",type:"numeric",alias:"axis.numeric",uses:["Ext.data.Store"],constructor:function(c){var d=this,a=!!(c.label&&c.label.renderer),b;d.callParent([c]);b=d.label;if(c.constrain==null){d.constrain=(c.minimum!=null&&c.maximum!=null)}if(!a){b.renderer=function(e){return d.roundToDecimal(e,d.decimals)}}},roundToDecimal:function(a,c){var b=Math.pow(10,c||0);return Math.round(a*b)/b},minimum:NaN,maximum:NaN,constrain:true,decimals:2,scale:"linear",doConstrain:function(){var t=this,b=t.chart.store,h=b.data.items,s,u,a,e=t.chart.series.items,j=t.fields,c=j.length,g=t.calcEnds(),m=g.from,p=g.to,q,n,r=false,k,v=[],o;for(q=0,n=e.length;q<n;q++){if(e[q].type==="bar"&&e[q].stacked){return}}for(s=0,u=h.length;s<u;s++){o=true;a=h[s];for(q=0;q<c;q++){k=a.get(j[q]);if(+k<+m){o=false;break}if(+k>+p){o=false;break}}if(o){v.push(a)}}t.chart.substore=Ext.create("Ext.data.Store",{model:b.model});t.chart.substore.loadData(v)},position:"left",adjustMaximumByMajorUnit:false,adjustMinimumByMajorUnit:false,processView:function(){var a=this,b=a.constrain;if(b){a.doConstrain()}},applyData:function(){this.callParent();return this.calcEnds()}});Ext.define("Ext.chart.axis.Radial",{extend:"Ext.chart.axis.Abstract",position:"radial",alias:"axis.radial",drawAxis:function(u){var m=this.chart,a=m.surface,t=m.chartBBox,q=m.store,b=q.getCount(),e=t.x+(t.width/2),c=t.y+(t.height/2),p=Math.min(t.width,t.height)/2,k=[],r,o=this.steps,g,d,h=Math.PI*2,s=Math.cos,n=Math.sin;if(this.sprites&&!m.resizing){this.drawLabel();return}if(!this.sprites){for(g=1;g<=o;g++){r=a.add({type:"circle",x:e,y:c,radius:Math.max(p*g/o,0),stroke:"#ccc"});r.setAttributes({hidden:false},true);k.push(r)}for(g=0;g<b;g++){r=a.add({type:"path",path:["M",e,c,"L",e+p*s(g/b*h),c+p*n(g/b*h),"Z"],stroke:"#ccc"});r.setAttributes({hidden:false},true);k.push(r)}}else{k=this.sprites;for(g=0;g<o;g++){k[g].setAttributes({x:e,y:c,radius:Math.max(p*(g+1)/o,0),stroke:"#ccc"},true)}for(d=0;d<b;d++){k[g+d].setAttributes({path:["M",e,c,"L",e+p*s(d/b*h),c+p*n(d/b*h),"Z"],stroke:"#ccc"},true)}}this.sprites=k;this.drawLabel()},drawLabel:function(){var w=this.chart,c=w.series.items,r,B=w.surface,b=w.chartBBox,l=w.store,J=l.data.items,p,k,o=b.x+(b.width/2),n=b.y+(b.height/2),h=Math.min(b.width,b.height)/2,F=Math.max,I=Math.round,x=[],m,z=[],d,A=[],g,v=!this.maximum,H=this.maximum||0,G=this.steps,E=0,D,t,s,y=Math.PI*2,e=Math.cos,a=Math.sin,C=this.label.display,q=C!=="none",u=10;if(!q){return}for(E=0,p=c.length;E<p;E++){r=c[E];z.push(r.yField);g=r.xField}for(D=0,p=J.length;D<p;D++){k=J[D];if(v){for(E=0,d=z.length;E<d;E++){H=F(+k.get(z[E]),H)}}A.push(k.get(g))}if(!this.labelArray){if(C!="categories"){for(E=1;E<=G;E++){m=B.add({type:"text",text:I(E/G*H),x:o,y:n-h*E/G,"text-anchor":"middle","stroke-width":0.1,stroke:"#333"});m.setAttributes({hidden:false},true);x.push(m)}}if(C!="scale"){for(D=0,G=A.length;D<G;D++){t=e(D/G*y)*(h+u);s=a(D/G*y)*(h+u);m=B.add({type:"text",text:A[D],x:o+t,y:n+s,"text-anchor":t*t<=0.001?"middle":(t<0?"end":"start")});m.setAttributes({hidden:false},true);x.push(m)}}}else{x=this.labelArray;if(C!="categories"){for(E=0;E<G;E++){x[E].setAttributes({text:I((E+1)/G*H),x:o,y:n-h*(E+1)/G,"text-anchor":"middle","stroke-width":0.1,stroke:"#333"},true)}}if(C!="scale"){for(D=0,G=A.length;D<G;D++){t=e(D/G*y)*(h+u);s=a(D/G*y)*(h+u);if(x[E+D]){x[E+D].setAttributes({type:"text",text:A[D],x:o+t,y:n+s,"text-anchor":t*t<=0.001?"middle":(t<0?"end":"start")},true)}}}}this.labelArray=x}});Ext.define("Ext.chart.axis.Time",{extend:"Ext.chart.axis.Numeric",alternateClassName:"Ext.chart.TimeAxis",alias:"axis.time",uses:["Ext.data.Store"],dateFormat:false,fromDate:false,toDate:false,step:[Ext.Date.DAY,1],constrain:false,constructor:function(b){var c=this,a,d,e;c.callParent([b]);a=c.label||{};e=this.dateFormat;if(e){if(a.renderer){d=a.renderer;a.renderer=function(g){g=d(g);return Ext.Date.format(new Date(d(g)),e)}}else{a.renderer=function(g){return Ext.Date.format(new Date(g>>0),e)}}}},processView:function(){var a=this;if(a.fromDate){a.minimum=+a.fromDate}if(a.toDate){a.maximum=+a.toDate}if(a.constrain){a.doConstrain()}},calcEnds:function(){var c=this,a,b=c.step;if(b){a=c.getRange();a=Ext.draw.Draw.snapEndsByDateAndStep(new Date(a.min),new Date(a.max),Ext.isNumber(b)?[Date.MILLI,b]:b);if(c.minimum){a.from=c.minimum}if(c.maximum){a.to=c.maximum}a.step=(a.to-a.from)/a.steps;return a}else{return c.callParent(arguments)}}});Ext.define("Ext.chart.series.Series",{mixins:{observable:"Ext.util.Observable",labels:"Ext.chart.Label",highlights:"Ext.chart.Highlight",tips:"Ext.chart.Tip",callouts:"Ext.chart.Callout"},type:null,title:null,showInLegend:true,renderer:function(e,a,c,d,b){return c},shadowAttributes:null,animating:false,constructor:function(a){var b=this;if(a){Ext.apply(b,a)}b.shadowGroups=[];b.mixins.labels.constructor.call(b,a);b.mixins.highlights.constructor.call(b,a);b.mixins.tips.constructor.call(b,a);b.mixins.callouts.constructor.call(b,a);b.addEvents({scope:b,itemmouseover:true,itemmouseout:true,itemmousedown:true,itemmouseup:true,mouseleave:true,afterdraw:true,titlechange:true});b.mixins.observable.constructor.call(b,a);b.on({scope:b,itemmouseover:b.onItemMouseOver,itemmouseout:b.onItemMouseOut,mouseleave:b.onMouseLeave});if(b.style){Ext.apply(b.seriesStyle,b.style)}},eachRecord:function(c,b){var a=this.chart;(a.substore||a.store).each(c,b)},getRecordCount:function(){var b=this.chart,a=b.substore||b.store;return a?a.getCount():0},isExcluded:function(a){var b=this.__excludes;return !!(b&&b[a])},setBBox:function(a){var e=this,c=e.chart,b=c.chartBBox,g=a?0:c.maxGutter[0],d=a?0:c.maxGutter[1],h,i;h={x:b.x,y:b.y,width:b.width,height:b.height};e.clipBox=h;i={x:(h.x+g)-(c.zoom.x*c.zoom.width),y:(h.y+d)-(c.zoom.y*c.zoom.height),width:(h.width-(g*2))*c.zoom.width,height:(h.height-(d*2))*c.zoom.height};e.bbox=i},onAnimate:function(b,a){var c=this;b.stopAnimation();if(c.animating){return b.animate(Ext.applyIf(a,c.chart.animate))}else{c.animating=true;return b.animate(Ext.apply(Ext.applyIf(a,c.chart.animate),{listeners:{afteranimate:function(){c.animating=false;c.fireEvent("afterrender")}}}))}},getGutters:function(){return[0,0]},onItemMouseOver:function(b){var a=this;if(b.series===a){if(a.highlight){a.highlightItem(b)}if(a.tooltip){a.showTip(b)}}},onItemMouseOut:function(b){var a=this;if(b.series===a){a.unHighlightItem();if(a.tooltip){a.hideTip(b)}}},onMouseLeave:function(){var a=this;a.unHighlightItem();if(a.tooltip){a.hideTip()}},getItemForPoint:function(a,j){if(!this.items||!this.items.length||this.seriesIsHidden){return null}var g=this,b=g.items,h=g.bbox,e,c,d;if(!Ext.draw.Draw.withinBox(a,j,h)){return null}for(c=0,d=b.length;c<d;c++){if(b[c]&&this.isItemInPoint(a,j,b[c],c)){return b[c]}}return null},isItemInPoint:function(a,d,c,b){return false},hideAll:function(){var h=this,g=h.items,m,e,d,c,a,k,b;h.seriesIsHidden=true;h._prevShowMarkers=h.showMarkers;h.showMarkers=false;h.hideLabels(0);for(d=0,e=g.length;d<e;d++){m=g[d];k=m.sprite;if(k){k.setAttributes({hidden:true},true)}if(k&&k.shadows){b=k.shadows;for(c=0,a=b.length;c<a;++c){b[c].setAttributes({hidden:true},true)}}}},showAll:function(){var a=this,b=a.chart.animate;a.chart.animate=false;a.seriesIsHidden=false;a.showMarkers=a._prevShowMarkers;a.drawSeries();a.chart.animate=b},hide:function(){if(this.items){var h=this,b=h.items,d,c,a,g,e;if(b&&b.length){for(d=0,g=b.length;d<g;++d){if(b[d].sprite){b[d].sprite.hide(true);e=b[d].shadows||b[d].sprite.shadows;if(e){for(c=0,a=e.length;c<a;++c){e[c].hide(true)}}}}h.hideLabels()}}},getLegendColor:function(a){var b=this,d,c;if(b.seriesStyle){d=b.seriesStyle.fill;c=b.seriesStyle.stroke;if(d&&d!="none"){return d}if(c){return c}}return(b.colorArrayStyle)?b.colorArrayStyle[b.seriesIdx%b.colorArrayStyle.length]:"#000"},visibleInLegend:function(a){var b=this.__excludes;if(b){return !b[a]}return !this.seriesIsHidden},setTitle:function(a,d){var c=this,b=c.title;if(Ext.isString(a)){d=a;a=0}if(Ext.isArray(b)){b[a]=d}else{c.title=d}c.fireEvent("titlechange",d,a)}});Ext.define("Ext.chart.series.Cartesian",{extend:"Ext.chart.series.Series",alternateClassName:["Ext.chart.CartesianSeries","Ext.chart.CartesianChart"],xField:null,yField:null,axis:"left",getLegendLabels:function(){var j=this,e=[],g,d,h,k=j.combinations,l,a,c,b;g=[].concat(j.yField);for(d=0,h=g.length;d<h;d++){l=j.title;e.push((Ext.isArray(l)?l[d]:l)||g[d])}if(k){k=Ext.Array.from(k);for(d=0,h=k.length;d<h;d++){a=k[d];c=e[a[0]];b=e[a[1]];e[a[1]]=c+" & "+b;e.splice(a[0],1)}}return e},eachYValue:function(b,e,d){var j=this,h=j.getYValueAccessors(),c,g,a;for(c=0,g=h.length;c<g;c++){a=h[c];e.call(d,a(b),c)}},getYValueCount:function(){return this.getYValueAccessors().length},combine:function(g,e){var d=this,c=d.getYValueAccessors(),b=c[g],a=c[e];c[e]=function(h){return b(h)+a(h)};c.splice(g,1);d.callParent([g,e])},clearCombinations:function(){delete this.yValueAccessors;this.callParent()},getYValueAccessors:function(){var e=this,a=e.yValueAccessors,g,c,b,d;if(!a){a=e.yValueAccessors=[];g=[].concat(e.yField);for(b=0,d=g.length;b<d;b++){c=g[b];a.push(function(h){return h.get(c)})}}return a},getMinMaxXValues:function(){var k=this,j=k.chart,m=j.getChartStore(),d=m.data.items,e,h,g,c,l,a=k.xField,b;if(k.getRecordCount()>0){c=Infinity;l=-c;for(e=0,h=d.length;e<h;e++){g=d[e];b=g.get(a);if(b>l){l=b}if(b<c){c=b}}}else{c=l=0}return[c,l]},getMinMaxYValues:function(){var k=this,j=k.chart,o=j.getChartStore(),c=o.data.items,d,h,e,g=k.stacked,b,l,n,m;function a(r,q){if(!k.isExcluded(q)){if(r<0){m+=r}else{n+=r}}}function p(r,q){if(!k.isExcluded(q)){if(r>l){l=r}if(r<b){b=r}}}if(k.getRecordCount()>0){b=Infinity;l=-b;for(d=0,h=c.length;d<h;d++){e=c[d];if(g){n=0;m=0;k.eachYValue(e,a);if(n>l){l=n}if(m<b){b=m}}else{k.eachYValue(e,p)}}}else{b=l=0}return[b,l]},getAxesForXAndYFields:function(){var m=this,l=m.chart.axes,d=[].concat(m.axis),c={},e=[].concat(m.yField),n={},o=[].concat(m.xField),j,b,a,h,k,g;g=m.type==="bar"&&m.column===false;if(g){j=e;e=o;o=j}if(Ext.Array.indexOf(d,"top")>-1){b="top"}else{if(Ext.Array.indexOf(d,"bottom")>-1){b="bottom"}else{if(l.get("top")&&l.get("bottom")){for(h=0,k=o.length;h<k;h++){n[o[h]]=true}j=[].concat(l.get("bottom").fields);for(h=0,k=j.length;h<k;h++){if(n[j[h]]){b="bottom";break}}j=[].concat(l.get("top").fields);for(h=0,k=j.length;h<k;h++){if(n[j[h]]){b="top";break}}}else{if(l.get("top")){b="top"}else{if(l.get("bottom")){b="bottom"}}}}}if(Ext.Array.indexOf(d,"left")>-1){a="left"}else{if(Ext.Array.indexOf(d,"right")>-1){a="right"}else{if(l.get("left")&&l.get("right")){for(h=0,k=e.length;h<k;h++){c[e[h]]=true}j=[].concat(l.get("right").fields);for(h=0,k=j.length;h<k;h++){if(c[j[h]]){break}}j=[].concat(l.get("left").fields);for(h=0,k=j.length;h<k;h++){if(c[j[h]]){a="left";break}}}else{if(l.get("left")){a="left"}else{if(l.get("right")){a="right"}}}}}return g?{xAxis:a,yAxis:b}:{xAxis:b,yAxis:a}}});Ext.define("Ext.chart.series.Area",{extend:"Ext.chart.series.Cartesian",alias:"series.area",requires:["Ext.chart.axis.Axis","Ext.draw.Color","Ext.fx.Anim"],type:"area",stacked:true,style:{},constructor:function(c){this.callParent(arguments);var e=this,a=e.chart.surface,d,b;c.highlightCfg=Ext.Object.merge({},{lineWidth:3,stroke:"#55c",opacity:0.8,color:"#f00"},c.highlightCfg);Ext.apply(e,c,{__excludes:[]});if(e.highlight){e.highlightSprite=a.add({type:"path",path:["M",0,0],zIndex:1000,opacity:0.3,lineWidth:5,hidden:true,stroke:"#444"})}e.group=a.getGroup(e.seriesId)},shrink:function(b,n,o){var k=b.length,m=Math.floor(k/o),h,g,d=0,l=this.areas.length,a=[],e=[],c=[];for(g=0;g<l;++g){a[g]=0}for(h=0;h<k;++h){d+=+b[h];for(g=0;g<l;++g){a[g]+=+n[h][g]}if(h%m==0){e.push(d/m);for(g=0;g<l;++g){a[g]/=m}c.push(a);d=0;for(g=0,a=[];g<l;++g){a[g]=0}}}return{x:e,y:c}},getBounds:function(){var j=this,M=j.chart,a=M.getChartStore(),L=a.data.items,I,F,x,v=[].concat(j.yField),A=v.length,z=[],D=[],g=Infinity,C=g,B=g,n=-g,m=-g,s=Math,w=s.min,e=s.max,p=j.getAxesForXAndYFields(),J=p.xAxis,u=p.yAxis,G,r,k,h,E,q,N,K,b,t,H,c,d,o,y;j.setBBox();k=j.bbox;if(o=M.axes.get(J)){if(o.type==="Time"){r=true}G=o.applyData();C=G.from;n=G.to}if(o=M.axes.get(u)){G=o.applyData();B=G.from;m=G.to}if(j.xField&&!Ext.isNumber(C)){o=j.getMinMaxXValues();r=true;C=o[0];n=o[1]}if(j.yField&&!Ext.isNumber(B)){o=j.getMinMaxYValues();B=o[0];m=o[1]}if(!Ext.isNumber(B)){B=0}if(!Ext.isNumber(m)){m=0}for(I=0,F=L.length;I<F;I++){x=L[I];q=x.get(j.xField);N=[];if(typeof q!="number"){if(r){q=+q}else{q=I}}z.push(q);b=0;for(K=0;K<A;K++){if(j.__excludes[K]){continue}d=x.get(v[K]);if(typeof d=="number"){N.push(d)}}D.push(N)}h=k.width/((n-C)||1);E=k.height/((m-B)||1);t=z.length;if((t>k.width)&&j.areas){H=j.shrink(z,D,k.width);z=H.x;D=H.y}return{bbox:k,minX:C,minY:B,xValues:z,yValues:D,xScale:h,yScale:E,areasLen:A}},getPaths:function(){var w=this,m=w.chart,c=m.getChartStore(),e=true,g=w.getBounds(),a=g.bbox,n=w.items=[],v=[],b,d=0,p=[],s,j,k,h,q,t,l,z,r,u,o;j=g.xValues.length;for(s=0;s<j;s++){q=g.xValues[s];t=g.yValues[s];k=a.x+(q-g.minX)*g.xScale;l=0;d=0;for(z=0;z<g.areasLen;z++){if(w.__excludes[z]){continue}if(!v[z]){v[z]=[]}u=t[d];l+=u;h=a.y+a.height-(l-g.minY)*g.yScale;if(!p[z]){p[z]=["M",k,h];v[z].push(["L",k,h])}else{p[z].push("L",k,h);v[z].push(["L",k,h])}if(!n[z]){n[z]={pointsUp:[],pointsDown:[],series:w}}n[z].pointsUp.push([k,h]);d++}}for(z=0;z<g.areasLen;z++){if(w.__excludes[z]){continue}o=p[z];if(z==0||e){e=false;o.push("L",k,a.y+a.height,"L",a.x,a.y+a.height,"Z")}else{b=v[r];b.reverse();o.push("L",k,b[0][2]);for(s=0;s<j;s++){o.push(b[s][0],b[s][1],b[s][2]);n[z].pointsDown[j-s-1]=[b[s][1],b[s][2]]}o.push("L",a.x,o[2],"Z")}r=z}return{paths:p,areasLen:g.areasLen}},drawSeries:function(){var h=this,g=h.chart,i=g.getChartStore(),c=g.surface,b=g.animate,k=h.group,a=Ext.apply(h.seriesStyle,h.style),l=h.colorArrayStyle,o=l&&l.length||0,d,e,n,m,j;h.unHighlightItem();h.cleanHighlights();if(!i||!i.getCount()||h.seriesIsHidden){h.hide();h.items=[];return}n=h.getPaths();if(!h.areas){h.areas=[]}for(d=0;d<n.areasLen;d++){if(h.__excludes[d]){continue}if(!h.areas[d]){h.items[d].sprite=h.areas[d]=c.add(Ext.apply({},{type:"path",group:k,path:n.paths[d],stroke:a.stroke||l[d%o],fill:l[d%o]},a||{}))}e=h.areas[d];m=n.paths[d];if(b){j=h.renderer(e,false,{path:m,fill:l[d%o],stroke:a.stroke||l[d%o]},d,i);h.animation=h.onAnimate(e,{to:j})}else{j=h.renderer(e,false,{path:m,hidden:false,fill:l[d%o],stroke:a.stroke||l[d%o]},d,i);h.areas[d].setAttributes(j,true)}}h.renderLabels();h.renderCallouts()},onAnimate:function(b,a){b.show();return this.callParent(arguments)},onCreateLabel:function(d,k,c,e){var g=this,h=g.labelsGroup,a=g.label,j=g.bbox,b=Ext.apply(a,g.seriesLabelStyle);return g.chart.surface.add(Ext.apply({type:"text","text-anchor":"middle",group:h,x:k.point[0],y:j.y+j.height/2},b||{}))},onPlaceLabel:function(g,k,s,p,o,c,e){var u=this,l=u.chart,r=l.resizing,t=u.label,q=t.renderer,b=t.field,a=u.bbox,j=s.point[0],h=s.point[1],d,n,m;g.setAttributes({text:q(k.get(b[e])),hidden:true},true);d=g.getBBox();n=d.width/2;m=d.height/2;j=j-n<a.x?a.x+n:j;j=(j+n>a.x+a.width)?(j-(j+n-a.x-a.width)):j;h=h-m<a.y?a.y+m:h;h=(h+m>a.y+a.height)?(h-(h+m-a.y-a.height)):h;if(u.chart.animate&&!u.chart.resizing){g.show(true);u.onAnimate(g,{to:{x:j,y:h}})}else{g.setAttributes({x:j,y:h},true);if(r){u.animation.on("afteranimate",function(){g.show(true)})}else{g.show(true)}}},onPlaceCallout:function(m,r,J,G,F,d,k){var M=this,s=M.chart,D=s.surface,H=s.resizing,L=M.callouts,t=M.items,v=(G==0)?false:t[G-1].point,z=(G==t.length-1)?false:t[G+1].point,c=J.point,A,g,N,K,o,q,b=m.label.getBBox(),I=30,C=10,B=3,h,e,j,w,u,E=M.clipRect,n,l;if(!v){v=c}if(!z){z=c}K=(z[1]-v[1])/(z[0]-v[0]);o=(c[1]-v[1])/(c[0]-v[0]);q=(z[1]-c[1])/(z[0]-c[0]);g=Math.sqrt(1+K*K);A=[1/g,K/g];N=[-A[1],A[0]];if(o>0&&q<0&&N[1]<0||o<0&&q>0&&N[1]>0){N[0]*=-1;N[1]*=-1}else{if(Math.abs(o)<Math.abs(q)&&N[0]<0||Math.abs(o)>Math.abs(q)&&N[0]>0){N[0]*=-1;N[1]*=-1}}n=c[0]+N[0]*I;l=c[1]+N[1]*I;h=n+(N[0]>0?0:-(b.width+2*B));e=l-b.height/2-B;j=b.width+2*B;w=b.height+2*B;if(h<E[0]||(h+j)>(E[0]+E[2])){N[0]*=-1}if(e<E[1]||(e+w)>(E[1]+E[3])){N[1]*=-1}n=c[0]+N[0]*I;l=c[1]+N[1]*I;h=n+(N[0]>0?0:-(b.width+2*B));e=l-b.height/2-B;j=b.width+2*B;w=b.height+2*B;m.lines.setAttributes({path:["M",c[0],c[1],"L",n,l,"Z"]},true);m.box.setAttributes({x:h,y:e,width:j,height:w},true);m.label.setAttributes({x:n+(N[0]>0?B:-(b.width+B)),y:l},true);for(u in m){m[u].show(true)}},isItemInPoint:function(j,h,m,c){var g=this,b=m.pointsUp,d=m.pointsDown,q=Math.abs,o=false,l=false,e=Infinity,a,n,k;for(a=0,n=b.length;a<n;a++){k=[b[a][0],b[a][1]];o=false;l=a==n-1;if(e>q(j-k[0])){e=q(j-k[0]);o=true;if(l){++a}}if(!o||(o&&l)){k=b[a-1];if(h>=k[1]&&(!d.length||h<=(d[a-1][1]))){m.storeIndex=a-1;m.storeField=g.yField[c];m.storeItem=g.chart.store.getAt(a-1);m._points=d.length?[k,d[a-1]]:[k];return true}else{break}}}return false},highlightSeries:function(){var a,c,b;if(this._index!==undefined){a=this.areas[this._index];if(a.__highlightAnim){a.__highlightAnim.paused=true}a.__highlighted=true;a.__prevOpacity=a.__prevOpacity||a.attr.opacity||1;a.__prevFill=a.__prevFill||a.attr.fill;a.__prevLineWidth=a.__prevLineWidth||a.attr.lineWidth;b=Ext.draw.Color.fromString(a.__prevFill);c={lineWidth:(a.__prevLineWidth||0)+2};if(b){c.fill=b.getLighter(0.2).toString()}else{c.opacity=Math.max(a.__prevOpacity-0.3,0)}if(this.chart.animate){a.__highlightAnim=new Ext.fx.Anim(Ext.apply({target:a,to:c},this.chart.animate))}else{a.setAttributes(c,true)}}},unHighlightSeries:function(){var a;if(this._index!==undefined){a=this.areas[this._index];if(a.__highlightAnim){a.__highlightAnim.paused=true}if(a.__highlighted){a.__highlighted=false;a.__highlightAnim=new Ext.fx.Anim({target:a,to:{fill:a.__prevFill,opacity:a.__prevOpacity,lineWidth:a.__prevLineWidth}})}}},highlightItem:function(c){var b=this,a,d;if(!c){this.highlightSeries();return}a=c._points;d=a.length==2?["M",a[0][0],a[0][1],"L",a[1][0],a[1][1]]:["M",a[0][0],a[0][1],"L",a[0][0],b.bbox.y+b.bbox.height];b.highlightSprite.setAttributes({path:d,hidden:false},true)},unHighlightItem:function(a){if(!a){this.unHighlightSeries()}if(this.highlightSprite){this.highlightSprite.hide(true)}},hideAll:function(a){var b=this;a=(isNaN(b._index)?a:b._index)||0;b.__excludes[a]=true;b.areas[a].hide(true);b.redraw()},showAll:function(a){var b=this;a=(isNaN(b._index)?a:b._index)||0;b.__excludes[a]=false;b.areas[a].show(true);b.redraw()},redraw:function(){var a=this,b;b=a.chart.legend.rebuild;a.chart.legend.rebuild=false;a.chart.redraw();a.chart.legend.rebuild=b},hide:function(){if(this.areas){var h=this,b=h.areas,d,c,a,g,e;if(b&&b.length){for(d=0,g=b.length;d<g;++d){if(b[d]){b[d].hide(true)}}h.hideLabels()}}},getLegendColor:function(a){var b=this;return b.colorArrayStyle[a%b.colorArrayStyle.length]}});Ext.define("Ext.chart.series.Bar",{extend:"Ext.chart.series.Cartesian",alternateClassName:["Ext.chart.BarSeries","Ext.chart.BarChart","Ext.chart.StackedBarChart"],requires:["Ext.chart.axis.Axis","Ext.fx.Anim"],type:"bar",alias:"series.bar",column:false,style:{},gutter:38.2,groupGutter:38.2,xPadding:0,yPadding:10,constructor:function(c){this.callParent(arguments);var e=this,a=e.chart.surface,g=e.chart.shadow,d,b;c.highlightCfg=Ext.Object.merge({lineWidth:3,stroke:"#55c",opacity:0.8,color:"#f00"},c.highlightCfg);Ext.apply(e,c,{shadowAttributes:[{"stroke-width":6,"stroke-opacity":0.05,stroke:"rgb(200, 200, 200)",translate:{x:1.2,y:1.2}},{"stroke-width":4,"stroke-opacity":0.1,stroke:"rgb(150, 150, 150)",translate:{x:0.9,y:0.9}},{"stroke-width":2,"stroke-opacity":0.15,stroke:"rgb(100, 100, 100)",translate:{x:0.6,y:0.6}}]});e.group=a.getGroup(e.seriesId+"-bars");if(g){for(d=0,b=e.shadowAttributes.length;d<b;d++){e.shadowGroups.push(a.getGroup(e.seriesId+"-shadows"+d))}}},getBarGirth:function(){var d=this,a=d.chart.getChartStore(),b=d.column,c=a.getCount(),e=d.gutter/100;return(d.chart.chartBBox[b?"width":"height"]-d[b?"xPadding":"yPadding"]*2)/(c*(e+1)-e)},getGutters:function(){var b=this,a=b.column,c=Math.ceil(b[a?"xPadding":"yPadding"]+b.getBarGirth()/2);return b.column?[c,0]:[0,c]},getBounds:function(){var o=this,O=o.chart,b=O.getChartStore(),N=b.data.items,M,x,D,v=[].concat(o.yField),p=v.length,l=p,c=o.groupGutter/100,H=o.column,h=o.xPadding,m=o.yPadding,J=o.stacked,t=o.getBarGirth(),y=H?"width":"height",u=Math,B=u.min,k=u.max,n=u.abs,G=o.getAxesForXAndYFields(),A=G.yAxis,L,C,e,q,F,r,s,E,z,a,w,I,K,d,g;o.setBBox(true);q=o.bbox;if(o.__excludes){for(K=0,w=o.__excludes.length;K<w;K++){if(o.__excludes[K]){l--}}}s=O.axes.get(A);if(s){L=s.applyData();F=L.from;r=L.to}if(o.yField&&!Ext.isNumber(F)){E=o.getMinMaxYValues();F=E[0];r=E[1]}if(!Ext.isNumber(F)){F=0}if(!Ext.isNumber(r)){r=0}z=(H?q.height-m*2:q.width-h*2)/(r-F);C=t;e=(t/((J?1:l)*(c+1)-c));if(y in o.style){e=B(e,o.style[y]);C=e*((J?1:l)*(c+1)-c)}a=(H)?q.y+q.height-m:q.x+h;if(J){w=[[],[]];for(M=0,x=N.length;M<x;M++){D=N[M];w[0][M]=w[0][M]||0;w[1][M]=w[1][M]||0;for(K=0;K<p;K++){if(o.__excludes&&o.__excludes[K]){continue}I=D.get(v[K]);w[+(I>0)][M]+=n(I)}}w[+(r>0)].push(n(r));w[+(F>0)].push(n(F));g=k.apply(u,w[0]);d=k.apply(u,w[1]);z=(H?q.height-m*2:q.width-h*2)/(d+g);a=a+g*z*(H?-1:1)}else{if(F/r<0){a=a-F*z*(H?-1:1)}}return{bars:v,bbox:q,shrunkBarWidth:C,barsLen:p,groupBarsLen:l,barWidth:t,groupBarWidth:e,scale:z,zero:a,xPadding:h,yPadding:m,signed:F/r<0,minY:F,maxY:r}},getPaths:function(){var v=this,X=v.chart,b=X.getChartStore(),W=b.data.items,V,E,L,G=v.bounds=v.getBounds(),z=v.items=[],P=v.yField,l=v.gutter/100,c=v.groupGutter/100,T=X.animate,N=v.column,x=v.group,m=X.shadow,R=v.shadowGroups,Q=v.shadowAttributes,q=R.length,y=G.bbox,B=G.barWidth,K=G.shrunkBarWidth,n=v.xPadding,r=v.yPadding,S=v.stacked,w=G.barsLen,O=v.colorArrayStyle,h=O&&O.length||0,C=Math,o=C.max,I=C.min,u=C.abs,U,Y,e,J,D,a,k,t,s,p,g,d,F,A,M,H;for(V=0,E=W.length;V<E;V++){L=W[V];a=G.zero;k=G.zero;J=0;D=0;t=false;for(U=0,g=0;U<w;U++){if(v.__excludes&&v.__excludes[U]){continue}Y=L.get(G.bars[U]);e=Math.round((Y-o(G.minY,0))*G.scale);s={fill:O[(w>1?U:0)%h]};if(N){Ext.apply(s,{height:e,width:o(G.groupBarWidth,0),x:(y.x+n+(B-K)*0.5+V*B*(1+l)+g*G.groupBarWidth*(1+c)*!S),y:a-e})}else{M=(E-1)-V;Ext.apply(s,{height:o(G.groupBarWidth,0),width:e+(a==G.zero),x:a+(a!=G.zero),y:(y.y+r+(B-K)*0.5+M*B*(1+l)+g*G.groupBarWidth*(1+c)*!S+1)})}if(e<0){if(N){s.y=k;s.height=u(e)}else{s.x=k+e;s.width=u(e)}}if(S){if(e<0){k+=e*(N?-1:1)}else{a+=e*(N?-1:1)}J+=u(e);if(e<0){D+=u(e)}}s.x=Math.floor(s.x)+1;H=Math.floor(s.y);if(!Ext.isIE9&&s.y>H){H--}s.y=H;s.width=Math.floor(s.width);s.height=Math.floor(s.height);z.push({series:v,yField:P[U],storeItem:L,value:[L.get(v.xField),Y],attr:s,point:N?[s.x+s.width/2,Y>=0?s.y:s.y+s.height]:[Y>=0?s.x+s.width:s.x,s.y+s.height/2]});if(T&&X.resizing){p=N?{x:s.x,y:G.zero,width:s.width,height:0}:{x:G.zero,y:s.y,width:0,height:s.height};if(m&&(S&&!t||!S)){t=true;for(d=0;d<q;d++){F=R[d].getAt(S?V:(V*w+U));if(F){F.setAttributes(p,true)}}}A=x.getAt(V*w+U);if(A){A.setAttributes(p,true)}}g++}if(S&&z.length){z[V*g].totalDim=J;z[V*g].totalNegDim=D}}if(S&&g==0){for(V=0,E=W.length;V<E;V++){for(d=0;d<q;d++){F=R[d].getAt(V);if(F){F.hide(true)}}}}},renderShadows:function(u,v,y,l){var z=this,p=z.chart,s=p.surface,g=p.animate,x=z.stacked,a=z.shadowGroups,w=z.shadowAttributes,o=a.length,h=p.getChartStore(),d=z.column,r=z.items,b=[],m=l.zero,e,q,k,A,n,t,c;if((x&&(u%l.groupBarsLen===0))||!x){t=u/l.groupBarsLen;for(e=0;e<o;e++){q=Ext.apply({},w[e]);k=a[e].getAt(x?t:u);Ext.copyTo(q,v,"x,y,width,height");if(!k){k=s.add(Ext.apply({type:"rect",group:a[e]},Ext.apply({},y,q)))}if(x){A=r[u].totalDim;n=r[u].totalNegDim;if(d){q.y=m+n-A-1;q.height=A}else{q.x=m-n;q.width=A}}c=z.renderer(k,h.getAt(t),q,u,h);c.hidden=!!v.hidden;if(g){z.onAnimate(k,{to:c})}else{k.setAttributes(c,true)}b.push(k)}}return b},drawSeries:function(){var C=this,r=C.chart,m=r.getChartStore(),v=r.surface,k=r.animate,A=C.stacked,d=C.column,b=r.shadow,a=C.shadowGroups,q=a.length,o=C.group,g=C.seriesStyle,s,p,y,x,B,t,c,e,h,n,l,z,u,w;if(!m||!m.getCount()||C.seriesIsHidden){C.hide();C.items=[];return}l=Ext.apply({},this.style,g);delete l.fill;delete l.x;delete l.y;delete l.width;delete l.height;C.unHighlightItem();C.cleanHighlights();C.getPaths();n=C.bounds;s=C.items;B=d?{y:n.zero,height:0}:{x:n.zero,width:0};p=s.length;for(y=0;y<p;y++){t=o.getAt(y);z=s[y].attr;if(b){s[y].shadows=C.renderShadows(y,z,B,n)}if(!t){u=Ext.apply({},B,z);u=Ext.apply(u,l||{});t=v.add(Ext.apply({},{type:"rect",group:o},u))}if(k){c=C.renderer(t,m.getAt(y),z,y,m);t._to=c;w=C.onAnimate(t,{to:Ext.apply(c,l)});if(b&&A&&(y%n.barsLen===0)){x=y/n.barsLen;for(e=0;e<q;e++){w.on("afteranimate",function(){this.show(true)},a[e].getAt(x))}}}else{c=C.renderer(t,m.getAt(y),Ext.apply(z,{hidden:false}),y,m);t.setAttributes(Ext.apply(c,l),true)}s[y].sprite=t}p=o.getCount();for(x=y;x<p;x++){o.getAt(x).hide(true)}if(C.stacked){y=m.getCount()}if(b){for(e=0;e<q;e++){h=a[e];p=h.getCount();for(x=y;x<p;x++){h.getAt(x).hide(true)}}}C.renderLabels()},onCreateLabel:function(e,l,d,g){var h=this,a=h.chart.surface,k=h.labelsGroup,b=h.label,c=Ext.apply({},b,h.seriesLabelStyle||{}),j;return a.add(Ext.apply({type:"text",group:k},c||{}))},onPlaceLabel:function(G,N,s,J,p,H,I,v){var m=this,n=m.bounds,d=n.groupBarWidth,F=m.column,L=m.chart,u=L.chartBBox,A=L.resizing,o=s.value[0],O=s.value[1],l=s.attr,z=m.label,K=z.orientation=="vertical",h=[].concat(z.field),t=z.renderer,r=t(N.get(h[v])),g=m.getLabelSize(r),a=g.width,c=g.height,b=n.zero,k="outside",q="insideStart",M="insideEnd",E=10,C=6,e=n.signed,D,B,w;G.setAttributes({text:r});G.isOutside=false;if(F){if(p==k){if(c+C+l.height>(O>=0?b-u.y:u.y+u.height-b)){p=M}}else{if(c+C>l.height){p=k;G.isOutside=true}}D=l.x+d/2;B=p==q?(b+((c/2+3)*(O>=0?-1:1))):(O>=0?(l.y+((c/2+3)*(p==k?-1:1))):(l.y+l.height+((c/2+3)*(p===k?1:-1))))}else{if(p==k){if(a+E+l.width>(O>=0?u.x+u.width-b:b-u.x)){p=M}}else{if(a+E>l.width){p=k;G.isOutside=true}}D=p==q?(b+((a/2+5)*(O>=0?1:-1))):(O>=0?(l.x+l.width+((a/2+5)*(p===k?1:-1))):(l.x+((a/2+5)*(p===k?-1:1))));B=l.y+d/2}w={x:D,y:B};if(K){w.rotate={x:D,y:B,degrees:270}}if(H&&A){if(F){D=l.x+l.width/2;B=b}else{D=b;B=l.y+l.height/2}G.setAttributes({x:D,y:B},true);if(K){G.setAttributes({rotate:{x:D,y:B,degrees:270}},true)}}if(H){m.onAnimate(G,{to:w})}else{G.setAttributes(Ext.apply(w,{hidden:false}),true)}},getLabelSize:function(g){var k=this.testerLabel,a=this.label,d=Ext.apply({},a,this.seriesLabelStyle||{}),b=a.orientation==="vertical",j,i,e,c;if(!k){k=this.testerLabel=this.chart.surface.add(Ext.apply({type:"text",opacity:0},d))}k.setAttributes({text:g},true);j=k.getBBox();i=j.width;e=j.height;return{width:b?e:i,height:b?i:e}},onAnimate:function(b,a){b.show();return this.callParent(arguments)},isItemInPoint:function(a,d,b){var c=b.sprite.getBBox();return c.x<=a&&c.y<=d&&(c.x+c.width)>=a&&(c.y+c.height)>=d},hideAll:function(a){var e=this.chart.axes,c=e.items,d=c.length,b=0;a=(isNaN(this._index)?a:this._index)||0;if(!this.__excludes){this.__excludes=[]}this.__excludes[a]=true;this.drawSeries();for(b;b<d;b++){c[b].drawAxis()}},showAll:function(a){var e=this.chart.axes,c=e.items,d=c.length,b=0;a=(isNaN(this._index)?a:this._index)||0;if(!this.__excludes){this.__excludes=[]}this.__excludes[a]=false;this.drawSeries();for(b;b<d;b++){c[b].drawAxis()}},getLegendColor:function(a){var c=this,b=c.colorArrayStyle.length;if(c.style&&c.style.fill){return c.style.fill}else{return c.colorArrayStyle[a%b]}},highlightItem:function(a){this.callParent(arguments);this.renderLabels()},unHighlightItem:function(){this.callParent(arguments);this.renderLabels()},cleanHighlights:function(){this.callParent(arguments);this.renderLabels()}});Ext.define("Ext.chart.series.Column",{alternateClassName:["Ext.chart.ColumnSeries","Ext.chart.ColumnChart","Ext.chart.StackedColumnChart"],extend:"Ext.chart.series.Bar",type:"column",alias:"series.column",column:true,xPadding:10,yPadding:0});Ext.define("Ext.chart.series.Gauge",{extend:"Ext.chart.series.Series",type:"gauge",alias:"series.gauge",rad:Math.PI/180,highlightDuration:150,angleField:false,needle:false,donut:false,showInLegend:false,style:{},constructor:function(b){this.callParent(arguments);var h=this,g=h.chart,a=g.surface,j=g.store,k=g.shadow,d,c,e;Ext.apply(h,b,{shadowAttributes:[{"stroke-width":6,"stroke-opacity":1,stroke:"rgb(200, 200, 200)",translate:{x:1.2,y:2}},{"stroke-width":4,"stroke-opacity":1,stroke:"rgb(150, 150, 150)",translate:{x:0.9,y:1.5}},{"stroke-width":2,"stroke-opacity":1,stroke:"rgb(100, 100, 100)",translate:{x:0.6,y:1}}]});h.group=a.getGroup(h.seriesId);if(k){for(d=0,c=h.shadowAttributes.length;d<c;d++){h.shadowGroups.push(a.getGroup(h.seriesId+"-shadows"+d))}}a.customAttributes.segment=function(i){return h.getSegment(i)}},initialize:function(){var d=this,a=d.chart.getChartStore(),e=a.data.items,b,c,g;d.yField=[];if(d.label.field){for(b=0,c=e.length;b<c;b++){g=e[b];d.yField.push(g.get(d.label.field))}}},getSegment:function(b){var C=this,B=C.rad,d=Math.cos,a=Math.sin,n=Math.abs,k=C.centerX,i=C.centerY,w=0,v=0,u=0,s=0,h=0,g=0,e=0,c=0,z=0.01,m=b.endRho-b.startRho,q=b.startAngle,p=b.endAngle,j=(q+p)/2*B,l=b.margin||0,t=n(p-q)>180,D=Math.min(q,p)*B,A=Math.max(q,p)*B,o=false;k+=l*d(j);i+=l*a(j);w=k+b.startRho*d(D);h=i+b.startRho*a(D);v=k+b.endRho*d(D);g=i+b.endRho*a(D);u=k+b.startRho*d(A);e=i+b.startRho*a(A);s=k+b.endRho*d(A);c=i+b.endRho*a(A);if(n(w-u)<=z&&n(h-e)<=z){o=true}if(o){return{path:[["M",w,h],["L",v,g],["A",b.endRho,b.endRho,0,+t,1,s,c],["Z"]]}}else{return{path:[["M",w,h],["L",v,g],["A",b.endRho,b.endRho,0,+t,1,s,c],["L",u,e],["A",b.startRho,b.startRho,0,+t,0,w,h],["Z"]]}}},calcMiddle:function(p){var k=this,l=k.rad,o=p.slice,n=k.centerX,m=k.centerY,j=o.startAngle,e=o.endAngle,i=Math.max(("rho" in o)?o.rho:k.radius,k.label.minMargin),h=+k.donut,b=Math.min(j,e)*l,a=Math.max(j,e)*l,d=-(b+(a-b)/2),g=n+(p.endRho+p.startRho)/2*Math.cos(d),c=m-(p.endRho+p.startRho)/2*Math.sin(d);p.middle={x:g,y:c}},drawSeries:function(){var w=this,W=w.chart,b=W.getChartStore(),A=w.group,S=w.chart.animate,D=w.chart.axes.get(0),E=D&&D.minimum||w.minimum||0,I=D&&D.maximum||w.maximum||0,n=w.angleField||w.field||w.xField,M=W.surface,H=W.chartBBox,h=w.rad,c=+w.donut,X={},B=[],m=w.seriesStyle,a=w.seriesLabelStyle,g=w.colorArrayStyle,z=g&&g.length||0,K=W.maxGutter[0],J=W.maxGutter[1],k=Math.cos,s=Math.sin,t,e,d,v,r,C,O,F,G,L,U,T,l,V,x,o,Q,R,q,y,u,P,N;Ext.apply(m,w.style||{});w.setBBox();y=w.bbox;if(w.colorSet){g=w.colorSet;z=g.length}if(!b||!b.getCount()||w.seriesIsHidden){w.hide();w.items=[];return}e=w.centerX=H.x+(H.width/2);d=w.centerY=H.y+H.height;w.radius=Math.min(e-H.x,d-H.y);w.slices=r=[];w.items=B=[];if(!w.value){L=b.getAt(0);w.value=L.get(n)}O=w.value;if(w.needle){P={series:w,value:O,startAngle:-180,endAngle:0,rho:w.radius};u=-180*(1-(O-E)/(I-E));r.push(P)}else{u=-180*(1-(O-E)/(I-E));P={series:w,value:O,startAngle:-180,endAngle:u,rho:w.radius};N={series:w,value:w.maximum-O,startAngle:u,endAngle:0,rho:w.radius};r.push(P,N)}for(U=0,G=r.length;U<G;U++){v=r[U];C=A.getAt(U);t=Ext.apply({segment:{startAngle:v.startAngle,endAngle:v.endAngle,margin:0,rho:v.rho,startRho:v.rho*+c/100,endRho:v.rho}},Ext.apply(m,g&&{fill:g[U%z]}||{}));F=Ext.apply({},t.segment,{slice:v,series:w,storeItem:L,index:U});B[U]=F;if(!C){q=Ext.apply({type:"path",group:A},Ext.apply(m,g&&{fill:g[U%z]}||{}));C=M.add(Ext.apply(q,t))}v.sprite=v.sprite||[];F.sprite=C;v.sprite.push(C);if(S){t=w.renderer(C,L,t,U,b);C._to=t;w.onAnimate(C,{to:t})}else{t=w.renderer(C,L,Ext.apply(t,{hidden:false}),U,b);C.setAttributes(t,true)}}if(w.needle){u=u*Math.PI/180;if(!w.needleSprite){w.needleSprite=w.chart.surface.add({type:"path",path:["M",e+(w.radius*+c/100)*k(u),d+-Math.abs((w.radius*+c/100)*s(u)),"L",e+w.radius*k(u),d+-Math.abs(w.radius*s(u))],"stroke-width":4,stroke:"#222"})}else{if(S){w.onAnimate(w.needleSprite,{to:{path:["M",e+(w.radius*+c/100)*k(u),d+-Math.abs((w.radius*+c/100)*s(u)),"L",e+w.radius*k(u),d+-Math.abs(w.radius*s(u))]}})}else{w.needleSprite.setAttributes({type:"path",path:["M",e+(w.radius*+c/100)*k(u),d+-Math.abs((w.radius*+c/100)*s(u)),"L",e+w.radius*k(u),d+-Math.abs(w.radius*s(u))]})}}w.needleSprite.setAttributes({hidden:false},true)}delete w.value},setValue:function(a){this.value=a;this.drawSeries()},onCreateLabel:function(c,b,a,d){},onPlaceLabel:function(c,g,e,d,h,a,b){},onPlaceCallout:function(){},onAnimate:function(b,a){b.show();return this.callParent(arguments)},isItemInPoint:function(l,j,n,e){var h=this,d=h.centerX,c=h.centerY,p=Math.abs,o=p(l-d),m=p(j-c),g=n.startAngle,a=n.endAngle,k=Math.sqrt(o*o+m*m),b=Math.atan2(j-c,l-d)/h.rad;return(e===0)&&(b>=g&&b<a&&k>=n.startRho&&k<=n.endRho)},showAll:function(){if(!isNaN(this._index)){this.__excludes[this._index]=false;this.drawSeries()}},getLegendColor:function(a){var b=this;return b.colorArrayStyle[a%b.colorArrayStyle.length]}});Ext.define("Ext.chart.series.Line",{extend:"Ext.chart.series.Cartesian",alternateClassName:["Ext.chart.LineSeries","Ext.chart.LineChart"],requires:["Ext.chart.axis.Axis","Ext.chart.Shape","Ext.draw.Draw","Ext.fx.Anim"],type:"line",alias:"series.line",selectionTolerance:20,showMarkers:true,markerConfig:{},style:{},smooth:false,defaultSmoothness:3,fill:false,constructor:function(c){this.callParent(arguments);var e=this,a=e.chart.surface,g=e.chart.shadow,d,b;c.highlightCfg=Ext.Object.merge({"stroke-width":3},c.highlightCfg);Ext.apply(e,c,{shadowAttributes:[{"stroke-width":6,"stroke-opacity":0.05,stroke:"rgb(0, 0, 0)",translate:{x:1,y:1}},{"stroke-width":4,"stroke-opacity":0.1,stroke:"rgb(0, 0, 0)",translate:{x:1,y:1}},{"stroke-width":2,"stroke-opacity":0.15,stroke:"rgb(0, 0, 0)",translate:{x:1,y:1}}]});e.group=a.getGroup(e.seriesId);if(e.showMarkers){e.markerGroup=a.getGroup(e.seriesId+"-markers")}if(g){for(d=0,b=e.shadowAttributes.length;d<b;d++){e.shadowGroups.push(a.getGroup(e.seriesId+"-shadows"+d))}}},shrink:function(b,k,l){var h=b.length,j=Math.floor(h/l),g=1,d=0,a=0,e=[+b[0]],c=[+k[0]];for(;g<h;++g){d+=+b[g]||0;a+=+k[g]||0;if(g%j==0){e.push(d/j);c.push(a/j);d=0;a=0}}return{x:e,y:c}},drawSeries:function(){var an=this,aA=an.chart,V=aA.axes,av=aA.getChartStore(),A=av.data.items,ar,Y=av.getCount(),w=an.chart.surface,au={},U=an.group,N=an.showMarkers,aG=an.markerGroup,G=aA.shadow,F=an.shadowGroups,ab=an.shadowAttributes,R=an.smooth,r=F.length,ay=["M"],W=["M"],d=["M"],b=["M"],M=aA.markerIndex,am=[].concat(an.axis),al,aB=[],ak={},ae=[],z={},L=false,T=[],aF=an.markerStyle,ad=an.seriesStyle,v=an.colorArrayStyle,S=v&&v.length||0,O=Ext.isNumber,aC=an.seriesIdx,h=an.getAxesForXAndYFields(),m=h.xAxis,aE=h.yAxis,ag,k,af,ah,D,c,ai,K,J,g,e,u,s,aa,Q,P,az,n,I,H,aH,o,q,E,a,ac,aj,C,ax,B,aw,p,aD,at,aq,X,l,t,ao,ap,Z;if(an.fireEvent("beforedraw",an)===false){return}if(!Y||an.seriesIsHidden){an.hide();an.items=[];if(an.line){an.line.hide(true);if(an.line.shadows){ag=an.line.shadows;for(P=0,r=ag.length;P<r;P++){k=ag[P];k.hide(true)}}if(an.fillPath){an.fillPath.hide(true)}}an.line=null;an.fillPath=null;return}at=Ext.apply(aF||{},an.markerConfig,{fill:an.seriesStyle.fill||v[aC%v.length]});X=at.type;delete at.type;aq=ad;if(!aq["stroke-width"]){aq["stroke-width"]=0.5}t="opacity" in aq?aq.opacity:1;Z="opacity" in aq?aq.opacity:0.3;ao="lineOpacity" in aq?aq.lineOpacity:t;ap="fillOpacity" in aq?aq.fillOpacity:Z;if(M&&aG&&aG.getCount()){for(Q=0;Q<M;Q++){H=aG.getAt(Q);aG.remove(H);aG.add(H);aH=aG.getAt(aG.getCount()-2);H.setAttributes({x:0,y:0,translate:{x:aH.attr.translation.x,y:aH.attr.translation.y}},true)}}an.unHighlightItem();an.cleanHighlights();an.setBBox();au=an.bbox;an.clipRect=[au.x,au.y,au.width,au.height];if(n=V.get(m)){I=n.applyData();C=I.from;ax=I.to}if(n=V.get(aE)){I=n.applyData();B=I.from;aw=I.to}if(an.xField&&!Ext.isNumber(C)){n=an.getMinMaxXValues();C=n[0];ax=n[1]}if(an.yField&&!Ext.isNumber(B)){n=an.getMinMaxYValues();B=n[0];aw=n[1]}if(isNaN(C)){C=0;ac=au.width/((Y-1)||1)}else{ac=au.width/((ax-C)||(Y-1)||1)}if(isNaN(B)){B=0;aj=au.height/((Y-1)||1)}else{aj=au.height/((aw-B)||(Y-1)||1)}for(Q=0,az=A.length;Q<az;Q++){ar=A[Q];q=ar.get(an.xField);if(typeof q=="string"||typeof q=="object"&&!Ext.isDate(q)||m&&V.get(m)&&V.get(m).type=="Category"){if(q in ak){q=ak[q]}else{q=ak[q]=Q}}E=ar.get(an.yField);if(typeof E=="undefined"||(typeof E=="string"&&!E)){continue}if(typeof E=="string"||typeof E=="object"&&!Ext.isDate(E)||aE&&V.get(aE)&&V.get(aE).type=="Category"){E=Q}T.push(Q);aB.push(q);ae.push(E)}az=aB.length;if(az>au.width){a=an.shrink(aB,ae,au.width);aB=a.x;ae=a.y}an.items=[];l=0;az=aB.length;for(Q=0;Q<az;Q++){q=aB[Q];E=ae[Q];if(E===false){if(W.length==1){W=[]}L=true;an.items.push(false);continue}else{K=(au.x+(q-C)*ac).toFixed(2);J=((au.y+au.height)-(E-B)*aj).toFixed(2);if(L){L=false;W.push("M")}W=W.concat([K,J])}if((typeof s=="undefined")&&(typeof J!="undefined")){s=J;u=K}if(!an.line||aA.resizing){ay=ay.concat([K,au.y+au.height/2])}if(aA.animate&&aA.resizing&&an.line){an.line.setAttributes({path:ay,opacity:ao},true);if(an.fillPath){an.fillPath.setAttributes({path:ay,opacity:ap},true)}if(an.line.shadows){ag=an.line.shadows;for(P=0,r=ag.length;P<r;P++){k=ag[P];k.setAttributes({path:ay},true)}}}if(N){H=aG.getAt(l++);if(!H){H=Ext.chart.Shape[X](w,Ext.apply({group:[U,aG],x:0,y:0,translate:{x:+(g||K),y:e||(au.y+au.height/2)},value:'"'+q+", "+E+'"',zIndex:4000},at));H._to={translate:{x:+K,y:+J}}}else{H.setAttributes({value:'"'+q+", "+E+'"',x:0,y:0,hidden:false},true);H._to={translate:{x:+K,y:+J}}}}an.items.push({series:an,value:[q,E],point:[K,J],sprite:H,storeItem:av.getAt(T[Q])});g=K;e=J}if(W.length<=1){return}if(an.smooth){b=Ext.draw.Draw.smooth(W,O(R)?R:an.defaultSmoothness)}d=R?b:W;if(aA.markerIndex&&an.previousPath){ah=an.previousPath;if(!R){Ext.Array.erase(ah,1,2)}}else{ah=W}if(!an.line){an.line=w.add(Ext.apply({type:"path",group:U,path:ay,stroke:aq.stroke||aq.fill},aq||{}));an.line.setAttributes({opacity:ao},true);if(G){an.line.setAttributes(Ext.apply({},an.shadowOptions),true)}an.line.setAttributes({fill:"none",zIndex:3000});if(!aq.stroke&&S){an.line.setAttributes({stroke:v[aC%S]},true)}if(G){ag=an.line.shadows=[];for(af=0;af<r;af++){al=ab[af];al=Ext.apply({},al,{path:ay});k=w.add(Ext.apply({},{type:"path",group:F[af]},al));ag.push(k)}}}if(an.fill){c=d.concat([["L",K,au.y+au.height],["L",u,au.y+au.height],["L",u,s]]);if(!an.fillPath){an.fillPath=w.add({group:U,type:"path",fill:aq.fill||v[aC%S],path:ay})}}aa=N&&aG.getCount();if(aA.animate){D=an.fill;p=an.line;ai=an.renderer(p,false,{path:d},Q,av);Ext.apply(ai,aq||{},{stroke:aq.stroke||aq.fill});delete ai.fill;p.show(true);if(aA.markerIndex&&an.previousPath){an.animation=aD=an.onAnimate(p,{to:ai,from:{path:ah}})}else{an.animation=aD=an.onAnimate(p,{to:ai})}if(G){ag=p.shadows;for(P=0;P<r;P++){ag[P].show(true);if(aA.markerIndex&&an.previousPath){an.onAnimate(ag[P],{to:{path:d},from:{path:ah}})}else{an.onAnimate(ag[P],{to:{path:d}})}}}if(D){an.fillPath.show(true);an.onAnimate(an.fillPath,{to:Ext.apply({},{path:c,fill:aq.fill||v[aC%S],"stroke-width":0,opacity:ap},aq||{})})}if(N){l=0;for(Q=0;Q<az;Q++){if(an.items[Q]){o=aG.getAt(l++);if(o){ai=an.renderer(o,av.getAt(Q),o._to,Q,av);an.onAnimate(o,{to:Ext.apply(ai,at||{})});o.show(true)}}}for(;l<aa;l++){o=aG.getAt(l);o.hide(true)}}}else{ai=an.renderer(an.line,false,{path:d,hidden:false},Q,av);Ext.apply(ai,aq||{},{stroke:aq.stroke||aq.fill});delete ai.fill;an.line.setAttributes(ai,true);an.line.setAttributes({opacity:ao},true);if(G){ag=an.line.shadows;for(P=0;P<r;P++){ag[P].setAttributes({path:d,hidden:false},true)}}if(an.fill){an.fillPath.setAttributes({path:c,hidden:false,opacity:ap},true)}if(N){l=0;for(Q=0;Q<az;Q++){if(an.items[Q]){o=aG.getAt(l++);if(o){ai=an.renderer(o,av.getAt(Q),o._to,Q,av);o.setAttributes(Ext.apply(at||{},ai||{}),true);if(!o.attr.hidden){o.show(true)}}}}for(;l<aa;l++){o=aG.getAt(l);o.hide(true)}}}if(aA.markerIndex){if(an.smooth){Ext.Array.erase(W,1,2)}else{Ext.Array.splice(W,1,0,W[1],W[2])}an.previousPath=W}an.renderLabels();an.renderCallouts();an.fireEvent("draw",an)},onCreateLabel:function(d,k,c,e){var g=this,h=g.labelsGroup,a=g.label,j=g.bbox,b=Ext.apply(a,g.seriesLabelStyle);return g.chart.surface.add(Ext.apply({type:"text","text-anchor":"middle",group:h,x:k.point[0],y:j.y+j.height/2},b||{}))},onPlaceLabel:function(g,k,s,p,o,d){var u=this,l=u.chart,r=l.resizing,t=u.label,q=t.renderer,b=t.field,a=u.bbox,j=s.point[0],h=s.point[1],c=s.sprite.attr.radius,e,n,m;g.setAttributes({text:q(k.get(b)),hidden:true},true);if(o=="rotate"){g.setAttributes({"text-anchor":"start",rotation:{x:j,y:h,degrees:-45}},true);e=g.getBBox();n=e.width;m=e.height;j=j<a.x?a.x:j;j=(j+n>a.x+a.width)?(j-(j+n-a.x-a.width)):j;h=(h-m<a.y)?a.y+m:h}else{if(o=="under"||o=="over"){e=s.sprite.getBBox();e.width=e.width||(c*2);e.height=e.height||(c*2);h=h+(o=="over"?-e.height:e.height);e=g.getBBox();n=e.width/2;m=e.height/2;j=j-n<a.x?a.x+n:j;j=(j+n>a.x+a.width)?(j-(j+n-a.x-a.width)):j;h=h-m<a.y?a.y+m:h;h=(h+m>a.y+a.height)?(h-(h+m-a.y-a.height)):h}}if(u.chart.animate&&!u.chart.resizing){g.show(true);u.onAnimate(g,{to:{x:j,y:h}})}else{g.setAttributes({x:j,y:h},true);if(r&&u.animation){u.animation.on("afteranimate",function(){g.show(true)})}else{g.show(true)}}},highlightItem:function(){var a=this;a.callParent(arguments);if(a.line&&!a.highlighted){if(!("__strokeWidth" in a.line)){a.line.__strokeWidth=parseFloat(a.line.attr["stroke-width"])||0}if(a.line.__anim){a.line.__anim.paused=true}a.line.__anim=Ext.create("Ext.fx.Anim",{target:a.line,to:{"stroke-width":a.line.__strokeWidth+3}});a.highlighted=true}},unHighlightItem:function(){var a=this;a.callParent(arguments);if(a.line&&a.highlighted){a.line.__anim=Ext.create("Ext.fx.Anim",{target:a.line,to:{"stroke-width":a.line.__strokeWidth}});a.highlighted=false}},onPlaceCallout:function(m,r,J,G,F,d,k){if(!F){return}var M=this,s=M.chart,D=s.surface,H=s.resizing,L=M.callouts,t=M.items,v=G==0?false:t[G-1].point,z=(G==t.length-1)?false:t[G+1].point,c=[+J.point[0],+J.point[1]],A,g,N,K,o,q,I=L.offsetFromViz||30,C=L.offsetToSide||10,B=L.offsetBox||3,h,e,j,w,u,E=M.clipRect,b={width:L.styles.width||10,height:L.styles.height||10},n,l;if(!v){v=c}if(!z){z=c}K=(z[1]-v[1])/(z[0]-v[0]);o=(c[1]-v[1])/(c[0]-v[0]);q=(z[1]-c[1])/(z[0]-c[0]);g=Math.sqrt(1+K*K);A=[1/g,K/g];N=[-A[1],A[0]];if(o>0&&q<0&&N[1]<0||o<0&&q>0&&N[1]>0){N[0]*=-1;N[1]*=-1}else{if(Math.abs(o)<Math.abs(q)&&N[0]<0||Math.abs(o)>Math.abs(q)&&N[0]>0){N[0]*=-1;N[1]*=-1}}n=c[0]+N[0]*I;l=c[1]+N[1]*I;h=n+(N[0]>0?0:-(b.width+2*B));e=l-b.height/2-B;j=b.width+2*B;w=b.height+2*B;if(h<E[0]||(h+j)>(E[0]+E[2])){N[0]*=-1}if(e<E[1]||(e+w)>(E[1]+E[3])){N[1]*=-1}n=c[0]+N[0]*I;l=c[1]+N[1]*I;h=n+(N[0]>0?0:-(b.width+2*B));e=l-b.height/2-B;j=b.width+2*B;w=b.height+2*B;if(s.animate){M.onAnimate(m.lines,{to:{path:["M",c[0],c[1],"L",n,l,"Z"]}});if(m.panel){m.panel.setPosition(h,e,true)}}else{m.lines.setAttributes({path:["M",c[0],c[1],"L",n,l,"Z"]},true);if(m.panel){m.panel.setPosition(h,e)}}for(u in m){m[u].show(true)}},isItemInPoint:function(j,g,A,q){var C=this,n=C.items,s=C.selectionTolerance,k=null,z,c,p,v,h,w,b,t,a,l,B,e,d,o,u,r,D=Math.sqrt,m=Math.abs;c=n[q];z=q&&n[q-1];if(q>=h){z=n[h-1]}p=z&&z.point;v=c&&c.point;w=z?p[0]:v[0]-s;b=z?p[1]:v[1];t=c?v[0]:p[0]+s;a=c?v[1]:p[1];e=D((j-w)*(j-w)+(g-b)*(g-b));d=D((j-t)*(j-t)+(g-a)*(g-a));o=Math.min(e,d);if(o<=s){return o==e?z:c}return false},toggleAll:function(a){var e=this,b,d,g,c;if(!a){Ext.chart.series.Cartesian.prototype.hideAll.call(e)}else{Ext.chart.series.Cartesian.prototype.showAll.call(e)}if(e.line){e.line.setAttributes({hidden:!a},true);if(e.line.shadows){for(b=0,c=e.line.shadows,d=c.length;b<d;b++){g=c[b];g.setAttributes({hidden:!a},true)}}}if(e.fillPath){e.fillPath.setAttributes({hidden:!a},true)}},hideAll:function(){this.toggleAll(false)},showAll:function(){this.toggleAll(true)}});Ext.define("Ext.chart.series.Pie",{alternateClassName:["Ext.chart.PieSeries","Ext.chart.PieChart"],extend:"Ext.chart.series.Series",type:"pie",alias:"series.pie",accuracy:100000,rad:Math.PI*2/100000,highlightDuration:150,angleField:false,lengthField:false,donut:false,showInLegend:false,style:{},constructor:function(b){this.callParent(arguments);var h=this,g=h.chart,a=g.surface,j=g.store,k=g.shadow,d,c,e;b.highlightCfg=Ext.merge({segment:{margin:20}},b.highlightCfg);Ext.apply(h,b,{shadowAttributes:[{"stroke-width":6,"stroke-opacity":1,stroke:"rgb(200, 200, 200)",translate:{x:1.2,y:2}},{"stroke-width":4,"stroke-opacity":1,stroke:"rgb(150, 150, 150)",translate:{x:0.9,y:1.5}},{"stroke-width":2,"stroke-opacity":1,stroke:"rgb(100, 100, 100)",translate:{x:0.6,y:1}}]});h.group=a.getGroup(h.seriesId);if(k){for(d=0,c=h.shadowAttributes.length;d<c;d++){h.shadowGroups.push(a.getGroup(h.seriesId+"-shadows"+d))}}a.customAttributes.segment=function(l){var i=h.getSegment(l);if(!i.path||i.path.length===0){i.path=["M",0,0]}return i};h.__excludes=h.__excludes||[]},initialize:function(){var d=this,a=d.chart.getChartStore(),e=a.data.items,b,c,g;d.yField=[];if(d.label.field){for(b=0,c=e.length;b<c;b++){g=e[b];d.yField.push(g.get(d.label.field))}}},getSegment:function(d){var J=this,I=J.rad,i=Math.cos,a=Math.sin,p=J.centerX,n=J.centerY,E=0,D=0,C=0,A=0,l=0,k=0,j=0,g=0,w=0,c=0,v=0,b=0,G=0.01,z=d.startAngle,u=d.endAngle,o=(z+u)/2*I,r=d.margin||0,K=Math.min(z,u)*I,H=Math.max(z,u)*I,t=i(K),h=a(K),s=i(H),e=a(H),m=i(o),F=a(o),B=0,q=0.7071067811865476;if(H-K<G){return{path:""}}if(r!==0){p+=r*m;n+=r*F}D=p+d.endRho*t;k=n+d.endRho*h;A=p+d.endRho*s;g=n+d.endRho*e;v=p+d.endRho*m;b=n+d.endRho*F;if(d.startRho!==0){E=p+d.startRho*t;l=n+d.startRho*h;C=p+d.startRho*s;j=n+d.startRho*e;w=p+d.startRho*m;c=n+d.startRho*F;return{path:[["M",D,k],["A",d.endRho,d.endRho,0,0,1,v,b],["L",v,b],["A",d.endRho,d.endRho,0,B,1,A,g],["L",A,g],["L",C,j],["A",d.startRho,d.startRho,0,B,0,w,c],["L",w,c],["A",d.startRho,d.startRho,0,0,0,E,l],["L",E,l],["Z"]]}}else{return{path:[["M",p,n],["L",D,k],["A",d.endRho,d.endRho,0,0,1,v,b],["L",v,b],["A",d.endRho,d.endRho,0,B,1,A,g],["L",A,g],["L",p,n],["Z"]]}}},calcMiddle:function(n){var i=this,j=i.rad,m=n.slice,l=i.centerX,k=i.centerY,h=m.startAngle,d=m.endAngle,g=+i.donut,c=-(h+d)*j/2,a=(n.endRho+n.startRho)/2,e=l+a*Math.cos(c),b=k-a*Math.sin(c);n.middle={x:e,y:b}},drawSeries:function(){var s=this,a=s.chart.getChartStore(),W=a.data.items,I,x=s.group,S=s.chart.animate,k=s.angleField||s.field||s.xField,A=[].concat(s.lengthField),R=0,X=s.chart,J=X.surface,G=X.chartBBox,g=X.shadow,Q=s.shadowGroups,P=s.shadowAttributes,aa=Q.length,K=A.length,B=0,b=+s.donut,Z=[],y=[],u=0,M=0,t=0,h=s.seriesStyle,e=s.colorArrayStyle,w=e&&e.length||0,o,Y,C,H,E,d,c,q,l=0,r,n,z,L,D,ab,F,U,T,V,N,O,m,v;Ext.apply(h,s.style||{});s.setBBox();v=s.bbox;if(s.colorSet){e=s.colorSet;w=e.length}if(!a||!a.getCount()||s.seriesIsHidden){s.hide();s.items=[];return}s.unHighlightItem();s.cleanHighlights();d=s.centerX=G.x+(G.width/2);c=s.centerY=G.y+(G.height/2);s.radius=Math.min(d-G.x,c-G.y);s.slices=n=[];s.items=y=[];for(U=0,F=W.length;U<F;U++){I=W[U];if(this.__excludes&&this.__excludes[U]){continue}u+=+I.get(k);if(A[0]){for(T=0,R=0;T<K;T++){R+=+I.get(A[T])}Z[U]=R;M=Math.max(M,R)}}u=u||1;for(U=0,F=W.length;U<F;U++){I=W[U];if(this.__excludes&&this.__excludes[U]){L=0}else{L=I.get(k);if(l==0){l=1}}if(l==1){l=2;s.firstAngle=t=s.accuracy*L/u/2;for(T=0;T<U;T++){n[T].startAngle=n[T].endAngle=s.firstAngle}}V=t-s.accuracy*L/u;r={series:s,value:L,startAngle:t,endAngle:V,storeItem:I};if(A[0]){ab=+Z[U];r.rho=Math.floor(s.radius/M*ab)}else{r.rho=s.radius}n[U]=r;(function(){t=V})()}if(g){for(U=0,F=n.length;U<F;U++){r=n[U];r.shadowAttrs=[];for(T=0,B=0,C=[];T<K;T++){z=x.getAt(U*K+T);q=A[T]?a.getAt(U).get(A[T])/Z[U]*r.rho:r.rho;o={segment:{startAngle:r.startAngle,endAngle:r.endAngle,margin:0,rho:r.rho,startRho:B+(q*b/100),endRho:B+q},hidden:!r.value&&(r.startAngle%s.accuracy)==(r.endAngle%s.accuracy)};for(E=0,C=[];E<aa;E++){Y=P[E];H=Q[E].getAt(U);if(!H){H=X.surface.add(Ext.apply({},{type:"path",group:Q[E],strokeLinejoin:"round"},o,Y))}Y=s.renderer(H,a.getAt(U),Ext.apply({},o,Y),U,a);if(S){s.onAnimate(H,{to:Y})}else{H.setAttributes(Y,true)}C.push(H)}r.shadowAttrs[T]=C}}}for(U=0,F=n.length;U<F;U++){r=n[U];for(T=0,B=0;T<K;T++){z=x.getAt(U*K+T);q=A[T]?a.getAt(U).get(A[T])/Z[U]*r.rho:r.rho;o=Ext.apply({segment:{startAngle:r.startAngle,endAngle:r.endAngle,margin:0,rho:r.rho,startRho:B+(q*b/100),endRho:B+q},hidden:(!r.value&&(r.startAngle%s.accuracy)==(r.endAngle%s.accuracy))},Ext.apply(h,e&&{fill:e[(K>1?T:U)%w]}||{}));D=Ext.apply({},o.segment,{slice:r,series:s,storeItem:r.storeItem,index:U});s.calcMiddle(D);if(g){D.shadows=r.shadowAttrs[T]}y[U]=D;if(!z){m=Ext.apply({type:"path",group:x,middle:D.middle},Ext.apply(h,e&&{fill:e[(K>1?T:U)%w]}||{}));z=J.add(Ext.apply(m,o))}r.sprite=r.sprite||[];D.sprite=z;r.sprite.push(z);r.point=[D.middle.x,D.middle.y];if(S){o=s.renderer(z,a.getAt(U),o,U,a);z._to=o;z._animating=true;s.onAnimate(z,{to:o,listeners:{afteranimate:{fn:function(){this._animating=false},scope:z}}})}else{o=s.renderer(z,a.getAt(U),Ext.apply(o,{hidden:false}),U,a);z.setAttributes(o,true)}B+=q}}F=x.getCount();for(U=0;U<F;U++){if(!n[(U/K)>>0]&&x.getAt(U)){x.getAt(U).hide(true)}}if(g){aa=Q.length;for(E=0;E<F;E++){if(!n[(E/K)>>0]){for(T=0;T<aa;T++){if(Q[T].getAt(E)){Q[T].getAt(E).hide(true)}}}}}s.renderLabels();s.renderCallouts()},onCreateLabel:function(g,l,e,h){var j=this,k=j.labelsGroup,a=j.label,d=j.centerX,c=j.centerY,m=l.middle,b=Ext.apply(j.seriesLabelStyle||{},a||{});return j.chart.surface.add(Ext.apply({type:"text","text-anchor":"middle",group:k,x:m.x,y:m.y},b))},onPlaceLabel:function(k,p,z,t,s,e,g){var B=this,q=B.chart,w=q.resizing,A=B.label,u=A.renderer,c=[].concat(A.field),m=B.centerX,l=B.centerY,C=z.middle,b={x:C.x,y:C.y},o=C.x-m,n=C.y-l,r={},d=1,j=Math.atan2(n,o||1),v=j*180/Math.PI,h;b.hidden=false;if(this.__excludes&&this.__excludes[t]){b.hidden=true}function a(i){if(i<0){i+=360}return i%360}k.setAttributes({text:u(p.get(c[g]))},true);switch(s){case"outside":d=Math.sqrt(o*o+n*n)*2;b.x=d*Math.cos(j)+m;b.y=d*Math.sin(j)+l;break;case"rotate":v=a(v);v=(v>90&&v<270)?v+180:v;h=k.attr.rotation.degrees;if(h!=null&&Math.abs(h-v)>180*0.5){if(v>h){v-=360}else{v+=360}v=v%360}else{v=a(v)}b.rotate={degrees:v,x:b.x,y:b.y};break;default:break}b.translate={x:0,y:0};if(e&&!w&&(s!="rotate"||h!=null)){B.onAnimate(k,{to:b})}else{k.setAttributes(b,true)}k._from=r},onPlaceCallout:function(l,o,z,v,u,d,e){var A=this,q=A.chart,j=A.centerX,h=A.centerY,B=z.middle,b={x:B.x,y:B.y},m=B.x-j,k=B.y-h,c=1,n,g=Math.atan2(k,m||1),a=l.label.getBBox(),w=20,t=10,s=10,r;c=z.endRho+w;n=(z.endRho+z.startRho)/2+(z.endRho-z.startRho)/3;b.x=c*Math.cos(g)+j;b.y=c*Math.sin(g)+h;m=n*Math.cos(g);k=n*Math.sin(g);if(q.animate){A.onAnimate(l.lines,{to:{path:["M",m+j,k+h,"L",b.x,b.y,"Z","M",b.x,b.y,"l",m>0?t:-t,0,"z"]}});A.onAnimate(l.box,{to:{x:b.x+(m>0?t:-(t+a.width+2*s)),y:b.y+(k>0?(-a.height-s/2):(-a.height-s/2)),width:a.width+2*s,height:a.height+2*s}});A.onAnimate(l.label,{to:{x:b.x+(m>0?(t+s):-(t+a.width+s)),y:b.y+(k>0?-a.height/4:-a.height/4)}})}else{l.lines.setAttributes({path:["M",m+j,k+h,"L",b.x,b.y,"Z","M",b.x,b.y,"l",m>0?t:-t,0,"z"]},true);l.box.setAttributes({x:b.x+(m>0?t:-(t+a.width+2*s)),y:b.y+(k>0?(-a.height-s/2):(-a.height-s/2)),width:a.width+2*s,height:a.height+2*s},true);l.label.setAttributes({x:b.x+(m>0?(t+s):-(t+a.width+s)),y:b.y+(k>0?-a.height/4:-a.height/4)},true)}for(r in l){l[r].show(true)}},onAnimate:function(b,a){b.show();return this.callParent(arguments)},isItemInPoint:function(l,j,n,e){var h=this,d=h.centerX,c=h.centerY,p=Math.abs,o=p(l-d),m=p(j-c),g=n.startAngle,a=n.endAngle,k=Math.sqrt(o*o+m*m),b=Math.atan2(j-c,l-d)/h.rad;if(b>h.firstAngle){b-=h.accuracy}return(b<=g&&b>a&&k>=n.startRho&&k<=n.endRho)},hideAll:function(c){var g,b,j,h,e,a,d;c=(isNaN(this._index)?c:this._index)||0;this.__excludes=this.__excludes||[];this.__excludes[c]=true;d=this.slices[c].sprite;for(e=0,a=d.length;e<a;e++){d[e].setAttributes({hidden:true},true)}if(this.slices[c].shadowAttrs){for(g=0,h=this.slices[c].shadowAttrs,b=h.length;g<b;g++){j=h[g];for(e=0,a=j.length;e<a;e++){j[e].setAttributes({hidden:true},true)}}}this.drawSeries()},showAll:function(a){a=(isNaN(this._index)?a:this._index)||0;this.__excludes[a]=false;this.drawSeries()},highlightItem:function(s){var u=this,t=u.rad,w,d,o,q,a,e,k,b,m,c,g,p,h,v,n,l,j;s=s||this.items[this._index];this.unHighlightItem();if(!s||u.animating||(s.sprite&&s.sprite._animating)){return}u.callParent([s]);if(!u.highlight){return}if("segment" in u.highlightCfg){w=u.highlightCfg.segment;d=u.chart.animate;if(u.labelsGroup){g=u.labelsGroup;p=u.label.display;h=g.getAt(s.index);v=(s.startAngle+s.endAngle)/2*t;n=w.margin||0;l=n*Math.cos(v);j=n*Math.sin(v);if(Math.abs(l)<1e-10){l=0}if(Math.abs(j)<1e-10){j=0}if(d){h.stopAnimation();h.animate({to:{translate:{x:l,y:j}},duration:u.highlightDuration})}else{h.setAttributes({translate:{x:l,y:j}},true)}}if(u.chart.shadow&&s.shadows){q=0;a=s.shadows;k=a.length;for(;q<k;q++){e=a[q];b={};m=s.sprite._from.segment;for(c in m){if(!(c in w)){b[c]=m[c]}}o={segment:Ext.applyIf(b,u.highlightCfg.segment)};if(d){e.stopAnimation();e.animate({to:o,duration:u.highlightDuration})}else{e.setAttributes(o,true)}}}}},unHighlightItem:function(){var w=this,l,e,d,k,t,s,r,q,x,m,c,a,v,n,b,g,u,h,o;if(!w.highlight){return}if(("segment" in w.highlightCfg)&&w.items){l=w.items;e=w.chart.animate;d=!!w.chart.shadow;k=w.labelsGroup;t=l.length;s=0;r=0;q=w.label.display;for(;s<t;s++){u=l[s];if(!u){continue}n=u.sprite;if(n&&n._highlighted){if(k){h=k.getAt(u.index);o=Ext.apply({translate:{x:0,y:0}},q=="rotate"?{rotate:{x:h.attr.x,y:h.attr.y,degrees:h.attr.rotation.degrees}}:{});if(e){h.stopAnimation();h.animate({to:o,duration:w.highlightDuration})}else{h.setAttributes(o,true)}}if(d){b=u.shadows;x=b.length;for(;r<x;r++){c={};a=u.sprite._to.segment;v=u.sprite._from.segment;Ext.apply(c,v);for(m in a){if(!(m in v)){c[m]=a[m]}}g=b[r];if(e){g.stopAnimation();g.animate({to:{segment:c},duration:w.highlightDuration})}else{g.setAttributes({segment:c},true)}}}}}}w.callParent(arguments)},getLegendColor:function(a){var b=this;return(b.colorSet&&b.colorSet[a%b.colorSet.length])||b.colorArrayStyle[a%b.colorArrayStyle.length]}});Ext.define("Ext.chart.series.Radar",{extend:"Ext.chart.series.Series",requires:["Ext.chart.Shape","Ext.fx.Anim"],type:"radar",alias:"series.radar",rad:Math.PI/180,showInLegend:false,style:{},constructor:function(c){this.callParent(arguments);var e=this,a=e.chart.surface,d,b;e.group=a.getGroup(e.seriesId);if(e.showMarkers){e.markerGroup=a.getGroup(e.seriesId+"-markers")}},drawSeries:function(){var w=this,c=w.chart.getChartStore(),S=c.data.items,T,I,z=w.group,B,U=w.chart,L=U.series.items,M,v,m,Q=U.animate,o=w.field||w.yField,K=U.surface,F=U.chartBBox,E=w.seriesIdx,j=w.colorArrayStyle,g,e,A,N,r=0,a=[],D=Math.max,k=Math.cos,t=Math.sin,q=Math.PI*2,P=c.getCount(),h,O,J,H,G,R,u,n=w.seriesStyle,b=w.seriesLabelStyle,p=U.resizing||!w.radar,C=U.axes&&U.axes.get(0),V=!(C&&C.maximum);w.setBBox();r=V?0:(C.maximum||0);Ext.apply(n,w.style||{});if(!c||!c.getCount()||w.seriesIsHidden){w.hide();w.items=[];if(w.radar){w.radar.hide(true)}w.radar=null;return}if(!n.stroke){n.stroke=j[E%j.length]}w.unHighlightItem();w.cleanHighlights();g=w.centerX=F.x+(F.width/2);e=w.centerY=F.y+(F.height/2);w.radius=N=Math.min(F.width,F.height)/2;w.items=A=[];if(V){for(M=0,v=L.length;M<v;M++){m=L[M];a.push(m.yField)}for(T=0;T<P;T++){I=S[T];for(R=0,u=a.length;R<u;R++){r=D(+I.get(a[R]),r)}}}r=r||1;h=[];O=[];for(R=0;R<P;R++){I=S[R];G=N*I.get(o)/r;J=G*k(R/P*q);H=G*t(R/P*q);if(R==0){O.push("M",J+g,H+e);h.push("M",0.01*J+g,0.01*H+e)}else{O.push("L",J+g,H+e);h.push("L",0.01*J+g,0.01*H+e)}A.push({sprite:false,point:[g+J,e+H],storeItem:I,series:w})}O.push("Z");if(!w.radar){w.radar=K.add(Ext.apply({type:"path",group:z,path:h},n||{}))}if(U.resizing){w.radar.setAttributes({path:h},true)}if(U.animate){w.onAnimate(w.radar,{to:Ext.apply({path:O},n||{})})}else{w.radar.setAttributes(Ext.apply({path:O},n||{}),true)}if(w.showMarkers){w.drawMarkers()}w.renderLabels();w.renderCallouts()},drawMarkers:function(){var n=this,k=n.chart,a=k.surface,b=Ext.apply({},n.markerStyle||{}),j=Ext.apply(b,n.markerConfig,{fill:n.colorArrayStyle[n.seriesIdx%n.colorArrayStyle.length]}),m=n.items,o=j.type,q=n.markerGroup,e=n.centerX,d=n.centerY,p,h,c,g;delete j.type;for(h=0,c=m.length;h<c;h++){p=m[h];g=q.getAt(h);if(!g){g=Ext.chart.Shape[o](a,Ext.apply({group:q,x:0,y:0,translate:{x:e,y:d}},j))}else{g.show()}p.sprite=g;if(k.resizing){g.setAttributes({x:0,y:0,translate:{x:e,y:d}},true)}g._to={translate:{x:p.point[0],y:p.point[1]}};if(k.animate){n.onAnimate(g,{to:g._to})}else{g.setAttributes(Ext.apply(g._to,j||{}),true)}}},isItemInPoint:function(c,g,e){var b,d=10,a=Math.abs;b=e.point;return(a(b[0]-c)<=d&&a(b[1]-g)<=d)},onCreateLabel:function(g,m,e,h){var j=this,l=j.labelsGroup,a=j.label,d=j.centerX,c=j.centerY,k=m.point,b=Ext.apply(j.seriesLabelStyle||{},a);return j.chart.surface.add(Ext.apply({type:"text","text-anchor":"middle",group:l,x:d,y:c},a||{}))},onPlaceLabel:function(q,h,s,g,k,b){var m=this,l=m.chart,j=l.resizing,c=m.label,r=c.renderer,p=c.field,e=m.centerX,d=m.centerY,a={x:s.point[0],y:s.point[1]},o=a.x-e,n=a.y-d;q.setAttributes({text:r(h.get(p)),hidden:true},true);if(j){q.setAttributes({x:e,y:d},true)}if(b){q.show(true);m.onAnimate(q,{to:a})}else{q.setAttributes(a,true);q.show(true)}},toggleAll:function(a){var e=this,b,d,g,c;if(!a){Ext.chart.series.Radar.superclass.hideAll.call(e)}else{Ext.chart.series.Radar.superclass.showAll.call(e)}if(e.radar){e.radar.setAttributes({hidden:!a},true);if(e.radar.shadows){for(b=0,c=e.radar.shadows,d=c.length;b<d;b++){g=c[b];g.setAttributes({hidden:!a},true)}}}},hideAll:function(){this.toggleAll(false);this.hideMarkers(0)},showAll:function(){this.toggleAll(true)},hideMarkers:function(a){var d=this,c=d.markerGroup&&d.markerGroup.getCount()||0,b=a||0;for(;b<c;b++){d.markerGroup.getAt(b).hide(true)}}});Ext.define("Ext.chart.series.Scatter",{extend:"Ext.chart.series.Cartesian",requires:["Ext.chart.axis.Axis","Ext.chart.Shape","Ext.fx.Anim"],type:"scatter",alias:"series.scatter",constructor:function(c){this.callParent(arguments);var e=this,g=e.chart.shadow,a=e.chart.surface,d,b;Ext.apply(e,c,{style:{},markerConfig:{},shadowAttributes:[{"stroke-width":6,"stroke-opacity":0.05,stroke:"rgb(0, 0, 0)"},{"stroke-width":4,"stroke-opacity":0.1,stroke:"rgb(0, 0, 0)"},{"stroke-width":2,"stroke-opacity":0.15,stroke:"rgb(0, 0, 0)"}]});e.group=a.getGroup(e.seriesId);if(g){for(d=0,b=e.shadowAttributes.length;d<b;d++){e.shadowGroups.push(a.getGroup(e.seriesId+"-shadows"+d))}}},getBounds:function(){var s=this,j=s.chart,d=j.getChartStore(),o=j.axes,l=s.getAxesForXAndYFields(),k=l.xAxis,e=l.yAxis,a,t,c,g,r,p,q,n,m,b,h;s.setBBox();a=s.bbox;if(b=o.get(k)){h=b.applyData();r=h.from;q=h.to}if(b=o.get(e)){h=b.applyData();p=h.from;n=h.to}if(s.xField&&!Ext.isNumber(r)){b=s.getMinMaxXValues();r=b[0];q=b[1]}if(s.yField&&!Ext.isNumber(p)){b=s.getMinMaxYValues();p=b[0];n=b[1]}if(isNaN(r)){r=0;q=d.getCount()-1;t=a.width/(d.getCount()-1)}else{t=a.width/(q-r)}if(isNaN(p)){p=0;n=d.getCount()-1;c=a.height/(d.getCount()-1)}else{c=a.height/(n-p)}return{bbox:a,minX:r,minY:p,xScale:t,yScale:c}},getPaths:function(){var z=this,n=z.chart,b=n.shadow,e=n.getChartStore(),B=e.data.items,s,l,d,j=z.group,g=z.bounds=z.getBounds(),a=z.bbox,C=g.xScale,c=g.yScale,v=g.minX,u=g.minY,A=a.x,w=a.y,h=a.height,o=z.items=[],q=[],m,k,r,t,p;for(s=0,l=B.length;s<l;s++){d=B[s];r=d.get(z.xField);t=d.get(z.yField);if(typeof t=="undefined"||(typeof t=="string"&&!t)||r==null||t==null){continue}if(typeof r=="string"||typeof r=="object"&&!Ext.isDate(r)){r=s}if(typeof t=="string"||typeof t=="object"&&!Ext.isDate(t)){t=s}m=A+(r-v)*C;k=w+h-(t-u)*c;q.push({x:m,y:k});z.items.push({series:z,value:[r,t],point:[m,k],storeItem:d});if(n.animate&&n.resizing){p=j.getAt(s);if(p){z.resetPoint(p);if(b){z.resetShadow(p)}}}}return q},resetPoint:function(a){var b=this.bbox;a.setAttributes({translate:{x:(b.x+b.width)/2,y:(b.y+b.height)/2}},true)},resetShadow:function(c){var g=this,e=c.shadows,j=g.shadowAttributes,d=g.shadowGroups.length,h=g.bbox,b,a;for(b=0;b<d;b++){a=Ext.apply({},j[b]);if(a.translate){a.translate.x+=(h.x+h.width)/2;a.translate.y+=(h.y+h.height)/2}else{a.translate={x:(h.x+h.width)/2,y:(h.y+h.height)/2}}e[b].setAttributes(a,true)}},createPoint:function(a,c){var d=this,b=d.chart,e=d.group,g=d.bbox;return Ext.chart.Shape[c](b.surface,Ext.apply({},{x:0,y:0,group:e,translate:{x:(g.x+g.width)/2,y:(g.y+g.height)/2}},a))},createShadow:function(n,g,k){var j=this,h=j.chart,l=j.shadowGroups,d=j.shadowAttributes,a=l.length,o=j.bbox,c,m,b,e;n.shadows=b=[];for(c=0;c<a;c++){e=Ext.apply({},d[c]);if(e.translate){e.translate.x+=(o.x+o.width)/2;e.translate.y+=(o.y+o.height)/2}else{Ext.apply(e,{translate:{x:(o.x+o.width)/2,y:(o.y+o.height)/2}})}Ext.apply(e,g);m=Ext.chart.Shape[k](h.surface,Ext.apply({},{x:0,y:0,group:l[c]},e));b.push(m)}},drawSeries:function(){var u=this,l=u.chart,h=l.getChartStore(),j=u.group,c=l.shadow,a=u.shadowGroups,q=u.shadowAttributes,r=a.length,m,n,o,k,p,t,e,g,b,d,s;t=Ext.apply(u.markerStyle,u.markerConfig);g=t.type;delete t.type;if(!h||!h.getCount()){u.hide();u.items=[];return}u.unHighlightItem();u.cleanHighlights();n=u.getPaths();k=n.length;for(p=0;p<k;p++){o=n[p];m=j.getAt(p);Ext.apply(o,t);if(!m){m=u.createPoint(o,g);if(c){u.createShadow(m,t,g)}}b=m.shadows;if(l.animate){d=u.renderer(m,h.getAt(p),{translate:o},p,h);m._to=d;u.onAnimate(m,{to:d});for(e=0;e<r;e++){s=Ext.apply({},q[e]);d=u.renderer(b[e],h.getAt(p),Ext.apply({},{hidden:false,translate:{x:o.x+(s.translate?s.translate.x:0),y:o.y+(s.translate?s.translate.y:0)}},s),p,h);u.onAnimate(b[e],{to:d})}}else{d=u.renderer(m,h.getAt(p),{translate:o},p,h);m._to=d;m.setAttributes(d,true);for(e=0;e<r;e++){s=Ext.apply({},q[e]);d=u.renderer(b[e],h.getAt(p),Ext.apply({},{hidden:false,translate:{x:o.x+(s.translate?s.translate.x:0),y:o.y+(s.translate?s.translate.y:0)}},s),p,h);b[e].setAttributes(d,true)}}u.items[p].sprite=m}k=j.getCount();for(p=n.length;p<k;p++){j.getAt(p).hide(true)}u.renderLabels();u.renderCallouts()},onCreateLabel:function(d,k,c,e){var g=this,h=g.labelsGroup,a=g.label,b=Ext.apply({},a,g.seriesLabelStyle),j=g.bbox;return g.chart.surface.add(Ext.apply({type:"text",group:h,x:k.point[0],y:j.y+j.height/2},b))},onPlaceLabel:function(g,k,t,q,p,d){var v=this,l=v.chart,s=l.resizing,u=v.label,r=u.renderer,b=u.field,a=v.bbox,j=t.point[0],h=t.point[1],c=t.sprite.attr.radius,e,n,m,o;g.setAttributes({text:r(k.get(b)),hidden:true},true);if(p=="rotate"){g.setAttributes({"text-anchor":"start",rotation:{x:j,y:h,degrees:-45}},true);e=g.getBBox();n=e.width;m=e.height;j=j<a.x?a.x:j;j=(j+n>a.x+a.width)?(j-(j+n-a.x-a.width)):j;h=(h-m<a.y)?a.y+m:h}else{if(p=="under"||p=="over"){e=t.sprite.getBBox();e.width=e.width||(c*2);e.height=e.height||(c*2);h=h+(p=="over"?-e.height:e.height);e=g.getBBox();n=e.width/2;m=e.height/2;j=j-n<a.x?a.x+n:j;j=(j+n>a.x+a.width)?(j-(j+n-a.x-a.width)):j;h=h-m<a.y?a.y+m:h;h=(h+m>a.y+a.height)?(h-(h+m-a.y-a.height)):h}}if(!l.animate){g.setAttributes({x:j,y:h},true);g.show(true)}else{if(s){o=t.sprite.getActiveAnimation();if(o){o.on("afteranimate",function(){g.setAttributes({x:j,y:h},true);g.show(true)})}else{g.show(true)}}else{v.onAnimate(g,{to:{x:j,y:h}})}}},onPlaceCallout:function(k,m,B,z,w,c,h){var E=this,n=E.chart,u=n.surface,A=n.resizing,D=E.callouts,o=E.items,b=B.point,F,a=k.label.getBBox(),C=30,t=10,s=3,e,d,g,r,q,v=E.bbox,l,j;F=[Math.cos(Math.PI/4),-Math.sin(Math.PI/4)];l=b[0]+F[0]*C;j=b[1]+F[1]*C;e=l+(F[0]>0?0:-(a.width+2*s));d=j-a.height/2-s;g=a.width+2*s;r=a.height+2*s;if(e<v[0]||(e+g)>(v[0]+v[2])){F[0]*=-1}if(d<v[1]||(d+r)>(v[1]+v[3])){F[1]*=-1}l=b[0]+F[0]*C;j=b[1]+F[1]*C;e=l+(F[0]>0?0:-(a.width+2*s));d=j-a.height/2-s;g=a.width+2*s;r=a.height+2*s;if(n.animate){E.onAnimate(k.lines,{to:{path:["M",b[0],b[1],"L",l,j,"Z"]}},true);E.onAnimate(k.box,{to:{x:e,y:d,width:g,height:r}},true);E.onAnimate(k.label,{to:{x:l+(F[0]>0?s:-(a.width+s)),y:j}},true)}else{k.lines.setAttributes({path:["M",b[0],b[1],"L",l,j,"Z"]},true);k.box.setAttributes({x:e,y:d,width:g,height:r},true);k.label.setAttributes({x:l+(F[0]>0?s:-(a.width+s)),y:j},true)}for(q in k){k[q].show(true)}},onAnimate:function(b,a){b.show();return this.callParent(arguments)},isItemInPoint:function(c,h,e){var b,d=10,a=Math.abs;function g(i){var k=a(i[0]-c),j=a(i[1]-h);return Math.sqrt(k*k+j*j)}b=e.point;return(b[0]-d<=c&&b[0]+d>=c&&b[1]-d<=h&&b[1]+d>=h)}});Ext.define("Ext.layout.container.Table",{alias:["layout.table"],extend:"Ext.layout.container.Container",alternateClassName:"Ext.layout.TableLayout",monitorResize:false,type:"table",clearEl:true,targetCls:Ext.baseCSSPrefix+"table-layout-ct",tableCls:Ext.baseCSSPrefix+"table-layout",cellCls:Ext.baseCSSPrefix+"table-layout-cell",tableAttrs:null,itemSizePolicy:{setsWidth:0,setsHeight:0},getItemSizePolicy:function(a){return this.itemSizePolicy},getLayoutItems:function(){var g=this,b=[],c=g.callParent(),e,a=c.length,d;for(d=0;d<a;d++){e=c[d];if(!e.hidden){b.push(e)}}return b},renderChildren:function(){var j=this,h=j.getLayoutItems(),e=j.owner.getTargetEl().child("table",true).tBodies[0],p=e.rows,d=0,g=h.length,o,m,c,a,n,l,k,b;o=j.calculateCells(h);for(;d<g;d++){m=o[d];c=m.rowIdx;a=m.cellIdx;n=h[d];l=p[c];if(!l){l=e.insertRow(c);if(j.trAttrs){l.set(j.trAttrs)}}b=k=Ext.get(l.cells[a]||l.insertCell(a));if(j.needsDivWrap()){b=k.first()||k.createChild({tag:"div"});b.setWidth(null)}if(!n.rendered){j.renderItem(n,b,0)}else{if(!j.isValidParent(n,b,c,a,e)){j.moveItem(n,b,0)}}if(j.tdAttrs){k.set(j.tdAttrs)}if(n.tdAttrs){k.set(n.tdAttrs)}k.set({colSpan:n.colspan||1,rowSpan:n.rowspan||1,id:n.cellId||"",cls:j.cellCls+" "+(n.cellCls||"")});if(!o[d+1]||o[d+1].rowIdx!==c){a++;while(l.cells[a]){l.deleteCell(a)}}}c++;while(e.rows[c]){e.deleteRow(c)}},calculate:function(g){if(!g.hasDomProp("containerChildrenDone")){this.done=false}else{var c=g.targetContext,b=g.widthModel.shrinkWrap,a=g.heightModel.shrinkWrap,h=a||b,d=h&&c.el.child("table",true),e=h&&c.getPaddingInfo();if(b){g.setContentWidth(d.offsetWidth+e.width,true)}if(a){g.setContentHeight(d.offsetHeight+e.height,true)}}},finalizeLayout:function(){if(this.needsDivWrap()){var b=this.getLayoutItems(),c,a=b.length,d;for(c=0;c<a;c++){d=b[c];Ext.fly(d.el.dom.parentNode).setWidth(d.getWidth())}}if(Ext.isIE6||(Ext.isIEQuirks)){this.owner.getTargetEl().child("table").repaint()}},calculateCells:function(k){var m=[],b=0,d=0,a=0,h=this.columns||Infinity,n=[],e=0,c,g=k.length,l;for(;e<g;e++){l=k[e];while(d>=h||n[d]>0){if(d>=h){d=0;a=0;b++;for(c=0;c<h;c++){if(n[c]>0){n[c]--}}}else{d++}}m.push({rowIdx:b,cellIdx:a});for(c=l.colspan||1;c;--c){n[d]=l.rowspan||1;++d}++a}return m},getRenderTree:function(){var k=this,h=k.getLayoutItems(),o,p=[],q=Ext.apply({tag:"table",role:"presentation",cls:k.tableCls,cellspacing:0,cn:{tag:"tbody",cn:p}},k.tableAttrs),c=k.tdAttrs,d=k.needsDivWrap(),e,g=h.length,n,m,j,b,a,l;o=k.calculateCells(h);for(e=0;e<g;e++){n=h[e];m=o[e];b=m.rowIdx;a=m.cellIdx;j=p[b];if(!j){j=p[b]={tag:"tr",cn:[]};if(k.trAttrs){Ext.apply(j,k.trAttrs)}}l=j.cn[a]={tag:"td"};if(c){Ext.apply(l,c)}Ext.apply(l,{colSpan:n.colspan||1,rowSpan:n.rowspan||1,id:n.cellId||"",cls:k.cellCls+" "+(n.cellCls||"")});if(d){l=l.cn={tag:"div"}}k.configureItem(n);l.cn=n.getRenderTree()}return q},isValidParent:function(g,h,e,d){var b,a,c;if(arguments.length===3){c=g.el.up("table");return c&&c.dom.parentNode===h.dom}b=this.owner.getTargetEl().child("table",true).tBodies[0];a=b.rows[e].cells[d];return g.el.dom.parentNode===a},needsDivWrap:function(){return Ext.isOpera10_5}});Ext.define("Ext.container.ButtonGroup",{extend:"Ext.panel.Panel",alias:"widget.buttongroup",alternateClassName:"Ext.ButtonGroup",requires:["Ext.layout.container.Table"],baseCls:Ext.baseCSSPrefix+"btn-group",layout:{type:"table"},defaultType:"button",frame:true,frameHeader:false,titleAlign:"center",initComponent:function(){var a=this,b=a.columns;a.noTitleCls=a.baseCls+"-notitle";if(b){a.layout=Ext.apply({},{columns:b},a.layout)}if(!a.title){a.addCls(a.noTitleCls)}a.callParent(arguments)},onBeforeAdd:function(a){if(a.isButton){a.ui=a.ui+"-toolbar"}this.callParent(arguments)},applyDefaults:function(a){if(!Ext.isString(a)){a=this.callParent(arguments)}return a}});Ext.define("Ext.container.Viewport",{extend:"Ext.container.Container",alias:"widget.viewport",requires:["Ext.EventManager"],alternateClassName:"Ext.Viewport",isViewport:true,ariaRole:"application",preserveElOnDestroy:true,initComponent:function(){var c=this,a=document.body.parentNode,b;Ext.getScrollbarSize();c.width=c.height=undefined;c.callParent(arguments);Ext.fly(a).addCls(Ext.baseCSSPrefix+"viewport");if(c.autoScroll){delete c.autoScroll;Ext.fly(a).setStyle("overflow","auto")}c.el=b=Ext.getBody();b.setHeight=Ext.emptyFn;b.setWidth=Ext.emptyFn;b.setSize=Ext.emptyFn;b.dom.scroll="no";c.allowDomMove=false;c.renderTo=c.el},onRender:function(){var a=this;a.callParent(arguments);a.width=Ext.Element.getViewportWidth();a.height=Ext.Element.getViewportHeight()},afterFirstLayout:function(){var a=this;a.callParent(arguments);setTimeout(function(){Ext.EventManager.onWindowResize(a.fireResize,a)},1)},fireResize:function(b,a){if(b!=this.width||a!=this.height){this.setSize(b,a)}}});Ext.define("Ext.data.proxy.Proxy",{alias:"proxy.proxy",alternateClassName:["Ext.data.DataProxy","Ext.data.Proxy"],uses:["Ext.data.Batch","Ext.data.Operation","Ext.data.Model"],mixins:{observable:"Ext.util.Observable"},batchOrder:"create,update,destroy",batchActions:true,defaultReaderType:"json",defaultWriterType:"json",isProxy:true,constructor:function(a){a=a||{};if(a.model===undefined){delete a.model}this.mixins.observable.constructor.call(this,a);if(this.model!==undefined&&!(this.model instanceof Ext.data.Model)){this.setModel(this.model)}},setModel:function(b,c){this.model=Ext.ModelManager.getModel(b);var a=this.reader,d=this.writer;this.setReader(a);this.setWriter(d);if(c&&this.store){this.store.setModel(this.model)}},getModel:function(){return this.model},setReader:function(a){var c=this,b=true;if(a===undefined||typeof a=="string"){a={type:a};b=false}if(a.isReader){a.setModel(c.model)}else{if(b){a=Ext.apply({},a)}Ext.applyIf(a,{proxy:c,model:c.model,type:c.defaultReaderType});a=Ext.createByAlias("reader."+a.type,a)}if(a.onMetaChange){a.onMetaChange=Ext.Function.createSequence(a.onMetaChange,this.onMetaChange,this)}c.reader=a;return c.reader},getReader:function(){return this.reader},onMetaChange:function(a){this.fireEvent("metachange",this,a)},setWriter:function(c){var b=this,a=true;if(c===undefined||typeof c=="string"){c={type:c};a=false}if(!c.isWriter){if(a){c=Ext.apply({},c)}Ext.applyIf(c,{model:b.model,type:b.defaultWriterType});c=Ext.createByAlias("writer."+c.type,c)}b.writer=c;return b.writer},getWriter:function(){return this.writer},create:Ext.emptyFn,read:Ext.emptyFn,update:Ext.emptyFn,destroy:Ext.emptyFn,batch:function(o,l){var k=this,j=k.batchActions,h,c,g,d,e,m,b,n,i;if(o.operations===undefined){o={operations:o,listeners:l}}if(o.batch){if(Ext.isDefined(o.batch.runOperation)){h=Ext.applyIf(o.batch,{proxy:k,listeners:{}})}}else{o.batch={proxy:k,listeners:o.listeners||{}}}if(!h){h=new Ext.data.Batch(o.batch)}h.on("complete",Ext.bind(k.onBatchComplete,k,[o],0));g=k.batchOrder.split(",");d=g.length;for(m=0;m<d;m++){e=g[m];c=o.operations[e];if(c){if(j){h.add(new Ext.data.Operation({action:e,records:c}))}else{n=c.length;for(b=0;b<n;b++){i=c[b];h.add(new Ext.data.Operation({action:e,records:[i]}))}}}}h.start();return h},onBatchComplete:function(a,b){var c=a.scope||this;if(b.hasException){if(Ext.isFunction(a.failure)){Ext.callback(a.failure,c,[b,a])}}else{if(Ext.isFunction(a.success)){Ext.callback(a.success,c,[b,a])}}if(Ext.isFunction(a.callback)){Ext.callback(a.callback,c,[b,a])}}},function(){Ext.data.DataProxy=this});Ext.define("Ext.data.AbstractStore",{requires:["Ext.util.MixedCollection","Ext.data.proxy.Proxy","Ext.data.Operation","Ext.util.Filter"],mixins:{observable:"Ext.util.Observable",sortable:"Ext.util.Sortable"},statics:{create:function(a){if(!a.isStore){if(!a.type){a.type="store"}a=Ext.createByAlias("store."+a.type,a)}return a}},remoteSort:false,remoteFilter:false,autoLoad:undefined,autoSync:false,batchUpdateMode:"operation",filterOnLoad:true,sortOnLoad:true,implicitModel:false,defaultProxyType:"memory",isDestroyed:false,isStore:true,sortRoot:"data",constructor:function(a){var c=this,b;Ext.apply(c,a);c.removed=[];c.mixins.observable.constructor.apply(c,arguments);c.model=Ext.ModelManager.getModel(c.model);Ext.applyIf(c,{modelDefaults:{}});if(!c.model&&c.fields){c.model=Ext.define("Ext.data.Store.ImplicitModel-"+(c.storeId||Ext.id()),{extend:"Ext.data.Model",fields:c.fields,proxy:c.proxy||c.defaultProxyType});delete c.fields;c.implicitModel=true}c.setProxy(c.proxy||c.model.getProxy());c.proxy.on("metachange",c.onMetaChange,c);if(c.id&&!c.storeId){c.storeId=c.id;delete c.id}if(c.storeId){Ext.data.StoreManager.register(c)}c.mixins.sortable.initSortable.call(c);b=c.decodeFilters(c.filters);c.filters=new Ext.util.MixedCollection();c.filters.addAll(b)},setProxy:function(a){var b=this;if(a instanceof Ext.data.proxy.Proxy){a.setModel(b.model)}else{if(Ext.isString(a)){a={type:a}}Ext.applyIf(a,{model:b.model});a=Ext.createByAlias("proxy."+a.type,a)}b.proxy=a;return b.proxy},getProxy:function(){return this.proxy},onMetaChange:function(a,b){this.fireEvent("metachange",this,b)},create:function(e,c){var d=this,a=Ext.ModelManager.create(Ext.applyIf(e,d.modelDefaults),d.model.modelName),b;c=c||{};Ext.applyIf(c,{action:"create",records:[a]});b=new Ext.data.Operation(c);d.proxy.create(b,d.onProxyWrite,d);return a},read:function(){return this.load.apply(this,arguments)},update:function(b){var c=this,a;b=b||{};Ext.applyIf(b,{action:"update",records:c.getUpdatedRecords()});a=new Ext.data.Operation(b);return c.proxy.update(a,c.onProxyWrite,c)},onProxyWrite:function(b){var c=this,d=b.wasSuccessful(),a=b.getRecords();switch(b.action){case"create":c.onCreateRecords(a,b,d);break;case"update":c.onUpdateRecords(a,b,d);break;case"destroy":c.onDestroyRecords(a,b,d);break}if(d){c.fireEvent("write",c,b);c.fireEvent("datachanged",c);c.fireEvent("refresh",c)}Ext.callback(b.callback,b.scope||c,[a,b,d])},onCreateRecords:Ext.emptyFn,onUpdateRecords:Ext.emptyFn,onDestroyRecords:function(b,a,c){if(c){this.removed=[]}},destroy:function(b){var c=this,a;b=b||{};Ext.applyIf(b,{action:"destroy",records:c.getRemovedRecords()});a=new Ext.data.Operation(b);return c.proxy.destroy(a,c.onProxyWrite,c)},onBatchOperationComplete:function(b,a){return this.onProxyWrite(a)},onBatchComplete:function(c,a){var g=this,b=c.operations,e=b.length,d;g.suspendEvents();for(d=0;d<e;d++){g.onProxyWrite(b[d])}g.resumeEvents();g.fireEvent("datachanged",g);g.fireEvent("refresh",g)},onBatchException:function(b,a){},filterNew:function(a){return a.phantom===true&&a.isValid()},getNewRecords:function(){return[]},getUpdatedRecords:function(){return[]},getModifiedRecords:function(){return[].concat(this.getNewRecords(),this.getUpdatedRecords())},filterUpdated:function(a){return a.dirty===true&&a.phantom!==true&&a.isValid()},getRemovedRecords:function(){return this.removed},filter:function(a,b){},decodeFilters:function(e){if(!Ext.isArray(e)){if(e===undefined){e=[]}else{e=[e]}}var d=e.length,a=Ext.util.Filter,b,c;for(c=0;c<d;c++){b=e[c];if(!(b instanceof a)){Ext.apply(b,{root:"data"});if(b.fn){b.filterFn=b.fn}if(typeof b=="function"){b={filterFn:b}}e[c]=new a(b)}}return e},clearFilter:function(a){},isFiltered:function(){},filterBy:function(b,a){},sync:function(c){var e=this,b={},g=e.getNewRecords(),d=e.getUpdatedRecords(),a=e.getRemovedRecords(),h=false;if(g.length>0){b.create=g;h=true}if(d.length>0){b.update=d;h=true}if(a.length>0){b.destroy=a;h=true}if(h&&e.fireEvent("beforesync",b)!==false){c=c||{};e.proxy.batch(Ext.apply(c,{operations:b,listeners:e.getBatchListeners()}))}return e},getBatchListeners:function(){var b=this,a={scope:b,exception:b.onBatchException};if(b.batchUpdateMode=="operation"){a.operationcomplete=b.onBatchOperationComplete}else{a.complete=b.onBatchComplete}return a},save:function(){return this.sync.apply(this,arguments)},load:function(b){var c=this,a;b=Ext.apply({action:"read",filters:c.filters.items,sorters:c.getSorters()},b);c.lastOptions=b;a=new Ext.data.Operation(b);if(c.fireEvent("beforeload",c,a)!==false){c.loading=true;c.proxy.read(a,c.onProxyLoad,c)}return c},reload:function(a){return this.load(Ext.apply(this.lastOptions,a))},afterEdit:function(a,e){var d=this,b,c;if(d.autoSync&&!d.autoSyncSuspended){for(b=e.length;b--;){if(a.fields.get(e[b]).persist){c=true;break}}if(c){d.sync()}}d.fireEvent("update",d,a,Ext.data.Model.EDIT,e)},afterReject:function(a){this.fireEvent("update",this,a,Ext.data.Model.REJECT,null)},afterCommit:function(a){this.fireEvent("update",this,a,Ext.data.Model.COMMIT,null)},destroyStore:function(){var a=this;if(!a.isDestroyed){if(a.storeId){Ext.data.StoreManager.unregister(a)}a.clearData();a.data=a.tree=a.sorters=a.filters=a.groupers=null;if(a.reader){a.reader.destroyReader()}a.proxy=a.reader=a.writer=null;a.clearListeners();a.isDestroyed=true;if(a.implicitModel){Ext.destroy(a.model)}else{a.model=null}}},doSort:function(a){var b=this;if(b.remoteSort){b.load()}else{b.data.sortBy(a);b.fireEvent("datachanged",b);b.fireEvent("refresh",b)}},clearData:Ext.emptyFn,getCount:Ext.emptyFn,getById:Ext.emptyFn,removeAll:Ext.emptyFn,isLoading:function(){return !!this.loading},suspendAutoSync:function(){this.autoSyncSuspended=true},resumeAutoSync:function(){this.autoSyncSuspended=false}});Ext.define("Ext.data.ResultSet",{loaded:true,count:0,total:0,success:false,constructor:function(a){Ext.apply(this,a);this.totalRecords=this.total;if(a.count===undefined){this.count=this.records.length}}});Ext.define("Ext.data.reader.Reader",{requires:["Ext.data.ResultSet","Ext.XTemplate"],alternateClassName:["Ext.data.Reader","Ext.data.DataReader"],mixins:{observable:"Ext.util.Observable"},totalProperty:"total",successProperty:"success",root:"",implicitIncludes:true,readRecordsOnFailure:true,isReader:true,applyDefaults:true,lastFieldGeneration:null,constructor:function(a){var b=this;b.mixins.observable.constructor.call(b,a);b.fieldCount=0;b.model=Ext.ModelManager.getModel(b.model);b.accessExpressionFn=Ext.Function.bind(b.createFieldAccessExpression,b);if(b.model&&b.model.prototype.fields){b.buildExtractors()}this.addEvents("exception")},setModel:function(a,c){var b=this;b.model=Ext.ModelManager.getModel(a);b.buildExtractors(true);if(c&&b.proxy){b.proxy.setModel(b.model,true)}},read:function(a){var b;if(a){b=a.responseText?this.getResponseData(a):this.readRecords(a)}return b||this.nullResultSet},readRecords:function(c){var d=this,i,b,a,g,e,h,j;if(d.lastFieldGeneration!==d.model.prototype.fields.generation){d.buildExtractors(true)}d.rawData=c;c=d.getData(c);i=true;b=0;a=[];if(d.successProperty){h=d.getSuccess(c);if(h===false||h==="false"){i=false}}if(d.messageProperty){j=d.getMessage(c)}if(d.readRecordsOnFailure||i){g=Ext.isArray(c)?c:d.getRoot(c);if(g){e=g.length}if(d.totalProperty){h=parseInt(d.getTotal(c),10);if(!isNaN(h)){e=h}}if(g){a=d.extractData(g);b=a.length}}return new Ext.data.ResultSet({total:e||b,count:b,records:a,success:i,message:j})},extractData:function(k){var j=this,d=[],b=j.model,a=k.length,e,c,h,g;if(!k.length&&Ext.isObject(k)){k=[k];a=1}for(g=0;g<a;g++){c=k[g];if(!c.isModel){h=new b(undefined,j.getId(c),c,e={});h.phantom=false;j.convertRecordData(e,c,h);d.push(h);if(j.implicitIncludes){j.readAssociated(h,c)}}else{d.push(c)}}return d},readAssociated:function(h,e){var d=h.associations.items,g=0,a=d.length,c,b,k,j;for(;g<a;g++){c=d[g];b=this.getAssociatedDataRoot(e,c.associationKey||c.name);if(b){j=c.getReader();if(!j){k=c.associatedModel.proxy;if(k){j=k.getReader()}else{j=new this.constructor({model:c.associatedName})}}c.read(h,j,b)}}},getAssociatedDataRoot:function(b,a){return b[a]},getFields:function(){return this.model.prototype.fields.items},getData:function(a){return a},getRoot:function(a){return a},getResponseData:function(a){},onMetaChange:function(e){var d=this,b=e.fields||d.getFields(),c,a;d.metaData=e;d.root=e.root||d.root;d.idProperty=e.idProperty||d.idProperty;d.totalProperty=e.totalProperty||d.totalProperty;d.successProperty=e.successProperty||d.successProperty;d.messageProperty=e.messageProperty||d.messageProperty;a=e.clientIdProperty;if(d.model){d.model.setFields(b,d.idProperty,a);d.setModel(d.model,true)}else{c=Ext.define("Ext.data.reader.Json-Model"+Ext.id(),{extend:"Ext.data.Model",fields:b,clientIdProperty:a});if(d.idProperty){c.idProperty=d.idProperty}d.setModel(c,true)}},getIdProperty:function(){return this.idProperty||this.model.prototype.idProperty},buildExtractors:function(b){var g=this,j=g.getIdProperty(),i=g.totalProperty,e=g.successProperty,h=g.messageProperty,d,c,a;if(b===true){delete g.convertRecordData}if(g.convertRecordData){return}if(i){g.getTotal=g.createAccessor(i)}if(e){g.getSuccess=g.createAccessor(e)}if(h){g.getMessage=g.createAccessor(h)}if(j){c=g.model.prototype.fields.get(j);if(c){a=c.mapping;j=(a!==undefined&&a!==null)?a:j}d=g.createAccessor(j);g.getId=function(k){var l=d.call(g,k);return(l===undefined||l==="")?null:l}}else{g.getId=function(){return null}}g.convertRecordData=g.buildRecordDataExtractor();g.lastFieldGeneration=g.model.prototype.fields.generation},recordDataExtractorTemplate:["var me = this\n"," ,fields = me.model.prototype.fields\n"," ,value\n"," ,internalId\n",'<tpl for="fields">',' ,__field{#} = fields.get("{name}")\n',"</tpl>",";\n","return function(dest, source, record) {\n",'<tpl for="fields">',' value = {[ this.createFieldAccessExpression(values, "__field" + xindex, "source") ]};\n','<tpl if="hasCustomConvert">',' dest["{name}"] = value === undefined ? __field{#}.convert(__field{#}.defaultValue, record) : __field{#}.convert(value, record);\n','<tpl elseif="defaultValue !== undefined">'," if (value === undefined) {\n"," if (me.applyDefaults) {\n",'<tpl if="convert">',' dest["{name}"] = __field{#}.convert(__field{#}.defaultValue, record);\n',"<tpl else>",' dest["{name}"] = __field{#}.defaultValue\n',"</tpl>"," };\n"," } else {\n",'<tpl if="convert">',' dest["{name}"] = __field{#}.convert(value, record);\n',"<tpl else>",' dest["{name}"] = value;\n',"</tpl>"," };","<tpl else>"," if (value !== undefined) {\n",'<tpl if="convert">',' dest["{name}"] = __field{#}.convert(value, record);\n',"<tpl else>",' dest["{name}"] = value;\n',"</tpl>"," }\n","</tpl>","</tpl>",'<tpl if="clientIdProp">',' if (record && (internalId = {[ this.createFieldAccessExpression({mapping: values.clientIdProp}, null, "source") ]})) {\n',' record.{["internalId"]} = internalId;\n'," }\n","</tpl>","};"],buildRecordDataExtractor:function(){var c=this,a=c.model.prototype,b={clientIdProp:a.clientIdProperty,fields:a.fields.items};c.recordDataExtractorTemplate.createFieldAccessExpression=c.accessExpressionFn;return Ext.functionFactory(c.recordDataExtractorTemplate.apply(b)).call(c)},destroyReader:function(){var a=this;delete a.proxy;delete a.model;delete a.convertRecordData;delete a.getId;delete a.getTotal;delete a.getSuccess;delete a.getMessage}},function(){var a=this.prototype;Ext.apply(a,{nullResultSet:new Ext.data.ResultSet({total:0,count:0,records:[],success:true}),recordDataExtractorTemplate:new Ext.XTemplate(a.recordDataExtractorTemplate)})});Ext.define("Ext.data.reader.Json",{extend:"Ext.data.reader.Reader",alternateClassName:"Ext.data.JsonReader",alias:"reader.json",root:"",useSimpleAccessors:false,readRecords:function(a){if(a.metaData){this.onMetaChange(a.metaData)}this.jsonData=a;return this.callParent([a])},getResponseData:function(a){var d,b;try{d=Ext.decode(a.responseText);return this.readRecords(d)}catch(c){b=new Ext.data.ResultSet({total:0,count:0,records:[],success:false,message:c.message});this.fireEvent("exception",this,a,b);Ext.Logger.warn("Unable to parse the JSON returned by the server");return b}},buildExtractors:function(){var a=this;a.callParent(arguments);if(a.root){a.getRoot=a.createAccessor(a.root)}else{a.getRoot=function(b){return b}}},extractData:function(a){var e=this.record,d=[],c,b;if(e){c=a.length;if(!c&&Ext.isObject(a)){c=1;a=[a]}for(b=0;b<c;b++){d[b]=a[b][e]}}else{d=a}return this.callParent([d])},createAccessor:(function(){var a=/[\[\.]/;return function(c){if(Ext.isEmpty(c)){return Ext.emptyFn}if(Ext.isFunction(c)){return c}if(this.useSimpleAccessors!==true){var b=String(c).search(a);if(b>=0){return Ext.functionFactory("obj","return obj"+(b>0?".":"")+c)}}return function(d){return d[c]}}}()),createFieldAccessExpression:(function(){var a=/[\[\.]/;return function(i,d,c){var e=this,g=(i.mapping!==null),h=g?i.mapping:i.name,b,j;if(typeof h==="function"){b=d+".mapping("+c+", this)"}else{if(this.useSimpleAccessors===true||((j=String(h).search(a))<0)){if(!g||isNaN(h)){h='"'+h+'"'}b=c+"["+h+"]"}else{b=c+(j>0?".":"")+h}}return b}}())});Ext.define("Ext.data.writer.Writer",{alias:"writer.base",alternateClassName:["Ext.data.DataWriter","Ext.data.Writer"],writeAllFields:true,nameProperty:"name",isWriter:true,constructor:function(a){Ext.apply(this,a)},write:function(e){var c=e.operation,b=c.records||[],a=b.length,d=0,g=[];for(;d<a;d++){g.push(this.getRecordData(b[d],c))}return this.writeRecords(e,g)},getRecordData:function(g,d){var n=g.phantom===true,b=this.writeAllFields||n,c=this.nameProperty,h=g.fields,p=h.items,e={},l=g.clientIdProperty,k,a,j,o,m,i,q;if(b){q=p.length;for(i=0;i<q;i++){j=p[i];if(j.persist){a=j[c]||j.name;m=g.get(j.name);if(j.serialize){e[a]=j.serialize(m,g)}else{if(j.type===Ext.data.Types.DATE&&j.dateFormat){e[a]=Ext.Date.format(m,j.dateFormat)}else{e[a]=m}}}}}else{k=g.getChanges();for(o in k){if(k.hasOwnProperty(o)){j=h.get(o);if(j.persist){a=j[c]||j.name;m=g.get(j.name);if(j.serialize){e[a]=j.serialize(m,g)}else{if(j.type===Ext.data.Types.DATE&&j.dateFormat){e[a]=Ext.Date.format(m,j.dateFormat)}else{e[a]=m}}}}}}if(n){if(l&&d&&d.records.length>1){e[l]=g.internalId}}else{e[g.idProperty]=g.getId()}return e}});Ext.define("Ext.data.writer.Json",{extend:"Ext.data.writer.Writer",alternateClassName:"Ext.data.JsonWriter",alias:"writer.json",root:undefined,encode:false,allowSingle:true,writeRecords:function(b,c){var a=this.root;if(this.allowSingle&&c.length==1){c=c[0]}if(this.encode){if(a){b.params[a]=Ext.encode(c)}else{}}else{b.jsonData=b.jsonData||{};if(a){b.jsonData[a]=c}else{b.jsonData=c}}return b}});Ext.define("Ext.data.proxy.Server",{extend:"Ext.data.proxy.Proxy",alias:"proxy.server",alternateClassName:"Ext.data.ServerProxy",uses:["Ext.data.Request"],pageParam:"page",startParam:"start",limitParam:"limit",groupParam:"group",groupDirectionParam:"groupDir",sortParam:"sort",filterParam:"filter",directionParam:"dir",simpleSortMode:false,simpleGroupMode:false,noCache:true,cacheString:"_dc",timeout:30000,constructor:function(a){var b=this;a=a||{};b.callParent([a]);b.extraParams=a.extraParams||{};b.api=Ext.apply({},a.api||b.api);b.nocache=b.noCache},create:function(){return this.doRequest.apply(this,arguments)},read:function(){return this.doRequest.apply(this,arguments)},update:function(){return this.doRequest.apply(this,arguments)},destroy:function(){return this.doRequest.apply(this,arguments)},setExtraParam:function(a,b){this.extraParams[a]=b},buildRequest:function(a){var c=this,d=Ext.applyIf(a.params||{},c.extraParams||{}),b;d=Ext.applyIf(d,c.getParams(a));if(a.id!==undefined&&d.id===undefined){d.id=a.id}b=new Ext.data.Request({params:d,action:a.action,records:a.records,operation:a,url:a.url,proxy:c});b.url=c.buildUrl(b);a.request=b;return b},processResponse:function(h,a,c,b,g,i){var e=this,d,j;if(h===true){d=e.getReader();d.applyDefaults=a.action==="read";j=d.read(e.extractResponseData(b));if(j.success!==false){Ext.apply(a,{response:b,resultSet:j});a.commitRecords(j.records);a.setCompleted();a.setSuccessful()}else{a.setException(j.message);e.fireEvent("exception",this,b,a)}}else{e.setException(a,b);e.fireEvent("exception",this,b,a)}if(typeof g=="function"){g.call(i||e,a)}e.afterRequest(c,h)},setException:function(b,a){b.setException({status:a.status,statusText:a.statusText})},extractResponseData:function(a){return a},applyEncoding:function(a){return Ext.encode(a)},encodeSorters:function(d){var b=[],c=d.length,a=0;for(;a<c;a++){b[a]={property:d[a].property,direction:d[a].direction}}return this.applyEncoding(b)},encodeFilters:function(d){var b=[],c=d.length,a=0;for(;a<c;a++){b[a]={property:d[a].property,value:d[a].value}}return this.applyEncoding(b)},getParams:function(n){var u=this,t={},q=Ext.isDefined,r=n.groupers,a=n.sorters,l=n.filters,i=n.page,h=n.start,s=n.limit,j=u.simpleSortMode,d=u.simpleGroupMode,p=u.pageParam,g=u.startParam,b=u.limitParam,c=u.groupParam,k=u.groupDirectionParam,e=u.sortParam,o=u.filterParam,m=u.directionParam;if(p&&q(i)){t[p]=i}if(g&&q(h)){t[g]=h}if(b&&q(s)){t[b]=s}if(c&&r&&r.length>0){if(d){t[c]=r[0].property;t[k]=r[0].direction||"ASC"}else{t[c]=u.encodeSorters(r)}}if(e&&a&&a.length>0){if(j){t[e]=a[0].property;t[m]=a[0].direction}else{t[e]=u.encodeSorters(a)}}if(o&&l&&l.length>0){t[o]=u.encodeFilters(l)}return t},buildUrl:function(c){var b=this,a=b.getUrl(c);if(b.noCache){a=Ext.urlAppend(a,Ext.String.format("{0}={1}",b.cacheString,Ext.Date.now()))}return a},getUrl:function(a){return a.url||this.api[a.action]||this.url},doRequest:function(a,c,b){},afterRequest:Ext.emptyFn,onDestroy:function(){Ext.destroy(this.reader,this.writer)}});Ext.define("Ext.data.proxy.Ajax",{requires:["Ext.util.MixedCollection","Ext.Ajax"],extend:"Ext.data.proxy.Server",alias:"proxy.ajax",alternateClassName:["Ext.data.HttpProxy","Ext.data.AjaxProxy"],actionMethods:{create:"POST",read:"GET",update:"POST",destroy:"POST"},doRequest:function(a,e,b){var d=this.getWriter(),c=this.buildRequest(a,e,b);if(a.allowWrite()){c=d.write(c)}Ext.apply(c,{headers:this.headers,timeout:this.timeout,scope:this,callback:this.createRequestCallback(c,a,e,b),method:this.getMethod(c),disableCaching:false});Ext.Ajax.request(c);return c},getMethod:function(a){return this.actionMethods[a.action]},createRequestCallback:function(d,a,e,b){var c=this;return function(h,i,g){c.processResponse(i,a,d,g,e,b)}}},function(){Ext.data.HttpProxy=this});Ext.define("Ext.data.proxy.Client",{extend:"Ext.data.proxy.Proxy",alternateClassName:"Ext.data.ClientProxy",isSynchronous:true,clear:function(){}});Ext.define("Ext.data.proxy.Memory",{extend:"Ext.data.proxy.Client",alias:"proxy.memory",alternateClassName:"Ext.data.MemoryProxy",constructor:function(a){this.callParent([a]);this.setReader(this.reader)},updateOperation:function(b,g,d){var c=0,e=b.getRecords(),a=e.length;for(c;c<a;c++){e[c].commit()}b.setCompleted();b.setSuccessful();Ext.callback(g,d||this,[b])},create:function(){this.updateOperation.apply(this,arguments)},update:function(){this.updateOperation.apply(this,arguments)},destroy:function(){this.updateOperation.apply(this,arguments)},read:function(a,d,b){var c=this;a.resultSet=c.getReader().read(c.data);a.setCompleted();a.setSuccessful();Ext.callback(d,b||c,[a])},clear:Ext.emptyFn});Ext.define("Ext.util.LruCache",{extend:"Ext.util.HashMap",constructor:function(a){Ext.apply(this,a);this.callParent([a])},add:function(b,e){var d=this,a=d.findKey(e),c;if(a){d.unlinkEntry(c=d.map[a]);c.prev=d.last;c.next=null}else{c={prev:d.last,next:null,key:b,value:e}}if(d.last){d.last.next=c}else{d.first=c}d.last=c;d.callParent([b,c]);d.prune();return e},insertBefore:function(b,g,c){var e=this,a,d;if(c=this.map[this.findKey(c)]){a=e.findKey(g);if(a){e.unlinkEntry(d=e.map[a])}else{d={prev:c.prev,next:c,key:b,value:g}}if(c.prev){d.prev.next=d}else{e.first=d}d.next=c;c.prev=d;e.prune();return g}else{return e.add(b,g)}},get:function(a){var b=this.map[a];if(b){if(b.next){this.moveToEnd(b)}return b.value}},removeAtKey:function(a){this.unlinkEntry(this.map[a]);return this.callParent(arguments)},clear:function(a){this.first=this.last=null;return this.callParent(arguments)},unlinkEntry:function(a){if(a){if(a.next){a.next.prev=a.prev}else{this.last=a.prev}if(a.prev){a.prev.next=a.next}else{this.first=a.next}a.prev=a.next=null}},moveToEnd:function(a){this.unlinkEntry(a);if(a.prev=this.last){this.last.next=a}else{this.first=a}this.last=a},getArray:function(c){var a=[],b=this.first;while(b){a.push(c?b.key:b.value);b=b.next}return a},each:function(c,b,a){var g=this,e=a?g.last:g.first,d=g.length;b=b||g;while(e){if(c.call(b,e.key,e.value,d)===false){break}e=a?e.prev:e.next}return g},findKey:function(b){var a,c=this.map;for(a in c){if(c.hasOwnProperty(a)&&c[a].value===b){return a}}return undefined},prune:function(){var a=this,b=a.maxSize?(a.length-a.maxSize):0;if(b>0){for(;a.first&&b;b--){a.removeAtKey(a.first.key)}}}});Ext.define("Ext.data.Store",{extend:"Ext.data.AbstractStore",alias:"store.store",requires:["Ext.data.StoreManager","Ext.data.Model","Ext.data.proxy.Ajax","Ext.data.proxy.Memory","Ext.data.reader.Json","Ext.data.writer.Json","Ext.util.LruCache"],uses:["Ext.ModelManager","Ext.util.Grouper"],remoteSort:false,remoteFilter:false,remoteGroup:false,groupField:undefined,groupDir:"ASC",trailingBufferZone:25,leadingBufferZone:200,pageSize:undefined,currentPage:1,clearOnPageLoad:true,loading:false,sortOnFilter:true,buffered:false,purgePageCount:5,clearRemovedOnLoad:true,defaultPageSize:25,addRecordsOptions:{addRecords:true},statics:{recordIdFn:function(a){return a.internalId},recordIndexFn:function(a){return a.index}},onClassExtended:function(b,d,a){var c=d.model,e;if(typeof c=="string"){e=a.onBeforeCreated;a.onBeforeCreated=function(){var h=this,g=arguments;Ext.require(c,function(){e.apply(h,g)})}}},constructor:function(b){b=Ext.Object.merge({},b);var d=this,g=b.groupers||d.groupers,a=b.groupField||d.groupField,c,e;e=b.data||d.data;d.data=new Ext.util.MixedCollection(false,Ext.data.Store.recordIdFn);if(e){d.inlineData=e;delete b.data}if(!g&&a){g=[{property:a,direction:b.groupDir||d.groupDir}]}delete b.groupers;d.groupers=new Ext.util.MixedCollection();d.groupers.addAll(d.decodeGroupers(g));this.callParent([b]);if(d.buffered){d.pageMap=new d.PageMap({pageSize:d.pageSize,maxSize:d.purgePageCount,listeners:{clear:d.cancelAllPrefetches,scope:d}});d.pageRequests={};d.sortOnLoad=false;d.filterOnLoad=false}if(d.remoteGroup){d.remoteSort=true}if(d.groupers.items.length&&!d.remoteGroup){d.sort(d.groupers.items,"prepend",false)}c=d.proxy;e=d.inlineData;if(!d.buffered&&!d.pageSize){d.pageSize=d.defaultPageSize}if(e){if(c instanceof Ext.data.proxy.Memory){c.data=e;d.read()}else{d.add.apply(d,[e])}d.sort();delete d.inlineData}else{if(d.autoLoad){Ext.defer(d.load,10,d,[typeof d.autoLoad==="object"?d.autoLoad:undefined])}}},destroyStore:function(){this.callParent(arguments);if(this.pageMap){this.pageMap.clear()}},onBeforeSort:function(){var a=this.groupers;if(a.getCount()>0){this.sort(a.items,"prepend",false)}},decodeGroupers:function(e){if(!Ext.isArray(e)){if(e===undefined){e=[]}else{e=[e]}}var d=e.length,g=Ext.util.Grouper,b,c,a=[];for(c=0;c<d;c++){b=e[c];if(!(b instanceof g)){if(Ext.isString(b)){b={property:b}}b=Ext.apply({root:"data",direction:"ASC"},b);if(b.fn){b.sorterFn=b.fn}if(typeof b=="function"){b={sorterFn:b}}a.push(new g(b))}else{a.push(b)}}return a},group:function(e,g){var d=this,c=false,b,a;if(Ext.isArray(e)){a=e}else{if(Ext.isObject(e)){a=[e]}else{if(Ext.isString(e)){b=d.groupers.get(e);if(!b){b={property:e,direction:g};a=[b]}else{if(g===undefined){b.toggle()}else{b.setDirection(g)}}}}}if(a&&a.length){c=true;a=d.decodeGroupers(a);d.groupers.clear();d.groupers.addAll(a)}if(d.remoteGroup){if(d.buffered){d.pageMap.clear();d.loadPage(1,{groupChange:true})}else{d.load({scope:d,callback:d.fireGroupChange})}}else{d.sort(null,null,null,c);d.fireGroupChange()}},clearGrouping:function(){var d=this,e=d.groupers.items,c=e.length,a,b;for(b=0;b<c;b++){a=e[b];d.sorters.remove(a)}d.groupers.clear();if(d.remoteGroup){if(d.buffered){d.pageMap.clear();d.loadPage(1,{groupChange:true})}else{d.load({scope:d,callback:d.fireGroupChange})}}else{d.sort();d.fireGroupChange()}},isGrouped:function(){return this.groupers.getCount()>0},fireGroupChange:function(){this.fireEvent("groupchange",this,this.groupers)},getGroups:function(b){var d=this.data.items,a=d.length,c=[],k={},g,h,j,e;for(e=0;e<a;e++){g=d[e];h=this.getGroupString(g);j=k[h];if(j===undefined){j={name:h,children:[]};c.push(j);k[h]=j}j.children.push(g)}return b?k[b]:c},getGroupsForGrouper:function(g,b){var d=g.length,e=[],a,c,j,k,h;for(h=0;h<d;h++){j=g[h];c=b.getGroupString(j);if(c!==a){k={name:c,grouper:b,records:[]};e.push(k)}k.records.push(j);a=c}return e},getGroupsForGrouperIndex:function(c,j){var g=this,h=g.groupers,b=h.getAt(j),a=g.getGroupsForGrouper(c,b),e=a.length,d;if(j+1<h.length){for(d=0;d<e;d++){a[d].children=g.getGroupsForGrouperIndex(a[d].records,j+1)}}for(d=0;d<e;d++){a[d].depth=j}return a},getGroupData:function(a){var b=this;if(a!==false){b.sort()}return b.getGroupsForGrouperIndex(b.data.items,0)},getGroupString:function(a){var b=this.groupers.first();if(b){return a.get(b.property)}return""},insert:function(d,c){var h=this,g=false,e,b,a;c=[].concat(c);for(e=0,a=c.length;e<a;e++){b=h.createModel(c[e]);b.set(h.modelDefaults);c[e]=b;h.data.insert(d+e,b);b.join(h);g=g||b.phantom===true}if(h.snapshot){h.snapshot.addAll(c)}if(h.requireSort){h.suspendEvents();h.sort();h.resumeEvents()}h.fireEvent("add",h,c,d);h.fireEvent("datachanged",h);if(h.autoSync&&g&&!h.autoSyncSuspended){h.sync()}},add:function(b){if(!Ext.isArray(b)){b=Array.prototype.slice.apply(arguments)}else{b=b.slice(0)}var e=this,c=0,d=b.length,a,g=!e.remoteSort&&e.sorters&&e.sorters.items.length;if(g&&d===1){return[e.addSorted(e.createModel(b[0]))]}for(;c<d;c++){a=e.createModel(b[c]);b[c]=a}if(g){e.requireSort=true}e.insert(e.data.length,b);delete e.requireSort;return b},addSorted:function(a){var c=this,b=c.data.findInsertionIndex(a,c.generateComparator());c.insert(b,a);return a},createModel:function(a){if(!a.isModel){a=Ext.ModelManager.create(a,this.model)}return a},each:function(e,c){var g=this.data.items,b=g.length,a,h;for(h=0;h<b;h++){a=g[h];if(e.call(c||a,a,h,b)===false){break}}},remove:function(c,k){if(!Ext.isArray(c)){c=[c]}k=k===true;var h=this,j=false,d=0,a=c.length,b,g,e;for(;d<a;d++){e=c[d];g=h.data.indexOf(e);if(h.snapshot){h.snapshot.remove(e)}if(g>-1){b=e.phantom!==true;if(!k&&b){e.removedFrom=g;h.removed.push(e)}e.unjoin(h);h.data.remove(e);j=j||b;h.fireEvent("remove",h,e,g)}}h.fireEvent("datachanged",h);if(!k&&h.autoSync&&j&&!h.autoSyncSuspended){h.sync()}},removeAt:function(b){var a=this.getAt(b);if(a){this.remove(a)}},load:function(a){var b=this;a=a||{};if(typeof a=="function"){a={callback:a}}a.groupers=a.groupers||b.groupers.items;a.page=a.page||b.currentPage;a.start=(a.start!==undefined)?a.start:(a.page-1)*b.pageSize;a.limit=a.limit||b.pageSize;a.addRecords=a.addRecords||false;if(b.buffered){return b.loadToPrefetch(a)}return b.callParent([a])},reload:function(l){var g=this,h,b,e,k,d,a,j,c;if(!l){l={}}if(g.buffered){delete g.totalCount;a=function(){if(g.rangeCached(h,b)){g.loading=false;g.pageMap.un("pageAdded",a);c=g.pageMap.getRange(h,b);g.loadRecords(c,{start:h});g.fireEvent("load",g,c,true)}};j=Math.ceil((g.leadingBufferZone+g.trailingBufferZone)/2);h=l.start||g.getAt(0).index;b=h+(l.count||g.getCount())-1;e=g.getPageFromRecordIndex(Math.max(h-j,0));k=g.getPageFromRecordIndex(b+j);g.pageMap.clear(true);if(g.fireEvent("beforeload",g,l)!==false){g.loading=true;for(d=e;d<=k;d++){g.prefetchPage(d,l)}g.pageMap.on("pageAdded",a)}}else{return g.callParent(arguments)}},onProxyLoad:function(b){var d=this,c=b.getResultSet(),a=b.getRecords(),e=b.wasSuccessful();if(c){d.totalCount=c.total}if(e){d.loadRecords(a,b)}d.loading=false;if(d.hasListeners.load){d.fireEvent("load",d,a,e)}if(d.hasListeners.read){d.fireEvent("read",d,a,e)}Ext.callback(b.callback,b.scope||d,[a,b,e])},getNewRecords:function(){return this.data.filterBy(this.filterNew).items},getUpdatedRecords:function(){return this.data.filterBy(this.filterUpdated).items},filter:function(e,g){if(Ext.isString(e)){e={property:e,value:g}}var d=this,a=d.decodeFilters(e),b=0,h=d.sorters.length&&d.sortOnFilter&&!d.remoteSort,c=a.length;for(;b<c;b++){d.filters.replace(a[b])}if(d.remoteFilter){delete d.totalCount;if(d.buffered){d.pageMap.clear();d.loadPage(1)}else{d.currentPage=1;d.load()}}else{if(d.filters.getCount()){d.snapshot=d.snapshot||d.data.clone();d.data=d.data.filter(d.filters.items);if(h){d.sort()}else{d.fireEvent("datachanged",d);d.fireEvent("refresh",d)}}}},clearFilter:function(a){var b=this;b.filters.clear();if(b.remoteFilter){if(a){return}delete b.totalCount;if(b.buffered){b.pageMap.clear();b.loadPage(1)}else{b.currentPage=1;b.load()}}else{if(b.isFiltered()){b.data=b.snapshot.clone();delete b.snapshot;if(a!==true){b.fireEvent("datachanged",b);b.fireEvent("refresh",b)}}}},isFiltered:function(){var a=this.snapshot;return !!a&&a!==this.data},filterBy:function(b,a){var c=this;c.snapshot=c.snapshot||c.data.clone();c.data=c.queryBy(b,a||c);c.fireEvent("datachanged",c);c.fireEvent("refresh",c)},queryBy:function(b,a){var c=this,d=c.snapshot||c.data;return d.filterBy(b,a||c)},query:function(h,g,i,a,e){var d=this,b=d.createFilterFn(h,g,i,a,e),c=d.queryBy(b);if(!c){c=new Ext.util.MixedCollection()}return c},loadData:function(j,a){var h=this,c=h.model,g=j.length,e=[],d,b;for(d=0;d<g;d++){b=j[d];if(!(b.isModel)){b=Ext.ModelManager.create(b,c)}e.push(b)}h.loadRecords(e,a?h.addRecordsOptions:undefined)},loadRawData:function(e,b){var d=this,a=d.proxy.reader.read(e),c=a.records;if(a.success){d.totalCount=a.total;d.loadRecords(c,b?d.addRecordsOptions:undefined);d.fireEvent("load",d,c,true)}},loadRecords:function(b,c){var h=this,d=0,g=b.length,j,e,a=h.snapshot;if(c){j=c.start;e=c.addRecords}if(!e){delete h.snapshot;h.clearData(true)}else{if(a){a.addAll(b)}}h.data.addAll(b);if(j!==undefined){for(;d<g;d++){b[d].index=j+d;b[d].join(h)}}else{for(;d<g;d++){b[d].join(h)}}h.suspendEvents();if(h.filterOnLoad&&!h.remoteFilter){h.filter()}if(h.sortOnLoad&&!h.remoteSort){h.sort(undefined,undefined,undefined,true)}h.resumeEvents();h.fireEvent("datachanged",h);h.fireEvent("refresh",h)},loadPage:function(c,a){var b=this;b.currentPage=c;a=Ext.apply({page:c,start:(c-1)*b.pageSize,limit:b.pageSize,addRecords:!b.clearOnPageLoad},a);if(b.buffered){return b.loadToPrefetch(a)}b.read(a)},nextPage:function(a){this.loadPage(this.currentPage+1,a)},previousPage:function(a){this.loadPage(this.currentPage-1,a)},clearData:function(d){var c=this,a=c.data.items,b=a.length;while(b--){a[b].unjoin(c)}c.data.clear();if(d!==true||c.clearRemovedOnLoad){c.removed.length=0}},loadToPrefetch:function(l){var h=this,d,b,j=l.start,a=l.start+l.limit-1,e=l.start+(h.viewSize||l.limit)-1,g=h.getPageFromRecordIndex(Math.max(j-h.trailingBufferZone,0)),k=h.getPageFromRecordIndex(a+h.leadingBufferZone),c=function(){if(h.rangeCached(j,e)){h.loading=false;b=h.pageMap.getRange(j,e);h.pageMap.un("pageAdded",c);if(h.hasListeners.guaranteedrange){h.guaranteeRange(j,e,l.callback,l.scope)}else{h.loadRecords(b,{start:j})}h.fireEvent("load",h,b,true);if(l.groupChange){h.fireGroupChange()}}};if(h.fireEvent("beforeload",h,l)!==false){delete h.totalCount;h.loading=true;h.pageMap.on("pageAdded",c);h.on("prefetch",function(){for(d=g+1;d<=k;++d){h.prefetchPage(d,l)}},null,{single:true});h.prefetchPage(g,l)}},prefetch:function(c){var e=this,a=e.pageSize,d,b;if(a){if(e.lastPageSize&&a!=e.lastPageSize){Ext.error.raise("pageSize cannot be dynamically altered")}if(!e.pageMap.pageSize){e.pageMap.pageSize=a}}else{e.pageSize=e.pageMap.pageSize=a=c.limit}e.lastPageSize=a;if(!c.page){c.page=e.getPageFromRecordIndex(c.start);c.start=(c.page-1)*a;c.limit=Math.ceil(c.limit/a)*a}if(!e.pageRequests[c.page]){c=Ext.apply({action:"read",filters:e.filters.items,sorters:e.sorters.items,groupers:e.groupers.items,generation:e.pageMap.generation},c);b=new Ext.data.Operation(c);if(e.fireEvent("beforeprefetch",e,b)!==false){e.loading=true;d=e.proxy;e.pageRequests[c.page]=d.read(b,e.onProxyPrefetch,e);if(d.isSynchronous){delete e.pageRequests[c.page]}}}return e},cancelAllPrefetches:function(){var c=this,a=c.pageRequests,b,d;if(c.pageMap.events.pageadded){c.pageMap.events.pageadded.clearListeners()}for(d in a){if(a.hasOwnProperty(d)){b=a[d];delete a[d];delete b.callback}}},prefetchPage:function(e,b){var d=this,a=d.pageSize||d.defaultPageSize,g=(e-1)*d.pageSize,c=d.totalCount;if(c!==undefined&&d.getCount()===c){return}d.prefetch(Ext.applyIf({page:e,start:g,limit:a},b))},onProxyPrefetch:function(b){var d=this,c=b.getResultSet(),a=b.getRecords(),g=b.wasSuccessful(),e=b.page;if(b.generation===d.pageMap.generation){if(c){d.totalCount=c.total;d.fireEvent("totalcountchange",d.totalCount)}if(e!==undefined){delete d.pageRequests[e]}if(g){d.cachePage(a,b.page)}d.loading=false;d.fireEvent("prefetch",d,a,g,b);Ext.callback(b.callback,b.scope||d,[a,b,g])}},cachePage:function(a,c){var b=this;if(!Ext.isDefined(b.totalCount)){b.totalCount=a.length;b.fireEvent("totalcountchange",b.totalCount)}b.pageMap.addPage(c,a)},rangeCached:function(b,a){return this.pageMap&&this.pageMap.hasRange(b,a)},pageCached:function(a){return this.pageMap&&this.pageMap.hasPage(a)},rangeSatisfied:function(b,a){return this.rangeCached(b,a)},getPageFromRecordIndex:function(a){return Math.floor(a/this.pageSize)+1},onGuaranteedRange:function(d){var e=this,b=e.getTotalCount(),g=d.prefetchStart,a=((b-1)<d.prefetchEnd)?b-1:d.prefetchEnd,c;a=Math.max(0,a);c=e.pageMap.getRange(g,a);e.fireEvent("guaranteedrange",c,g,a);if(d.cb){d.cb.call(d.scope||e,c,g,a)}},prefetchRange:function(g,b){var d=this,c,a,e;if(!d.rangeCached(g,b)){c=d.getPageFromRecordIndex(g);a=d.getPageFromRecordIndex(b);d.pageMap.maxSize=d.purgePageCount?(a-c+1)+d.purgePageCount:0;for(e=c;e<=a;e++){if(!d.pageCached(e)){d.prefetchPage(e)}}}},guaranteeRange:function(i,c,a,g){c=(c>this.totalCount)?this.totalCount-1:c;var h=this,e=h.lastRequestStart,d={prefetchStart:i,prefetchEnd:c,cb:a,scope:g},b;h.lastRequestStart=i;if(h.rangeCached(i,c)){if(i<e){i=Math.max(i-h.leadingBufferZone,0);c=Math.min(c+h.trailingBufferZone,h.totalCount-1)}else{i=Math.max(Math.min(i-h.trailingBufferZone,h.totalCount-h.pageSize),0);c=Math.min(c+h.leadingBufferZone,h.totalCount-1)}if(!h.rangeCached(i,c)){h.prefetchRange(i,c)}h.onGuaranteedRange(d)}else{h.fireEvent("cachemiss",h,i,c);i=Math.min(Math.max(Math.floor(i-((h.leadingBufferZone+h.trailingBufferZone)/2)),0),h.totalCount-h.pageSize);c=Math.min(Math.max(Math.ceil(c+((h.leadingBufferZone+h.trailingBufferZone)/2)),0),h.totalCount-1);b=function(k,j){if(h.rangeCached(d.prefetchStart,d.prefetchEnd)){h.fireEvent("cachefilled",h,i,c);h.pageMap.un("pageAdded",b);h.onGuaranteedRange(d)}};h.pageMap.on("pageAdded",b);h.prefetchRange(d.prefetchStart,d.prefetchEnd);h.prefetchRange(i,c)}},sort:function(){var b=this,a=b.pageMap;if(b.buffered){if(b.remoteSort){a.clear();b.callParent(arguments)}else{b.callParent(arguments)}}else{b.callParent(arguments)}},doSort:function(b){var e=this,a,d,c;if(e.remoteSort){if(e.buffered){e.pageMap.clear();e.loadPage(1)}else{e.load()}}else{e.data.sortBy(b);if(!e.buffered){a=e.getRange();d=a.length;for(c=0;c<d;c++){a[c].index=c}}e.fireEvent("datachanged",e);e.fireEvent("refresh",e)}},find:function(e,d,h,g,a,c){var b=this.createFilterFn(e,d,g,a,c);return b?this.data.findIndexBy(b,null,h):-1},findRecord:function(){var b=this,a=b.find.apply(b,arguments);return a!==-1?b.getAt(a):null},createFilterFn:function(d,c,e,a,b){if(Ext.isEmpty(c)){return false}c=this.data.createValueMatcher(c,e,a,b);return function(g){return c.test(g.data[d])}},findExact:function(b,a,c){return this.data.findIndexBy(function(d){return d.isEqual(d.get(b),a)},this,c)},findBy:function(b,a,c){return this.data.findIndexBy(b,a,c)},collect:function(b,a,c){var d=this,e=(c===true&&d.snapshot)?d.snapshot:d.data;return e.collect(b,"data",a)},getCount:function(){return this.data.length||0},getTotalCount:function(){return this.totalCount||0},getAt:function(a){return this.data.getAt(a)},getRange:function(b,a){return this.data.getRange(b,a)},getById:function(a){return(this.snapshot||this.data).findBy(function(b){return b.getId()===a})},indexOf:function(a){return this.data.indexOf(a)},indexOfTotal:function(a){var b=a.index;if(b||b===0){return b}return this.indexOf(a)},indexOfId:function(a){return this.indexOf(this.getById(a))},removeAll:function(a){var b=this;b.clearData();if(b.snapshot){b.snapshot.clear()}if(b.pageMap){b.pageMap.clear()}if(a!==true){b.fireEvent("clear",b)}},first:function(a){var b=this;if(a&&b.isGrouped()){return b.aggregate(function(c){return c.length?c[0]:undefined},b,true)}else{return b.data.first()}},last:function(a){var b=this;if(a&&b.isGrouped()){return b.aggregate(function(d){var c=d.length;return c?d[c-1]:undefined},b,true)}else{return b.data.last()}},sum:function(c,a){var b=this;if(a&&b.isGrouped()){return b.aggregate(b.getSum,b,true,[c])}else{return b.getSum(b.data.items,c)}},getSum:function(b,e){var d=0,c=0,a=b.length;for(;c<a;++c){d+=b[c].get(e)}return d},count:function(a){var b=this;if(a&&b.isGrouped()){return b.aggregate(function(c){return c.length},b,true)}else{return b.getCount()}},min:function(c,a){var b=this;if(a&&b.isGrouped()){return b.aggregate(b.getMin,b,true,[c])}else{return b.getMin(b.data.items,c)}},getMin:function(b,g){var d=1,a=b.length,e,c;if(a>0){c=b[0].get(g)}for(;d<a;++d){e=b[d].get(g);if(e<c){c=e}}return c},max:function(c,a){var b=this;if(a&&b.isGrouped()){return b.aggregate(b.getMax,b,true,[c])}else{return b.getMax(b.data.items,c)}},getMax:function(c,g){var d=1,b=c.length,e,a;if(b>0){a=c[0].get(g)}for(;d<b;++d){e=c[d].get(g);if(e>a){a=e}}return a},average:function(c,a){var b=this;if(a&&b.isGrouped()){return b.aggregate(b.getAverage,b,true,[c])}else{return b.getAverage(b.data.items,c)}},getAverage:function(b,e){var c=0,a=b.length,d=0;if(b.length>0){for(;c<a;++c){d+=b[c].get(e)}return d/a}return 0},aggregate:function(h,k,e,g){g=g||[];if(e&&this.isGrouped()){var a=this.getGroups(),c=0,d=a.length,b={},j;for(;c<d;++c){j=a[c];b[j.name]=h.apply(k||this,[j.children].concat(g))}return b}else{return h.apply(k||this,[this.data.items].concat(g))}},commitChanges:function(){var c=this,d=c.getModifiedRecords(),a=d.length,b=0;for(;b<a;b++){d[b].commit()}c.removed.length=0},filterNewOnly:function(a){return a.phantom===true},getRejectRecords:function(){return Ext.Array.push(this.data.filterBy(this.filterNewOnly).items,this.getUpdatedRecords())},rejectChanges:function(){var c=this,d=c.getRejectRecords(),a=d.length,b=0,e;for(;b<a;b++){e=d[b];e.reject();if(e.phantom){c.remove(e)}}d=c.removed;a=d.length;for(b=0;b<a;b++){e=d[b];c.insert(e.removedFrom||0,e);e.reject()}c.removed.length=0}},function(){Ext.regStore("ext-empty-store",{fields:[],proxy:"memory"});this.prototype.PageMap=new Ext.Class({extend:"Ext.util.LruCache",clear:function(a){this.generation=(this.generation||0)+1;this.callParent(arguments)},getPageFromRecordIndex:this.prototype.getPageFromRecordIndex,addPage:function(b,a){this.add(b,a);this.fireEvent("pageAdded",b,a)},getPage:function(a){return this.get(a)},hasRange:function(d,b){var c=this.getPageFromRecordIndex(d),a=this.getPageFromRecordIndex(b);for(;c<=a;c++){if(!this.hasPage(c)){return false}}return true},hasPage:function(a){return !!this.get(a)},getRange:function(a,b){if(!this.hasRange(a,b)){Ext.Error.raise("PageMap asked for range which it does not have")}var k=this,g=k.getPageFromRecordIndex(a),n=k.getPageFromRecordIndex(b),c=(g-1)*k.pageSize,o=(n*k.pageSize)-1,j=g,p=[],m,h,l,d=0,e;for(;j<=n;j++){if(j==g){m=a-c;l=true}else{m=0;l=false}if(j==n){h=k.pageSize-(o-b);l=true}if(l){Ext.Array.push(p,Ext.Array.slice(k.getPage(j),m,h))}else{Ext.Array.push(p,k.getPage(j))}}for(e=p.length;d<e;d++){p[d].index=a++}return p}})});Ext.define("Ext.data.reader.Array",{extend:"Ext.data.reader.Json",alternateClassName:"Ext.data.ArrayReader",alias:"reader.array",totalProperty:undefined,successProperty:undefined,createFieldAccessExpression:function(e,c,b){var d=(e.mapping==null)?e.originalIndex:e.mapping,a;if(typeof d==="function"){a=c+".mapping("+b+", this)"}else{if(isNaN(d)){d='"'+d+'"'}a=b+"["+d+"]"}return a}});Ext.define("Ext.data.ArrayStore",{extend:"Ext.data.Store",alias:"store.array",requires:["Ext.data.proxy.Memory","Ext.data.reader.Array"],constructor:function(a){a=Ext.apply({proxy:{type:"memory",reader:"array"}},a);this.callParent([a])},loadData:function(e,a){if(this.expandData===true){var d=[],b=0,c=e.length;for(;b<c;b++){d[d.length]=[e[b]]}e=d}this.callParent([e,a])}},function(){Ext.data.SimpleStore=Ext.data.ArrayStore});Ext.define("Ext.data.Batch",{mixins:{observable:"Ext.util.Observable"},autoStart:false,pauseOnException:false,current:-1,total:0,isRunning:false,isComplete:false,hasException:false,constructor:function(a){var b=this;b.mixins.observable.constructor.call(b,a);b.operations=[];b.exceptions=[]},add:function(a){this.total++;a.setBatch(this);this.operations.push(a);return this},start:function(a){var b=this;if(b.isRunning){return b}b.exceptions.length=0;b.hasException=false;b.isRunning=true;return b.runOperation(Ext.isDefined(a)?a:b.current+1)},retry:function(){return this.start(this.current)},runNextOperation:function(){return this.runOperation(this.current+1)},pause:function(){this.isRunning=false;return this},runOperation:function(d){var e=this,c=e.operations,b=c[d],a;if(b===undefined){e.isRunning=false;e.isComplete=true;e.fireEvent("complete",e,c[c.length-1])}else{e.current=d;a=function(g){var h=g.hasException();if(h){e.hasException=true;e.exceptions.push(g);e.fireEvent("exception",e,g)}if(h&&e.pauseOnException){e.pause()}else{g.setCompleted();e.fireEvent("operationcomplete",e,g);e.runNextOperation()}};b.setStarted();e.proxy[b.action](b,a,e)}return e}});Ext.define("Ext.data.BufferStore",{extend:"Ext.data.Store",alias:"store.buffer",sortOnLoad:false,filterOnLoad:false,constructor:function(){Ext.Error.raise("The BufferStore class has been deprecated. Instead, specify the buffered config option on Ext.data.Store")}});Ext.define("Ext.direct.Manager",{singleton:true,mixins:{observable:"Ext.util.Observable"},requires:["Ext.util.MixedCollection"],exceptions:{TRANSPORT:"xhr",PARSE:"parse",LOGIN:"login",SERVER:"exception"},constructor:function(){var a=this;a.addEvents("event","exception");a.transactions=new Ext.util.MixedCollection();a.providers=new Ext.util.MixedCollection();a.mixins.observable.constructor.call(a)},addProvider:function(e){var d=this,b=arguments,c=0,a;if(b.length>1){for(a=b.length;c<a;++c){d.addProvider(b[c])}return}if(!e.isProvider){e=Ext.create("direct."+e.type+"provider",e)}d.providers.add(e);e.on("data",d.onProviderData,d);if(!e.isConnected()){e.connect()}return e},getProvider:function(a){return a.isProvider?a:this.providers.get(a)},removeProvider:function(c){var b=this,a=b.providers;c=c.isProvider?c:a.get(c);if(c){c.un("data",b.onProviderData,b);a.remove(c);return c}return null},addTransaction:function(a){this.transactions.add(a);return a},removeTransaction:function(a){a=this.getTransaction(a);this.transactions.remove(a);return a},getTransaction:function(a){return Ext.isObject(a)?a:this.transactions.get(a)},onProviderData:function(e,d){var c=this,b=0,a;if(Ext.isArray(d)){for(a=d.length;b<a;++b){c.onProviderData(e,d[b])}return}if(d.name&&d.name!="event"&&d.name!="exception"){c.fireEvent(d.name,d)}else{if(d.status===false){c.fireEvent("exception",d)}}c.fireEvent("event",d,e)},parseMethod:function(c){if(Ext.isString(c)){var e=c.split("."),b=0,a=e.length,d=window;while(d&&b<a){d=d[e[b]];++b}c=Ext.isFunction(d)?d:null}return c||null}},function(){Ext.Direct=Ext.direct.Manager});Ext.define("Ext.data.proxy.Direct",{extend:"Ext.data.proxy.Server",alternateClassName:"Ext.data.DirectProxy",alias:"proxy.direct",requires:["Ext.direct.Manager"],paramOrder:undefined,paramsAsHash:true,directFn:undefined,paramOrderRe:/[\s,|]/,constructor:function(b){var e=this,a,d,c;e.callParent(arguments);a=e.paramOrder;if(Ext.isString(a)){e.paramOrder=a.split(e.paramOrderRe)}d=e.directFn;if(d){e.directFn=Ext.direct.Manager.parseMethod(d)}c=e.api;for(d in c){if(c.hasOwnProperty(d)){c[d]=Ext.direct.Manager.parseMethod(c[d])}}},doRequest:function(d,j,k){var h=this,b=h.getWriter(),e=h.buildRequest(d,j,k),i=h.api[e.action]||h.directFn,c=e.params,g=[],a;if(d.allowWrite()){e=b.write(e)}if(d.action=="read"){a=i.directCfg.method;g=a.getArgs(c,h.paramOrder,h.paramsAsHash)}else{g.push(e.jsonData)}Ext.apply(e,{args:g,directFn:i});g.push(h.createRequestCallback(e,d,j,k),h);i.apply(window,g)},applyEncoding:function(a){return a},createRequestCallback:function(d,a,e,b){var c=this;return function(h,g){c.processResponse(g.status,a,d,g,e,b)}},extractResponseData:function(a){return Ext.isDefined(a.result)?a.result:a.data},setException:function(b,a){b.setException(a.message)},buildUrl:function(){return""}});Ext.define("Ext.data.DirectStore",{extend:"Ext.data.Store",alias:"store.direct",requires:["Ext.data.proxy.Direct"],constructor:function(a){a=Ext.apply({},a);if(!a.proxy){var b={type:"direct",reader:{type:"json"}};Ext.copyTo(b,a,"paramOrder,paramsAsHash,directFn,api,simpleSortMode");Ext.copyTo(b.reader,a,"totalProperty,root,idProperty");a.proxy=b}this.callParent([a])}});Ext.define("Ext.data.JsonP",{singleton:true,requestCount:0,requests:{},timeout:30000,disableCaching:true,disableCachingParam:"_dc",callbackKey:"callback",request:function(n){n=Ext.apply({},n);var j=this,d=Ext.isDefined(n.disableCaching)?n.disableCaching:j.disableCaching,h=n.disableCachingParam||j.disableCachingParam,c=++j.requestCount,l=n.callbackName||"callback"+c,i=n.callbackKey||j.callbackKey,m=Ext.isDefined(n.timeout)?n.timeout:j.timeout,e=Ext.apply({},n.params),b=n.url,a=Ext.name,g,k;e[i]=a+".data.JsonP."+l;if(d){e[h]=new Date().getTime()}k=j.createScript(b,e,n);j.requests[c]=g={url:b,params:e,script:k,id:c,scope:n.scope,success:n.success,failure:n.failure,callback:n.callback,callbackKey:i,callbackName:l};if(m>0){g.timeout=setTimeout(Ext.bind(j.handleTimeout,j,[g]),m)}j.setupErrorHandling(g);j[l]=Ext.bind(j.handleResponse,j,[g],true);j.loadScript(g);return g},abort:function(c){var b=this,d=b.requests,a;if(c){if(!c.id){c=d[c]}b.handleAbort(c)}else{for(a in d){if(d.hasOwnProperty(a)){b.abort(d[a])}}}},setupErrorHandling:function(a){a.script.onerror=Ext.bind(this.handleError,this,[a])},handleAbort:function(a){a.errorType="abort";this.handleResponse(null,a)},handleError:function(a){a.errorType="error";this.handleResponse(null,a)},cleanupErrorHandling:function(a){a.script.onerror=null},handleTimeout:function(a){a.errorType="timeout";this.handleResponse(null,a)},handleResponse:function(a,b){var c=true;if(b.timeout){clearTimeout(b.timeout)}delete this[b.callbackName];delete this.requests[b.id];this.cleanupErrorHandling(b);Ext.fly(b.script).remove();if(b.errorType){c=false;Ext.callback(b.failure,b.scope,[b.errorType])}else{Ext.callback(b.success,b.scope,[a])}Ext.callback(b.callback,b.scope,[c,a,b.errorType])},createScript:function(c,d,b){var a=document.createElement("script");a.setAttribute("src",Ext.urlAppend(c,Ext.Object.toQueryString(d)));a.setAttribute("async",true);a.setAttribute("type","text/javascript");return a},loadScript:function(a){Ext.getHead().appendChild(a.script)}});Ext.define("Ext.data.proxy.JsonP",{extend:"Ext.data.proxy.Server",alternateClassName:"Ext.data.ScriptTagProxy",alias:["proxy.jsonp","proxy.scripttag"],requires:["Ext.data.JsonP"],defaultWriterType:"base",callbackKey:"callback",recordParam:"records",autoAppendParams:true,constructor:function(){this.addEvents("exception");this.callParent(arguments)},doRequest:function(a,h,b){var d=this,e=d.getWriter(),c=d.buildRequest(a),g=c.params;if(a.allowWrite()){c=e.write(c)}Ext.apply(c,{callbackKey:d.callbackKey,timeout:d.timeout,scope:d,disableCaching:false,callback:d.createRequestCallback(c,a,h,b)});if(d.autoAppendParams){c.params={}}c.jsonp=Ext.data.JsonP.request(c);c.params=g;a.setStarted();d.lastRequest=c;return c},createRequestCallback:function(d,a,e,b){var c=this;return function(i,g,h){delete c.lastRequest;c.processResponse(i,a,d,g,e,b)}},setException:function(b,a){b.setException(b.request.jsonp.errorType)},buildUrl:function(h){var g=this,b=g.callParent(arguments),j=Ext.apply({},h.params),e=j.filters,a,d,c;delete j.filters;if(g.autoAppendParams){b=Ext.urlAppend(b,Ext.Object.toQueryString(j))}if(e&&e.length){for(c=0;c<e.length;c++){d=e[c];if(d.value){b=Ext.urlAppend(b,d.property+"="+d.value)}}}a=h.records;if(Ext.isArray(a)&&a.length>0){b=Ext.urlAppend(b,Ext.String.format("{0}={1}",g.recordParam,g.encodeRecords(a)))}return b},destroy:function(){this.abort();this.callParent(arguments)},abort:function(){var a=this.lastRequest;if(a){Ext.data.JsonP.abort(a.jsonp)}},encodeRecords:function(b){var d="",c=0,a=b.length;for(;c<a;c++){d+=Ext.Object.toQueryString(b[c].getData())}return d}});Ext.define("Ext.data.JsonPStore",{extend:"Ext.data.Store",alias:"store.jsonp",requires:["Ext.data.proxy.JsonP","Ext.data.reader.Json"],constructor:function(a){a=Ext.apply({proxy:{type:"jsonp",reader:"json"}},a);this.callParent([a])}});Ext.define("Ext.data.JsonStore",{extend:"Ext.data.Store",alias:"store.json",requires:["Ext.data.proxy.Ajax","Ext.data.reader.Json","Ext.data.writer.Json"],constructor:function(a){a=Ext.apply({proxy:{type:"ajax",reader:"json",writer:"json"}},a);this.callParent([a])}});Ext.define("Ext.data.NodeInterface",{requires:["Ext.data.Field"],statics:{decorate:function(b){var a,c;if(typeof b=="string"){b=Ext.ModelManager.getModel(b)}else{if(b.isModel){b=Ext.ModelManager.getModel(b.modelName)}}if(b.prototype.isNode){return}a=b.prototype.idProperty;idField=b.prototype.fields.get(a);c=b.prototype.fields.get(a).type.type;b.override(this.getPrototypeBody());this.applyFields(b,[{name:"parentId",type:c,defaultValue:null,useNull:idField.useNull},{name:"index",type:"int",defaultValue:null,persist:false},{name:"depth",type:"int",defaultValue:0,persist:false},{name:"expanded",type:"bool",defaultValue:false,persist:false},{name:"expandable",type:"bool",defaultValue:true,persist:false},{name:"checked",type:"auto",defaultValue:null,persist:false},{name:"leaf",type:"bool",defaultValue:false},{name:"cls",type:"string",defaultValue:null,persist:false},{name:"iconCls",type:"string",defaultValue:null,persist:false},{name:"icon",type:"string",defaultValue:null,persist:false},{name:"root",type:"boolean",defaultValue:false,persist:false},{name:"isLast",type:"boolean",defaultValue:false,persist:false},{name:"isFirst",type:"boolean",defaultValue:false,persist:false},{name:"allowDrop",type:"boolean",defaultValue:true,persist:false},{name:"allowDrag",type:"boolean",defaultValue:true,persist:false},{name:"loaded",type:"boolean",defaultValue:false,persist:false},{name:"loading",type:"boolean",defaultValue:false,persist:false},{name:"href",type:"string",defaultValue:null,persist:false},{name:"hrefTarget",type:"string",defaultValue:null,persist:false},{name:"qtip",type:"string",defaultValue:null,persist:false},{name:"qtitle",type:"string",defaultValue:null,persist:false},{name:"children",type:"auto",defaultValue:null,persist:false}])},applyFields:function(c,b){var h=c.prototype,a=h.fields,g=a.keys,e=b.length,j,d;for(d=0;d<e;d++){j=b[d];if(!Ext.Array.contains(g,j.name)){a.add(new Ext.data.Field(j))}}},getPrototypeBody:function(){return{isNode:true,constructor:function(){var a=this;this.callParent(arguments);Ext.applyIf(a,{firstChild:null,lastChild:null,parentNode:null,previousSibling:null,nextSibling:null,childNodes:[]});a.enableBubble(["append","remove","move","insert","beforeappend","beforeremove","beforemove","beforeinsert","expand","collapse","beforeexpand","beforecollapse","sort"]);return a},createNode:function(a){if(Ext.isObject(a)&&!a.isModel){a=Ext.ModelManager.create(a,this.modelName)}if(!a.childNodes){Ext.applyIf(a,{firstChild:null,lastChild:null,parentNode:null,previousSibling:null,nextSibling:null,childNodes:[]})}return a},isLeaf:function(){return this.get("leaf")===true},setFirstChild:function(a){this.firstChild=a},setLastChild:function(a){this.lastChild=a},updateInfo:function(g){var m=this,b=m.isRoot(),k=m.parentNode,d=(!k||b?true:k.firstChild===m),j=(!k||b?true:k.lastChild===m),h=0,n=m,a=m.childNodes,l=a.length,e=0,c=m.phantom;while(n.parentNode){++h;n=n.parentNode}m.beginEdit();m.set({isFirst:d,isLast:j,depth:h,index:k?k.indexOf(m):0,parentId:k?k.getId():null});m.endEdit(true);if(g){m.commit();m.phantom=c}for(e=0;e<l;e++){a[e].updateInfo(g)}},isLast:function(){return this.get("isLast")},isFirst:function(){return this.get("isFirst")},hasChildNodes:function(){return !this.isLeaf()&&this.childNodes.length>0},isExpandable:function(){var a=this;if(a.get("expandable")){return !(a.isLeaf()||(a.isLoaded()&&!a.hasChildNodes()))}return false},triggerUIUpdate:function(){this.afterEdit([])},appendChild:function(b,k,c){var h=this,d,g,e,j,a;if(Ext.isArray(b)){h.callStore("suspendAutoSync");for(d=0,g=b.length-1;d<g;d++){h.appendChild(b[d])}h.callStore("resumeAutoSync");h.appendChild(b[g])}else{b=h.createNode(b);if(k!==true&&(!h.hasListeners.beforeappend||h.fireEvent("beforeappend",h,b)===false)){return false}e=h.childNodes.length;j=b.parentNode;if(j){if(k!==true&&(!h.hasListeners.beforeremove||b.fireEvent("beforemove",b,j,h,e)===false)){return false}j.removeChild(b,false,false,true)}e=h.childNodes.length;if(e===0){h.setFirstChild(b)}h.childNodes.push(b);b.parentNode=h;b.nextSibling=null;h.setLastChild(b);a=h.childNodes[e-1];if(a){b.previousSibling=a;a.nextSibling=b;a.updateInfo(c)}else{b.previousSibling=null}b.updateInfo(c);if(!h.isLoaded()){h.set("loaded",true)}else{if(h.childNodes.length===1){h.triggerUIUpdate()}}if(!b.isLeaf()&&b.phantom){b.set("loaded",true)}if(k!==true){h.fireEvent("append",h,b,e);if(j){b.fireEvent("move",b,j,h,e)}}return b}},getBubbleTarget:function(){return this.parentNode},removeChild:function(j,e,g,b){var h=this,c=h.indexOf(j),d,a;if(c==-1||(g!==true&&(!h.hasListeners.beforeremove||h.fireEvent("beforeremove",h,j,!!b)===false))){return false}Ext.Array.erase(h.childNodes,c,1);if(h.firstChild==j){h.setFirstChild(j.nextSibling)}if(h.lastChild==j){h.setLastChild(j.previousSibling)}if(j.previousSibling){j.previousSibling.nextSibling=j.nextSibling}if(j.nextSibling){j.nextSibling.previousSibling=j.previousSibling}for(d=c>0?c-1:0,a=h.childNodes.length;d<a;d++){h.childNodes[d].updateInfo()}if(!h.childNodes.length){h.triggerUIUpdate()}if(g!==true){if(h.hasListeners.remove){h.fireEvent("remove",h,j,!!b)}}if(e){j.destroy(true)}else{j.clear()}return j},copy:function(d,c){var g=this,b=g.callOverridden(arguments),a=g.childNodes?g.childNodes.length:0,e;if(c){for(e=0;e<a;e++){b.appendChild(g.childNodes[e].copy(true))}}return b},clear:function(a){var b=this;b.parentNode=b.previousSibling=b.nextSibling=null;if(a){b.firstChild=b.lastChild=null}},destroy:function(b){var d=this,c=d.destroyOptions,a=d.childNodes,e=a.length,g;if(b===true){d.clear(true);for(g=0;g<e;g++){a[g].destroy(true)}d.childNodes=null;delete d.destroyOptions;d.callOverridden([c])}else{d.destroyOptions=b;d.remove(true)}},insertBefore:function(b,g,l){var h=this,e=h.indexOf(g),j=b.parentNode,k=e,c,a,d;if(!g){return h.appendChild(b)}if(b==g){return false}b=h.createNode(b);if(l!==true&&(!h.hasListeners.beforeinsert||h.fireEvent("beforeinsert",h,b,g)===false)){return false}if(j==h&&h.indexOf(b)<e){k--}if(j){if(l!==true&&(!h.hasListeners.beforeremove||b.fireEvent("beforemove",b,j,h,e,g)===false)){return false}j.removeChild(b,false,false,true)}if(k===0){h.setFirstChild(b)}Ext.Array.splice(h.childNodes,k,0,b);b.parentNode=h;b.nextSibling=g;g.previousSibling=b;a=h.childNodes[k-1];if(a){b.previousSibling=a;a.nextSibling=b}else{b.previousSibling=null}for(d=k>0?k-1:0,c=h.childNodes.length;d<c;d++){h.childNodes[d].updateInfo()}if(!h.isLoaded()){h.set("loaded",true)}else{if(h.childNodes.length===1){h.triggerUIUpdate()}}if(!b.isLeaf()&&b.phantom){b.set("loaded",true)}if(l!==true){if(h.hasListeners.insert){h.fireEvent("insert",h,b,g)}if(j&&h.hasListeners.move){b.fireEvent("move",b,j,h,k,g)}}return b},insertChild:function(a,c){var b=this.childNodes[a];if(b){return this.insertBefore(c,b)}else{return this.appendChild(c)}},remove:function(b,c){var a=this.parentNode;if(a){a.removeChild(this,b,c)}return this},removeAll:function(a,b){var d=this.childNodes,c;while((c=d[0])){this.removeChild(c,a,b)}return this},getChildAt:function(a){return this.childNodes[a]},replaceChild:function(a,d,c){var b=d?d.nextSibling:null;this.removeChild(d,false,c);this.insertBefore(a,b,c);return d},indexOf:function(a){return Ext.Array.indexOf(this.childNodes,a)},indexOfId:function(d){var c=this.childNodes,a=c.length,b=0;for(;b<a;++b){if(c[b].getId()===d){return b}}return -1},getPath:function(d,c){d=d||this.idProperty;c=c||"/";var b=[this.get(d)],a=this.parentNode;while(a){b.unshift(a.get(d));a=a.parentNode}return c+b.join(c)},getDepth:function(){return this.get("depth")},bubble:function(c,b,a){var d=this;while(d){if(c.apply(b||d,a||[d])===false){break}d=d.parentNode}},cascade:function(){if(Ext.isDefined(Ext.global.console)){Ext.global.console.warn("Ext.data.Node: cascade has been deprecated. Please use cascadeBy instead.")}return this.cascadeBy.apply(this,arguments)},cascadeBy:function(d,c,a){if(d.apply(c||this,a||[this])!==false){var g=this.childNodes,e=g.length,b;for(b=0;b<e;b++){g[b].cascadeBy(d,c,a)}}},eachChild:function(d,c,a){var g=this.childNodes,e=g.length,b;for(b=0;b<e;b++){if(d.apply(c||this,a||[g[b]])===false){break}}},findChild:function(b,c,a){return this.findChildBy(function(){return this.get(b)==c},null,a)},findChildBy:function(h,g,b){var e=this.childNodes,a=e.length,d=0,j,c;for(;d<a;d++){j=e[d];if(h.call(g||j,j)===true){return j}else{if(b){c=j.findChildBy(h,g,b);if(c!==null){return c}}}}return null},contains:function(a){return a.isAncestor(this)},isAncestor:function(a){var b=this.parentNode;while(b){if(b==a){return true}b=b.parentNode}return false},sort:function(g,b,a){var d=this.childNodes,e=d.length,c,h;if(e>0){Ext.Array.sort(d,g);for(c=0;c<e;c++){h=d[c];h.previousSibling=d[c-1];h.nextSibling=d[c+1];if(c===0){this.setFirstChild(h)}if(c==e-1){this.setLastChild(h)}h.updateInfo();if(b&&!h.isLeaf()){h.sort(g,true,true)}}if(a!==true){this.fireEvent("sort",this,d)}}},isExpanded:function(){return this.get("expanded")},isLoaded:function(){return this.get("loaded")},isLoading:function(){return this.get("loading")},isRoot:function(){return !this.parentNode},isVisible:function(){var a=this.parentNode;while(a){if(!a.isExpanded()){return false}a=a.parentNode}return true},expand:function(a,d,b){var c=this;if(!c.isLeaf()){if(c.isLoading()){c.on("expand",function(){c.expand(a,d,b)},c,{single:true})}else{if(!c.isExpanded()){c.fireEvent("beforeexpand",c,function(){c.set("expanded",true);if(c.hasListeners.expand){c.fireEvent("expand",c,c.childNodes,false)}if(a){c.expandChildren(true,d,b)}else{Ext.callback(d,b||c,[c.childNodes])}},c)}else{if(a){c.expandChildren(true,d,b)}else{Ext.callback(d,b||c,[c.childNodes])}}}}else{Ext.callback(d,b||c)}},expandChildren:function(d,j,k){var h=this,e=0,a=h.childNodes,g=a.length,c,b=0;for(;e<g;++e){c=a[e];if(!c.isLeaf()){b++;a[e].expand(d,function(){b--;if(j&&!b){Ext.callback(j,k||h,[h.childNodes])}})}}if(!b&&j){Ext.callback(j,k||h,[h.childNodes])}},collapse:function(a,d,b){var c=this;if(!c.isLeaf()){if(!c.collapsing&&c.isExpanded()){c.fireEvent("beforecollapse",c,function(){c.set("expanded",false);if(c.hasListeners.collapse){c.fireEvent("collapse",c,c.childNodes,false)}if(a){c.collapseChildren(true,d,b)}else{Ext.callback(d,b||c,[c.childNodes])}},c)}else{if(a){c.collapseChildren(true,d,b)}else{Ext.callback(d,b||c,[c.childNodes])}}}else{Ext.callback(d,b||c,[c.childNodes])}},collapseChildren:function(d,j,k){var h=this,e=0,b=h.childNodes,g=b.length,c,a=0;for(;e<g;++e){c=b[e];if(!c.isLeaf()){a++;b[e].collapse(d,function(){a--;if(j&&!a){Ext.callback(j,k||h,[h.childNodes])}})}}if(!a&&j){Ext.callback(j,k||h,[h.childNodes])}}}}}});Ext.define("Ext.data.NodeStore",{extend:"Ext.data.Store",alias:"store.node",requires:["Ext.data.NodeInterface"],node:null,recursive:false,rootVisible:false,constructor:function(a){var c=this,b;a=a||{};Ext.apply(c,a);a.proxy={type:"proxy"};c.callParent([a]);b=c.node;if(b){c.node=null;c.setNode(b)}},setNode:function(b){var a=this;if(a.node&&a.node!=b){a.mun(a.node,{expand:a.onNodeExpand,collapse:a.onNodeCollapse,append:a.onNodeAppend,insert:a.onNodeInsert,remove:a.onNodeRemove,sort:a.onNodeSort,scope:a});a.node=null}if(b){Ext.data.NodeInterface.decorate(b.self);a.removeAll();if(a.rootVisible){a.add(b)}else{if(!b.isExpanded()&&a.treeStore.autoLoad!==false){b.expand()}}a.mon(b,{expand:a.onNodeExpand,collapse:a.onNodeCollapse,append:a.onNodeAppend,insert:a.onNodeInsert,remove:a.onNodeRemove,sort:a.onNodeSort,scope:a});a.node=b;if(b.isExpanded()&&b.isLoaded()){a.onNodeExpand(b,b.childNodes,true)}}},onNodeSort:function(b,c){var a=this;if((a.indexOf(b)!==-1||(b===a.node&&!a.rootVisible)&&b.isExpanded())){a.onNodeCollapse(b,c,true);a.onNodeExpand(b,c,true)}},onNodeExpand:function(g,d,c){var j=this,a=j.indexOf(g)+1,h=d?d.length:0,e,b;if(!j.recursive&&g!==j.node){return}if(g!==this.node&&!j.isVisible(g)){return}if(!c&&j.fireEvent("beforeexpand",g,d,a)===false){return}if(h){j.insert(a,d);for(e=0;e<h;e++){b=d[e];if(b.isExpanded()){if(b.isLoaded()){j.onNodeExpand(b,b.childNodes,true)}else{b.set("expanded",false);b.expand()}}}}if(!c){j.fireEvent("expand",g,d)}},onNodeCollapse:function(g,c,b){var j=this,h=c.length,e=j.indexOf(g)+1,d,a;if(!j.recursive&&g!==j.node){return}if(!b&&j.fireEvent("beforecollapse",g,c,e)===false){return}for(d=0;d<h;d++){a=c[d];j.remove(a);if(a.isExpanded()){j.onNodeCollapse(a,a.childNodes,true)}}if(!b){j.fireEvent("collapse",g,c,e)}},onNodeAppend:function(d,g,b){var e=this,a,c;if(e.isVisible(g)){if(b===0){a=d}else{c=g.previousSibling;while(c.isExpanded()&&c.lastChild){c=c.lastChild}a=c}e.insert(e.indexOf(a)+1,g);if(!g.isLeaf()&&g.isExpanded()){if(g.isLoaded()){e.onNodeExpand(g,g.childNodes,true)}else{g.set("expanded",false);g.expand()}}}},onNodeInsert:function(c,e,a){var d=this,b=this.indexOf(a);if(b!=-1&&d.isVisible(e)){d.insert(b,e);if(!e.isLeaf()&&e.isExpanded()){if(e.isLoaded()){d.onNodeExpand(e,e.childNodes,true)}else{e.set("expanded",false);e.expand()}}}},onNodeRemove:function(b,d,a){var c=this;if(c.indexOf(d)!=-1){if(!d.isLeaf()&&d.isExpanded()){c.onNodeCollapse(d,d.childNodes,true)}c.remove(d)}},isVisible:function(b){var a=b.parentNode;while(a){if(a===this.node&&!this.rootVisible&&a.isExpanded()){return true}if(this.indexOf(a)===-1||!a.isExpanded()){return false}a=a.parentNode}return true}});Ext.define("Ext.data.Request",{action:undefined,params:undefined,method:"GET",url:undefined,constructor:function(a){Ext.apply(this,a)}});Ext.define("Ext.data.SequentialIdGenerator",{extend:"Ext.data.IdGenerator",alias:"idgen.sequential",constructor:function(){var a=this;a.callParent(arguments);a.parts=[a.prefix,""]},prefix:"",seed:1,generate:function(){var a=this,b=a.parts;b[1]=a.seed++;return b.join("")}});Ext.define("Ext.data.Tree",{alias:"data.tree",mixins:{observable:"Ext.util.Observable"},root:null,constructor:function(a){var b=this;b.mixins.observable.constructor.call(b);if(a){b.setRootNode(a)}},getRootNode:function(){return this.root},setRootNode:function(b){var a=this;a.root=b;if(a.fireEvent("beforeappend",null,b)!==false){b.set("root",true);b.updateInfo();b.commit();b.on({scope:a,insert:a.onNodeInsert,append:a.onNodeAppend,remove:a.onNodeRemove});a.relayEvents(b,["append","remove","move","insert","beforeappend","beforeremove","beforemove","beforeinsert","expand","collapse","beforeexpand","beforecollapse","sort","rootchange"]);a.nodeHash={};a.registerNode(b);a.fireEvent("append",null,b);a.fireEvent("rootchange",b)}return b},flatten:function(){return Ext.Object.getValues(this.nodeHash)},onNodeInsert:function(a,b){this.registerNode(b,true)},onNodeAppend:function(a,b){this.registerNode(b,true)},onNodeRemove:function(a,b){this.unregisterNode(b,true)},onNodeIdChanged:function(c,d,a){var b=this.nodeHash;b[a]=c;delete b[d||c.internalId]},getNodeById:function(a){return this.nodeHash[a]},registerNode:function(c,a){var b=this;b.nodeHash[c.getId()||c.internalId]=c;c.on("idchanged",b.onNodeIdChanged,b);if(a===true){c.eachChild(function(d){b.registerNode(d,true)})}},unregisterNode:function(b,a){delete this.nodeHash[b.getId()||b.internalId];if(a===true){b.eachChild(function(c){this.unregisterNode(c,true)},this)}},sort:function(b,a){this.getRootNode().sort(b,a)},filter:function(b,a){this.getRootNode().filter(b,a)}});Ext.define("Ext.data.TreeStore",{extend:"Ext.data.AbstractStore",alias:"store.tree",requires:["Ext.util.Sorter","Ext.data.Tree","Ext.data.NodeInterface"],clearOnLoad:true,clearRemovedOnLoad:true,nodeParam:"node",defaultRootId:"root",defaultRootProperty:"children",rootProperty:"children",folderSort:false,constructor:function(c){var e=this,b,a,d;c=Ext.apply({},c);a=c.fields||e.fields;if(!a){c.fields=[{name:"text",type:"string"}];d=c.defaultRootProperty||e.defaultRootProperty;if(d!==e.defaultRootProperty){c.fields.push({name:d,type:"auto",defaultValue:null,persist:false})}}e.callParent([c]);e.tree=new Ext.data.Tree();e.relayEvents(e.tree,["append","remove","move","insert","beforeappend","beforeremove","beforemove","beforeinsert","expand","collapse","beforeexpand","beforecollapse","sort","rootchange"]);e.tree.on({scope:e,remove:e.onNodeRemove,beforeexpand:e.onBeforeNodeExpand,beforecollapse:e.onBeforeNodeCollapse,append:e.onNodeAdded,insert:e.onNodeAdded,sort:e.onNodeSort});e.onBeforeSort();b=e.root;if(b){delete e.root;e.setRootNode(b)}if(Ext.isDefined(e.nodeParameter)){if(Ext.isDefined(Ext.global.console)){Ext.global.console.warn("Ext.data.TreeStore: nodeParameter has been deprecated. Please use nodeParam instead.")}e.nodeParam=e.nodeParameter;delete e.nodeParameter}},setProxy:function(c){var a,b;if(c instanceof Ext.data.proxy.Proxy){b=Ext.isEmpty(c.getReader().root)}else{if(Ext.isString(c)){b=true}else{a=c.reader;b=!(a&&!Ext.isEmpty(a.root))}}c=this.callParent(arguments);if(b){a=c.getReader();a.root=this.defaultRootProperty;a.buildExtractors(true)}},onBeforeSort:function(){if(this.folderSort){this.sort({property:"leaf",direction:"ASC"},"prepend",false)}},onBeforeNodeExpand:function(b,c,a){if(b.isLoaded()){Ext.callback(c,a||b,[b.childNodes])}else{if(b.isLoading()){this.on("load",function(){Ext.callback(c,a||b,[b.childNodes])},this,{single:true})}else{this.read({node:b,callback:function(){Ext.callback(c,a||b,[b.childNodes])}})}}},getNewRecords:function(){return Ext.Array.filter(this.tree.flatten(),this.filterNew)},getUpdatedRecords:function(){return Ext.Array.filter(this.tree.flatten(),this.filterUpdated)},onBeforeNodeCollapse:function(b,c,a){c.call(a||b,b.childNodes)},onNodeRemove:function(b,d,a){var c=this,e=c.removed;if(!d.isReplace&&Ext.Array.indexOf(e,d)==-1){e.push(d)}if(c.autoSync&&!c.autoSyncSuspended&&!a){c.sync()}},onNodeAdded:function(c,e){var d=this,b=d.getProxy(),a=b.getReader(),g=e.raw||e[e.persistenceProperty],h;Ext.Array.remove(d.removed,e);if(!e.isLeaf()){h=a.getRoot(g);if(h){d.fillNode(e,a.extractData(h));delete g[a.root]}}if(d.autoSync&&!d.autoSyncSuspended&&(e.phantom||e.dirty)){d.sync()}},onNodeSort:function(){if(this.autoSync&&!this.autoSyncSuspended){this.sync()}},setRootNode:function(a,e){var d=this,c=d.model,b=c.prototype.idProperty;a=a||{};if(!a.isModel){Ext.applyIf(a,{id:d.defaultRootId,text:"Root",allowDrag:false});if(a[b]===undefined){a[b]=d.defaultRootId}Ext.data.NodeInterface.decorate(c);a=Ext.ModelManager.create(a,c)}else{if(a.isModel&&!a.isNode){Ext.data.NodeInterface.decorate(c)}}d.getProxy().getReader().buildExtractors(true);d.tree.setRootNode(a);if(e!==true&&!a.isLoaded()&&(d.autoLoad===true||a.isExpanded())){d.load({node:a})}return a},getRootNode:function(){return this.tree.getRootNode()},getNodeById:function(a){return this.tree.getNodeById(a)},getById:function(a){return this.getNodeById(a)},load:function(a){a=a||{};a.params=a.params||{};var c=this,b=a.node||c.tree.getRootNode();if(!b){b=c.setRootNode({expanded:true},true)}a.id=b.getId();if(c.clearOnLoad){if(c.clearRemovedOnLoad){c.clearRemoved(b)}c.tree.un("remove",c.onNodeRemove,c);b.removeAll(false);c.tree.on("remove",c.onNodeRemove,c)}Ext.applyIf(a,{node:b});a.params[c.nodeParam]=b?b.getId():"root";if(b){b.set("loading",true)}return c.callParent([a])},clearRemoved:function(b){var k=this,e=k.removed,a=b.getId(),d=e.length,c=d,n={},h=[],m={},j,g,l;if(b===k.getRootNode()){k.removed=[];return}for(;c--;){j=e[c];m[j.getId()]=j}for(c=d;c--;){j=e[c];g=j;while(g&&g.getId()!==a){l=g.get("parentId");g=g.parentNode||k.getNodeById(l)||m[l]}if(g){n[j.getId()]=j}}for(c=0;c<d;c++){j=e[c];if(!n[j.getId()]){h.push(j)}}k.removed=h},fillNode:function(b,c){var h=this,e=c?c.length:0,g=h.sorters,d,k,j=false,a=e&&h.sortOnLoad&&!h.remoteSort&&g&&g.items&&g.items.length,m,l;for(d=1;d<e;d++){m=c[d];l=c[d-1];j=m[m.persistenceProperty].index!=l[l.persistenceProperty].index;if(j){break}}if(a){if(j){h.sorters.insert(0,h.indexSorter)}k=new Ext.util.MixedCollection();k.addAll(c);k.sort(h.sorters.items);c=k.items;h.sorters.remove(h.indexSorter)}else{if(j){Ext.Array.sort(c,h.sortByIndex)}}b.set("loaded",true);for(d=0;d<e;d++){b.appendChild(c[d],undefined,true)}return c},sortByIndex:function(b,a){return b[b.persistenceProperty].index-a[a.persistenceProperty].index},onProxyLoad:function(b){var d=this,e=b.wasSuccessful(),a=b.getRecords(),c=b.node;d.loading=false;c.set("loading",false);if(e){if(!d.clearOnLoad){a=d.cleanRecords(c,a)}a=d.fillNode(c,a)}d.fireEvent("read",d,b.node,a,e);d.fireEvent("load",d,b.node,a,e);Ext.callback(b.callback,b.scope||d,[a,b,e])},onCreateRecords:function(c){this.callParent(arguments);var d=0,b=c.length,a=this.tree,e;for(;d<b;++d){e=c[d];a.onNodeIdChanged(e,null,e.getId())}},cleanRecords:function(g,b){var e={},j=g.childNodes,d=0,a=j.length,c=[],h;for(;d<a;++d){e[j[d].getId()]=true}for(d=0,a=b.length;d<a;++d){h=b[d];if(!e[h.getId()]){c.push(h)}}return c},removeAll:function(){var a=this.getRootNode();if(a){a.destroy(true)}this.fireEvent("clear",this)},doSort:function(a){var b=this;if(b.remoteSort){b.load()}else{b.tree.sort(a,true);b.fireEvent("datachanged",b);b.fireEvent("refresh",b)}b.fireEvent("sort",b)}},function(){var a=this.prototype;a.indexSorter=new Ext.util.Sorter({sorterFn:a.sortByIndex})});Ext.define("Ext.data.UuidGenerator",(function(){var h=Math.pow(2,14),g=Math.pow(2,16),e=Math.pow(2,28),c=Math.pow(2,32);function a(k,j){var i=k.toString(16);if(i.length>j){i=i.substring(i.length-j)}else{if(i.length<j){i=Ext.String.leftPad(i,j,"0")}}return i}function d(k,j){var i=Math.random()*(j-k+1);return Math.floor(i)+k}function b(j){if(typeof(j)=="number"){var i=Math.floor(j/c);return{lo:Math.floor(j-i*c),hi:i}}return j}return{extend:"Ext.data.IdGenerator",alias:"idgen.uuid",id:"uuid",version:4,constructor:function(){var i=this;i.callParent(arguments);i.parts=[];i.init()},generate:function(){var j=this,k=j.parts,i=j.timestamp;k[0]=a(i.lo,8);k[1]=a(i.hi&65535,4);k[2]=a(((i.hi>>>16)&4095)|(j.version<<12),4);k[3]=a(128|((j.clockSeq>>>8)&63),2)+a(j.clockSeq&255,2);k[4]=a(j.salt.hi,4)+a(j.salt.lo,8);if(j.version==4){j.init()}else{++i.lo;if(i.lo>=c){i.lo=0;++i.hi}}return k.join("-").toLowerCase()},getRecId:function(i){return i.getId()},init:function(){var j=this,i,k;if(j.version==4){j.clockSeq=d(0,h-1);i=j.salt||(j.salt={});k=j.timestamp||(j.timestamp={});i.lo=d(0,c-1);i.hi=d(0,g-1);k.lo=d(0,c-1);k.hi=d(0,e-1)}else{j.salt=b(j.salt);j.timestamp=b(j.timestamp);j.salt.hi|=256}},reconfigure:function(i){Ext.apply(this,i);this.init()}}}()));Ext.define("Ext.data.reader.Xml",{extend:"Ext.data.reader.Reader",alternateClassName:"Ext.data.XmlReader",alias:"reader.xml",createAccessor:function(b){var a=this;if(Ext.isEmpty(b)){return Ext.emptyFn}if(Ext.isFunction(b)){return b}return function(c){return a.getNodeValue(Ext.DomQuery.selectNode(b,c))}},getNodeValue:function(a){if(a&&a.firstChild){return a.firstChild.nodeValue}return undefined},getResponseData:function(a){var c=a.responseXML,b,d;if(!c){d="XML data not found in the response";b=new Ext.data.ResultSet({total:0,count:0,records:[],success:false,message:d});this.fireEvent("exception",this,a,b);Ext.Logger.warn(d);return b}return this.readRecords(c)},getData:function(a){return a.documentElement||a},getRoot:function(b){var c=b.nodeName,a=this.root;if(!a||(c&&c==a)){return b}else{if(Ext.DomQuery.isXml(b)){return Ext.DomQuery.selectNode(a,b)}}},extractData:function(a){var b=this.record;if(b!=a.nodeName){a=Ext.DomQuery.select(b,a)}else{a=[a]}return this.callParent([a])},getAssociatedDataRoot:function(b,a){return Ext.DomQuery.select(a,b)[0]},readRecords:function(a){if(Ext.isArray(a)){a=a[0]}this.xmlData=a;return this.callParent([a])},createFieldAccessExpression:function(e,d,c){var b=e.mapping||e.name,a;if(typeof b==="function"){a=d+".mapping("+c+", this)"}else{a='me.getNodeValue(Ext.DomQuery.selectNode("'+b+'", '+c+"))"}return a}});Ext.define("Ext.data.writer.Xml",{extend:"Ext.data.writer.Writer",alternateClassName:"Ext.data.XmlWriter",alias:"writer.xml",documentRoot:"xmlData",defaultDocumentRoot:"xmlData",header:"",record:"record",writeRecords:function(a,b){var h=this,d=[],c=0,g=b.length,j=h.documentRoot,e=h.record,m=b.length!==1,l,k;d.push(h.header||"");if(!j&&m){j=h.defaultDocumentRoot}if(j){d.push("<",j,">")}for(;c<g;++c){l=b[c];d.push("<",e,">");for(k in l){if(l.hasOwnProperty(k)){d.push("<",k,">",l[k],"</",k,">")}}d.push("</",e,">")}if(j){d.push("</",j,">")}a.xmlData=d.join("");return a}});Ext.define("Ext.data.XmlStore",{extend:"Ext.data.Store",alias:"store.xml",requires:["Ext.data.proxy.Ajax","Ext.data.reader.Xml","Ext.data.writer.Xml"],constructor:function(a){a=Ext.apply({proxy:{type:"ajax",reader:"xml",writer:"xml"}},a);this.callParent([a])}});Ext.define("Ext.data.association.BelongsTo",{extend:"Ext.data.association.Association",alternateClassName:"Ext.data.BelongsToAssociation",alias:"association.belongsto",constructor:function(c){this.callParent(arguments);var e=this,a=e.ownerModel.prototype,g=e.associatedName,d=e.getterName||"get"+g,b=e.setterName||"set"+g;Ext.applyIf(e,{name:g,foreignKey:g.toLowerCase()+"_id",instanceName:g+"BelongsToInstance",associationKey:g.toLowerCase()});a[d]=e.createGetter();a[b]=e.createSetter()},createSetter:function(){var b=this,a=b.foreignKey;return function(e,c,d){if(e&&e.isModel){e=e.getId()}this.set(a,e);if(Ext.isFunction(c)){c={callback:c,scope:d||this}}if(Ext.isObject(c)){return this.save(c)}}},createGetter:function(){var d=this,e=d.associatedName,g=d.associatedModel,c=d.foreignKey,b=d.primaryKey,a=d.instanceName;return function(k,l){k=k||{};var j=this,m=j.get(c),n,h,i;if(k.reload===true||j[a]===undefined){h=Ext.ModelManager.create({},e);h.set(b,m);if(typeof k=="function"){k={callback:k,scope:l||j}}n=k.success;k.success=function(o){j[a]=o;if(n){n.apply(this,arguments)}};g.load(m,k);j[a]=h;return h}else{h=j[a];i=[h];l=l||k.scope||j;Ext.callback(k,l,i);Ext.callback(k.success,l,i);Ext.callback(k.failure,l,i);Ext.callback(k.callback,l,i);return h}}},read:function(b,a,c){b[this.instanceName]=a.read([c]).records[0]}});Ext.define("Ext.util.Inflector",{singleton:true,plurals:[[(/(quiz)$/i),"$1zes"],[(/^(ox)$/i),"$1en"],[(/([m|l])ouse$/i),"$1ice"],[(/(matr|vert|ind)ix|ex$/i),"$1ices"],[(/(x|ch|ss|sh)$/i),"$1es"],[(/([^aeiouy]|qu)y$/i),"$1ies"],[(/(hive)$/i),"$1s"],[(/(?:([^f])fe|([lr])f)$/i),"$1$2ves"],[(/sis$/i),"ses"],[(/([ti])um$/i),"$1a"],[(/(buffal|tomat|potat)o$/i),"$1oes"],[(/(bu)s$/i),"$1ses"],[(/(alias|status|sex)$/i),"$1es"],[(/(octop|vir)us$/i),"$1i"],[(/(ax|test)is$/i),"$1es"],[(/^person$/),"people"],[(/^man$/),"men"],[(/^(child)$/),"$1ren"],[(/s$/i),"s"],[(/$/),"s"]],singulars:[[(/(quiz)zes$/i),"$1"],[(/(matr)ices$/i),"$1ix"],[(/(vert|ind)ices$/i),"$1ex"],[(/^(ox)en/i),"$1"],[(/(alias|status)es$/i),"$1"],[(/(octop|vir)i$/i),"$1us"],[(/(cris|ax|test)es$/i),"$1is"],[(/(shoe)s$/i),"$1"],[(/(o)es$/i),"$1"],[(/(bus)es$/i),"$1"],[(/([m|l])ice$/i),"$1ouse"],[(/(x|ch|ss|sh)es$/i),"$1"],[(/(m)ovies$/i),"$1ovie"],[(/(s)eries$/i),"$1eries"],[(/([^aeiouy]|qu)ies$/i),"$1y"],[(/([lr])ves$/i),"$1f"],[(/(tive)s$/i),"$1"],[(/(hive)s$/i),"$1"],[(/([^f])ves$/i),"$1fe"],[(/(^analy)ses$/i),"$1sis"],[(/((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$/i),"$1$2sis"],[(/([ti])a$/i),"$1um"],[(/(n)ews$/i),"$1ews"],[(/people$/i),"person"],[(/s$/i),""]],uncountable:["sheep","fish","series","species","money","rice","information","equipment","grass","mud","offspring","deer","means"],singular:function(b,a){this.singulars.unshift([b,a])},plural:function(b,a){this.plurals.unshift([b,a])},clearSingulars:function(){this.singulars=[]},clearPlurals:function(){this.plurals=[]},isTransnumeral:function(a){return Ext.Array.indexOf(this.uncountable,a)!=-1},pluralize:function(g){if(this.isTransnumeral(g)){return g}var e=this.plurals,d=e.length,a,c,b;for(b=0;b<d;b++){a=e[b];c=a[0];if(c==g||(c.test&&c.test(g))){return g.replace(c,a[1])}}return g},singularize:function(g){if(this.isTransnumeral(g)){return g}var e=this.singulars,d=e.length,a,c,b;for(b=0;b<d;b++){a=e[b];c=a[0];if(c==g||(c.test&&c.test(g))){return g.replace(c,a[1])}}return g},classify:function(a){return Ext.String.capitalize(this.singularize(a))},ordinalize:function(d){var b=parseInt(d,10),c=b%10,a=b%100;if(11<=a&&a<=13){return d+"th"}else{switch(c){case 1:return d+"st";case 2:return d+"nd";case 3:return d+"rd";default:return d+"th"}}}},function(){var b={alumnus:"alumni",cactus:"cacti",focus:"foci",nucleus:"nuclei",radius:"radii",stimulus:"stimuli",ellipsis:"ellipses",paralysis:"paralyses",oasis:"oases",appendix:"appendices",index:"indexes",beau:"beaux",bureau:"bureaux",tableau:"tableaux",woman:"women",child:"children",man:"men",corpus:"corpora",criterion:"criteria",curriculum:"curricula",genus:"genera",memorandum:"memoranda",phenomenon:"phenomena",foot:"feet",goose:"geese",tooth:"teeth",antenna:"antennae",formula:"formulae",nebula:"nebulae",vertebra:"vertebrae",vita:"vitae"},a;for(a in b){this.plural(a,b[a]);this.singular(b[a],a)}});Ext.define("Ext.data.association.HasMany",{extend:"Ext.data.association.Association",alternateClassName:"Ext.data.HasManyAssociation",requires:["Ext.util.Inflector"],alias:"association.hasmany",constructor:function(c){var d=this,a,b;d.callParent(arguments);d.name=d.name||Ext.util.Inflector.pluralize(d.associatedName.toLowerCase());a=d.ownerModel.prototype;b=d.name;Ext.applyIf(d,{storeName:b+"Store",foreignKey:d.ownerName.toLowerCase()+"_id"});a[b]=d.createStore()},createStore:function(){var h=this,i=h.associatedModel,c=h.storeName,d=h.foreignKey,a=h.primaryKey,g=h.filterProperty,b=h.autoLoad,e=h.storeConfig||{};return function(){var m=this,k,l,j={};if(m[c]===undefined){if(g){l={property:g,value:m.get(g),exactMatch:true}}else{l={property:d,value:m.get(a),exactMatch:true}}j[d]=m.get(a);k=Ext.apply({},e,{model:i,filters:[l],remoteFilter:false,modelDefaults:j});m[c]=Ext.data.AbstractStore.create(k);if(b){m[c].load()}}return m[c]}},read:function(d,b,j){var g=d[this.name](),c,e,a,h;g.add(b.read(j).records);c=this.associatedModel.prototype.associations.findBy(function(i){return i.type==="belongsTo"&&i.associatedName===d.$className});if(c){e=g.data.items;a=e.length;for(h=0;h<a;h++){e[h][c.instanceName]=d}}}});Ext.define("Ext.data.association.HasOne",{extend:"Ext.data.association.Association",alternateClassName:"Ext.data.HasOneAssociation",alias:"association.hasone",constructor:function(c){this.callParent(arguments);var e=this,a=e.ownerModel.prototype,g=e.associatedName,d=e.getterName||"get"+g,b=e.setterName||"set"+g;Ext.applyIf(e,{name:g,foreignKey:g.toLowerCase()+"_id",instanceName:g+"HasOneInstance",associationKey:g.toLowerCase()});a[d]=e.createGetter();a[b]=e.createSetter()},createSetter:function(){var b=this,c=b.ownerModel,a=b.foreignKey;return function(g,d,e){if(g&&g.isModel){g=g.getId()}this.set(a,g);if(Ext.isFunction(d)){d={callback:d,scope:e||this}}if(Ext.isObject(d)){return this.save(d)}}},createGetter:function(){var d=this,g=d.ownerModel,e=d.associatedName,h=d.associatedModel,c=d.foreignKey,b=d.primaryKey,a=d.instanceName;return function(l,m){l=l||{};var k=this,n=k.get(c),o,i,j;if(l.reload===true||k[a]===undefined){i=Ext.ModelManager.create({},e);i.set(b,n);if(typeof l=="function"){l={callback:l,scope:m||k}}o=l.success;l.success=function(p){k[a]=p;if(o){o.apply(this,arguments)}};h.load(n,l);k[a]=i;return i}else{i=k[a];j=[i];m=m||l.scope||k;Ext.callback(l,m,j);Ext.callback(l.success,m,j);Ext.callback(l.failure,m,j);Ext.callback(l.callback,m,j);return i}}},read:function(c,a,e){var b=this.associatedModel.prototype.associations.findBy(function(g){return g.type==="belongsTo"&&g.associatedName===c.$className}),d=a.read([e]).records[0];c[this.instanceName]=d;if(b){d[b.instanceName]=c}}});Ext.define("Ext.data.proxy.WebStorage",{extend:"Ext.data.proxy.Client",alternateClassName:"Ext.data.WebStorageProxy",requires:["Ext.data.SequentialIdGenerator"],id:undefined,constructor:function(a){this.callParent(arguments);this.cache={};this.id=this.id||(this.store?this.store.storeId:undefined);this.initialize()},create:function(e,k,l){var j=this,d=e.records,c=d.length,a=j.getIds(),b,h,g;e.setStarted();if(j.isHierarchical===undefined){j.isHierarchical=!!d[0].isNode;if(j.isHierarchical){j.getStorageObject().setItem(j.getTreeKey(),true)}}for(g=0;g<c;g++){h=d[g];if(h.phantom){h.phantom=false;b=j.getNextId()}else{b=h.getId()}j.setRecord(h,b);h.commit();a.push(b)}j.setIds(a);e.setCompleted();e.setSuccessful();if(typeof k=="function"){k.call(l||j,e)}},read:function(g,m,o){var l=this,e=[],j=0,n=true,d=l.model,a,c,k,h,b;g.setStarted();if(l.isHierarchical){e=l.getTreeData()}else{a=l.getIds();c=a.length;b=g.id;if(b){h=l.getRecord(b);if(h!==null){k=new d(h,b,h)}if(k){e.push(k)}else{n=false}}else{for(;j<c;j++){b=a[j];h=l.getRecord(b);e.push(new d(h,b,h))}}}if(n){g.setSuccessful()}g.setCompleted();g.resultSet=Ext.create("Ext.data.ResultSet",{records:e,total:e.length,loaded:true});if(typeof m=="function"){m.call(o||l,g)}},update:function(e,j,k){var d=e.records,c=d.length,a=this.getIds(),h,b,g;e.setStarted();for(g=0;g<c;g++){h=d[g];this.setRecord(h);h.commit();b=h.getId();if(b!==undefined&&Ext.Array.indexOf(a,b)==-1){a.push(b)}}this.setIds(a);e.setCompleted();e.setSuccessful();if(typeof j=="function"){j.call(k||this,e)}},destroy:function(d,k,l){var g=this,c=d.records,a=g.getIds(),h=a.length,m=[],j={},e=c.length,b;d.setStarted();for(;e--;){Ext.apply(j,g.removeRecord(c[e]))}for(e=0;e<h;e++){b=a[e];if(!j[b]){m.push(b)}}g.setIds(m);d.setCompleted();d.setSuccessful();if(typeof k=="function"){k.call(l||g,d)}},getRecord:function(d){var b=this,a=b.cache,c=!a[d]?Ext.decode(b.getStorageObject().getItem(b.getRecordKey(d))):a[d];if(!c){return null}a[d]=c;c[b.model.prototype.idProperty]=d;return c},setRecord:function(k,c){if(c){k.setId(c)}else{c=k.getId()}var m=this,a=k.data,h={},j=m.model,l=j.prototype.fields.items,d=l.length,g=0,n,b,e,o;for(;g<d;g++){n=l[g];b=n.name;if(n.persist){h[b]=a[b]}}delete h[m.model.prototype.idProperty];if(k.isNode&&k.get("depth")===1){delete h.parentId}e=m.getStorageObject();o=m.getRecordKey(c);m.cache[c]=h;e.removeItem(o);e.setItem(o,Ext.encode(h))},removeRecord:function(a){var d=this,g=a.getId(),b={},c,e;b[g]=a;d.getStorageObject().removeItem(d.getRecordKey(g));delete d.cache[g];if(a.childNodes){e=a.childNodes;for(c=e.length;c--;){Ext.apply(b,d.removeRecord(e[c]))}}return b},getRecordKey:function(a){if(a.isModel){a=a.getId()}return Ext.String.format("{0}-{1}",this.id,a)},getRecordCounterKey:function(){return Ext.String.format("{0}-counter",this.id)},getTreeKey:function(){return Ext.String.format("{0}-tree",this.id)},getIds:function(){var g=this,d=(g.getStorageObject().getItem(g.id)||"").split(","),b=g.model,e=d.length,a=b.prototype.fields.get(b.prototype.idProperty).type.type==="string",c;if(e==1&&d[0]===""){d=[]}else{for(c=0;c<e;c++){d[c]=a?d[c]:+d[c]}}return d},setIds:function(a){var b=this.getStorageObject(),c=a.join(",");b.removeItem(this.id);if(!Ext.isEmpty(c)){b.setItem(this.id,c)}},getNextId:function(){var d=this,e=d.getStorageObject(),c=d.getRecordCounterKey(),b=d.model,a=b.prototype.fields.get(b.prototype.idProperty).type.type==="string",g;g=d.idGenerator.generate();e.setItem(c,g);if(!a){g=+g}return g},getTreeData:function(){var n=this,a=n.getIds(),e=a.length,j=[],b={},o=[],k=0,h=n.model,q=h.prototype.idProperty,g,m,p,l,d,c;for(;k<e;k++){c=a[k];m=n.getRecord(c);j.push(m);b[c]=m;if(!m.parentId){o.push(m)}}g=o.length;Ext.Array.sort(j,n.sortByParentId);for(k=g;k<e;k++){m=j[k];l=m.parentId;if(!p||p[q]!==l){p=b[l];p.children=d=[]}d.push(m)}for(k=e;k--;){m=j[k];if(!m.children&&!m.leaf){m.loaded=true}}for(k=g;k--;){m=o[k];o[k]=new h(m,m[q],m)}return o},sortByParentId:function(b,a){return(b.parentId||0)-(a.parentId||0)},initialize:function(){var b=this,a=b.getStorageObject(),c=+a.getItem(b.getRecordCounterKey());a.setItem(b.id,a.getItem(b.id)||"");if(a.getItem(b.getTreeKey())){b.isHierarchical=true}b.idGenerator=new Ext.data.SequentialIdGenerator({seed:c?c+1:1})},clear:function(){var d=this,e=d.getStorageObject(),c=d.getIds(),a=c.length,b;for(b=0;b<a;b++){e.removeItem(d.getRecordKey(c[b]))}e.removeItem(d.getRecordCounterKey());e.removeItem(d.getTreeKey());e.removeItem(d.id);d.cache={}},getStorageObject:function(){}});Ext.define("Ext.data.proxy.LocalStorage",{extend:"Ext.data.proxy.WebStorage",alias:"proxy.localstorage",alternateClassName:"Ext.data.LocalStorageProxy",getStorageObject:function(){return window.localStorage}});Ext.define("Ext.data.proxy.Rest",{extend:"Ext.data.proxy.Ajax",alternateClassName:"Ext.data.RestProxy",alias:"proxy.rest",appendId:true,batchActions:false,buildUrl:function(g){var e=this,c=g.operation,b=c.records||[],a=b[0],h=e.format,d=e.getUrl(g),i=a?a.getId():c.id;if(e.appendId&&i){if(!d.match(/\/$/)){d+="/"}d+=i}if(h){if(!d.match(/\.$/)){d+="."}d+=h}g.url=d;return e.callParent(arguments)}},function(){Ext.apply(this.prototype,{actionMethods:{create:"POST",read:"GET",update:"PUT",destroy:"DELETE"}})});Ext.define("Ext.data.proxy.SessionStorage",{extend:"Ext.data.proxy.WebStorage",alias:"proxy.sessionstorage",alternateClassName:"Ext.data.SessionStorageProxy",getStorageObject:function(){return window.sessionStorage}});Ext.define("Ext.dd.DDTarget",{extend:"Ext.dd.DragDrop",constructor:function(c,a,b){if(c){this.initTarget(c,a,b)}},getDragEl:Ext.emptyFn,isValidHandleChild:Ext.emptyFn,startDrag:Ext.emptyFn,endDrag:Ext.emptyFn,onDrag:Ext.emptyFn,onDragDrop:Ext.emptyFn,onDragEnter:Ext.emptyFn,onDragOut:Ext.emptyFn,onDragOver:Ext.emptyFn,onInvalidDrop:Ext.emptyFn,onMouseDown:Ext.emptyFn,onMouseUp:Ext.emptyFn,setXConstraint:Ext.emptyFn,setYConstraint:Ext.emptyFn,resetConstraints:Ext.emptyFn,clearConstraints:Ext.emptyFn,clearTicks:Ext.emptyFn,setInitPosition:Ext.emptyFn,setDragElId:Ext.emptyFn,setHandleElId:Ext.emptyFn,setOuterHandleElId:Ext.emptyFn,addInvalidHandleClass:Ext.emptyFn,addInvalidHandleId:Ext.emptyFn,addInvalidHandleType:Ext.emptyFn,removeInvalidHandleClass:Ext.emptyFn,removeInvalidHandleId:Ext.emptyFn,removeInvalidHandleType:Ext.emptyFn,toString:function(){return("DDTarget "+this.id)}});Ext.define("Ext.dd.DragTracker",{uses:["Ext.util.Region"],mixins:{observable:"Ext.util.Observable"},active:false,trackOver:false,tolerance:5,autoStart:false,constructor:function(a){var b=this;Ext.apply(b,a);b.addEvents("mouseover","mouseout","mousedown","mouseup","mousemove","beforedragstart","dragstart","dragend","drag");b.dragRegion=new Ext.util.Region(0,0,0,0);if(b.el){b.initEl(b.el)}b.mixins.observable.constructor.call(b);if(b.disabled){b.disable()}},initEl:function(a){var b=this;b.el=Ext.get(a);b.handle=Ext.get(b.delegate);b.delegate=b.handle?undefined:b.delegate;if(!b.handle){b.handle=b.el}b.mon(b.handle,{mousedown:b.onMouseDown,delegate:b.delegate,scope:b});if(b.trackOver||b.overCls){b.mon(b.handle,{mouseover:b.onMouseOver,mouseout:b.onMouseOut,delegate:b.delegate,scope:b})}},disable:function(){this.disabled=true},enable:function(){this.disabled=false},destroy:function(){this.clearListeners();delete this.el},onMouseOver:function(c,b){var a=this;if(!a.disabled){if(Ext.EventManager.contains(c)||a.delegate){a.mouseIsOut=false;if(a.overCls){a.el.addCls(a.overCls)}a.fireEvent("mouseover",a,c,a.delegate?c.getTarget(a.delegate,b):a.handle)}}},onMouseOut:function(b){var a=this;if(a.mouseIsDown){a.mouseIsOut=true}else{if(a.overCls){a.el.removeCls(a.overCls)}a.fireEvent("mouseout",a,b)}},onMouseDown:function(d,c){var b=this,a;if(b.disabled||d.dragTracked){return}b.dragTarget=b.delegate?c:b.handle.dom;b.startXY=b.lastXY=d.getXY();b.startRegion=Ext.fly(b.dragTarget).getRegion();if(b.fireEvent("mousedown",b,d)===false||b.fireEvent("beforedragstart",b,d)===false||b.onBeforeStart(d)===false){return}b.mouseIsDown=true;d.dragTracked=true;a=b.el.dom;if(Ext.isIE&&a.setCapture){a.setCapture()}if(b.preventDefault!==false){d.preventDefault()}Ext.getDoc().on({scope:b,mouseup:b.onMouseUp,mousemove:b.onMouseMove,selectstart:b.stopSelect});if(b.autoStart){b.timer=Ext.defer(b.triggerStart,b.autoStart===true?1000:b.autoStart,b,[d])}},onMouseMove:function(g,d){var b=this,c=g.getXY(),a=b.startXY;g.preventDefault();b.lastXY=c;if(!b.active){if(Math.max(Math.abs(a[0]-c[0]),Math.abs(a[1]-c[1]))>b.tolerance){b.triggerStart(g)}else{return}}if(b.fireEvent("mousemove",b,g)===false){b.onMouseUp(g)}else{b.onDrag(g);b.fireEvent("drag",b,g)}},onMouseUp:function(b){var a=this;a.mouseIsDown=false;if(a.mouseIsOut){a.mouseIsOut=false;a.onMouseOut(b)}b.preventDefault();if(Ext.isIE&&document.releaseCapture){document.releaseCapture()}a.fireEvent("mouseup",a,b);a.endDrag(b)},endDrag:function(d){var b=this,c=Ext.getDoc(),a=b.active;c.un("mousemove",b.onMouseMove,b);c.un("mouseup",b.onMouseUp,b);c.un("selectstart",b.stopSelect,b);b.clearStart();b.active=false;if(a){b.onEnd(d);b.fireEvent("dragend",b,d)}delete b._constrainRegion;delete Ext.EventObject.dragTracked},triggerStart:function(b){var a=this;a.clearStart();a.active=true;a.onStart(b);a.fireEvent("dragstart",a,b)},clearStart:function(){var a=this.timer;if(a){clearTimeout(a);delete this.timer}},stopSelect:function(a){a.stopEvent();return false},onBeforeStart:function(a){},onStart:function(a){},onDrag:function(a){},onEnd:function(a){},getDragTarget:function(){return this.dragTarget},getDragCt:function(){return this.el},getConstrainRegion:function(){var a=this;if(a.constrainTo){if(a.constrainTo instanceof Ext.util.Region){return a.constrainTo}if(!a._constrainRegion){a._constrainRegion=Ext.fly(a.constrainTo).getViewRegion()}}else{if(!a._constrainRegion){a._constrainRegion=a.getDragCt().getViewRegion()}}return a._constrainRegion},getXY:function(a){return a?this.constrainModes[a](this,this.lastXY):this.lastXY},getOffset:function(c){var b=this.getXY(c),a=this.startXY;return[b[0]-a[0],b[1]-a[1]]},constrainModes:{point:function(b,d){var c=b.dragRegion,a=b.getConstrainRegion();if(!a){return d}c.x=c.left=c[0]=c.right=d[0];c.y=c.top=c[1]=c.bottom=d[1];c.constrainTo(a);return[c.left,c.top]},dragTarget:function(c,g){var b=c.startXY,e=c.startRegion.copy(),a=c.getConstrainRegion(),d;if(!a){return g}e.translateBy(g[0]-b[0],g[1]-b[1]);if(e.right>a.right){g[0]+=d=(a.right-e.right);e.left+=d}if(e.left<a.left){g[0]+=(a.left-e.left)}if(e.bottom>a.bottom){g[1]+=d=(a.bottom-e.bottom);e.top+=d}if(e.top<a.top){g[1]+=(a.top-e.top)}return g}}});Ext.define("Ext.dd.DragZone",{extend:"Ext.dd.DragSource",constructor:function(b,a){this.callParent([b,a]);if(this.containerScroll){Ext.dd.ScrollManager.register(this.el)}},getDragData:function(a){return Ext.dd.Registry.getHandleFromEvent(a)},onInitDrag:function(a,b){this.proxy.update(this.dragData.ddel.cloneNode(true));this.onStartDrag(a,b);return true},afterRepair:function(){var a=this;if(Ext.enableFx){Ext.fly(a.dragData.ddel).highlight(a.repairHighlightColor)}a.dragging=false},getRepairXY:function(a){return Ext.fly(this.dragData.ddel).getXY()},destroy:function(){this.callParent();if(this.containerScroll){Ext.dd.ScrollManager.unregister(this.el)}}});Ext.define("Ext.dd.ScrollManager",{singleton:true,requires:["Ext.dd.DragDropManager"],constructor:function(){var a=Ext.dd.DragDropManager;a.fireEvents=Ext.Function.createSequence(a.fireEvents,this.onFire,this);a.stopDrag=Ext.Function.createSequence(a.stopDrag,this.onStop,this);this.doScroll=Ext.Function.bind(this.doScroll,this);this.ddmInstance=a;this.els={};this.dragEl=null;this.proc={}},onStop:function(a){var b=Ext.dd.ScrollManager;b.dragEl=null;b.clearProc()},triggerRefresh:function(){if(this.ddmInstance.dragCurrent){this.ddmInstance.refreshCache(this.ddmInstance.dragCurrent.groups)}},doScroll:function(){if(this.ddmInstance.dragCurrent){var a=this.proc,b=a.el,c=a.el.ddScrollConfig,d=c?c.increment:this.increment;if(!this.animate){if(b.scroll(a.dir,d)){this.triggerRefresh()}}else{b.scroll(a.dir,d,true,this.animDuration,this.triggerRefresh)}}},clearProc:function(){var a=this.proc;if(a.id){clearInterval(a.id)}a.id=0;a.el=null;a.dir=""},startProc:function(b,a){this.clearProc();this.proc.el=b;this.proc.dir=a;var d=b.ddScrollConfig?b.ddScrollConfig.ddGroup:undefined,c=(b.ddScrollConfig&&b.ddScrollConfig.frequency)?b.ddScrollConfig.frequency:this.frequency;if(d===undefined||this.ddmInstance.dragCurrent.ddGroup==d){this.proc.id=setInterval(this.doScroll,c)}},onFire:function(h,k){if(k||!this.ddmInstance.dragCurrent){return}if(!this.dragEl||this.dragEl!=this.ddmInstance.dragCurrent){this.dragEl=this.ddmInstance.dragCurrent;this.refreshCache()}var l=h.getXY(),m=h.getPoint(),i=this.proc,g=this.els,b,d,a,j;for(b in g){d=g[b];a=d._region;j=d.ddScrollConfig?d.ddScrollConfig:this;if(a&&a.contains(m)&&d.isScrollable()){if(a.bottom-m.y<=j.vthresh){if(i.el!=d){this.startProc(d,"down")}return}else{if(a.right-m.x<=j.hthresh){if(i.el!=d){this.startProc(d,"left")}return}else{if(m.y-a.top<=j.vthresh){if(i.el!=d){this.startProc(d,"up")}return}else{if(m.x-a.left<=j.hthresh){if(i.el!=d){this.startProc(d,"right")}return}}}}}}this.clearProc()},register:function(c){if(Ext.isArray(c)){for(var b=0,a=c.length;b<a;b++){this.register(c[b])}}else{c=Ext.get(c);this.els[c.id]=c}},unregister:function(c){if(Ext.isArray(c)){for(var b=0,a=c.length;b<a;b++){this.unregister(c[b])}}else{c=Ext.get(c);delete this.els[c.id]}},vthresh:25,hthresh:25,increment:100,frequency:500,animate:true,animDuration:0.4,ddGroup:undefined,refreshCache:function(){var a=this.els,b;for(b in a){if(typeof a[b]=="object"){a[b]._region=a[b].getRegion()}}}});Ext.define("Ext.dd.DropTarget",{extend:"Ext.dd.DDTarget",requires:["Ext.dd.ScrollManager"],constructor:function(b,a){this.el=Ext.get(b);Ext.apply(this,a);if(this.containerScroll){Ext.dd.ScrollManager.register(this.el)}this.callParent([this.el.dom,this.ddGroup||this.group,{isTarget:true}])},dropAllowed:Ext.baseCSSPrefix+"dd-drop-ok",dropNotAllowed:Ext.baseCSSPrefix+"dd-drop-nodrop",isTarget:true,isNotifyTarget:true,notifyEnter:function(a,c,b){if(this.overClass){this.el.addCls(this.overClass)}return this.dropAllowed},notifyOver:function(a,c,b){return this.dropAllowed},notifyOut:function(a,c,b){if(this.overClass){this.el.removeCls(this.overClass)}},notifyDrop:function(a,c,b){return false},destroy:function(){this.callParent();if(this.containerScroll){Ext.dd.ScrollManager.unregister(this.el)}}});Ext.define("Ext.dd.Registry",{singleton:true,constructor:function(){this.elements={};this.handles={};this.autoIdSeed=0},getId:function(b,a){if(typeof b=="string"){return b}var c=b.id;if(!c&&a!==false){c="extdd-"+(++this.autoIdSeed);b.id=c}return c},register:function(d,e){e=e||{};if(typeof d=="string"){d=document.getElementById(d)}e.ddel=d;this.elements[this.getId(d)]=e;if(e.isHandle!==false){this.handles[e.ddel.id]=e}if(e.handles){var c=e.handles,b,a;for(b=0,a=c.length;b<a;b++){this.handles[this.getId(c[b])]=e}}},unregister:function(d){var g=this.getId(d,false),e=this.elements[g],c,b,a;if(e){delete this.elements[g];if(e.handles){c=e.handles;for(b=0,a=c.length;b<a;b++){delete this.handles[this.getId(c[b],false)]}}}},getHandle:function(a){if(typeof a!="string"){a=a.id}return this.handles[a]},getHandleFromEvent:function(b){var a=b.getTarget();return a?this.handles[a.id]:null},getTarget:function(a){if(typeof a!="string"){a=a.id}return this.elements[a]},getTargetFromEvent:function(b){var a=b.getTarget();return a?this.elements[a.id]||this.handles[a.id]:null}});Ext.define("Ext.dd.DropZone",{extend:"Ext.dd.DropTarget",requires:["Ext.dd.Registry"],getTargetFromEvent:function(a){return Ext.dd.Registry.getTargetFromEvent(a)},onNodeEnter:function(d,a,c,b){},onNodeOver:function(d,a,c,b){return this.dropAllowed},onNodeOut:function(d,a,c,b){},onNodeDrop:function(d,a,c,b){return false},onContainerOver:function(a,c,b){return this.dropNotAllowed},onContainerDrop:function(a,c,b){return false},notifyEnter:function(a,c,b){return this.dropNotAllowed},notifyOver:function(a,c,b){var d=this.getTargetFromEvent(c);if(!d){if(this.lastOverNode){this.onNodeOut(this.lastOverNode,a,c,b);this.lastOverNode=null}return this.onContainerOver(a,c,b)}if(this.lastOverNode!=d){if(this.lastOverNode){this.onNodeOut(this.lastOverNode,a,c,b)}this.onNodeEnter(d,a,c,b);this.lastOverNode=d}return this.onNodeOver(d,a,c,b)},notifyOut:function(a,c,b){if(this.lastOverNode){this.onNodeOut(this.lastOverNode,a,c,b);this.lastOverNode=null}},notifyDrop:function(a,c,b){if(this.lastOverNode){this.onNodeOut(this.lastOverNode,a,c,b);this.lastOverNode=null}var d=this.getTargetFromEvent(c);return d?this.onNodeDrop(d,a,c,b):this.onContainerDrop(a,c,b)},triggerCacheRefresh:function(){Ext.dd.DDM.refreshCache(this.groups)}});Ext.define("Ext.direct.Event",{alias:"direct.event",requires:["Ext.direct.Manager"],status:true,constructor:function(a){Ext.apply(this,a)},getData:function(){return this.data}});Ext.define("Ext.direct.RemotingEvent",{extend:"Ext.direct.Event",alias:"direct.rpc",getTransaction:function(){return this.transaction||Ext.direct.Manager.getTransaction(this.tid)}});Ext.define("Ext.direct.ExceptionEvent",{extend:"Ext.direct.RemotingEvent",alias:"direct.exception",status:false});Ext.define("Ext.direct.Provider",{alias:"direct.provider",mixins:{observable:"Ext.util.Observable"},constructor:function(a){var b=this;Ext.apply(b,a);b.addEvents("connect","disconnect","data","exception");b.mixins.observable.constructor.call(b,a)},isConnected:function(){return false},connect:Ext.emptyFn,disconnect:Ext.emptyFn});Ext.define("Ext.direct.JsonProvider",{extend:"Ext.direct.Provider",alias:"direct.jsonprovider",uses:["Ext.direct.ExceptionEvent"],parseResponse:function(a){if(!Ext.isEmpty(a.responseText)){if(Ext.isObject(a.responseText)){return a.responseText}return Ext.decode(a.responseText)}return null},createEvents:function(b){var h=null,d=[],g,c=0,a;try{h=this.parseResponse(b)}catch(j){g=new Ext.direct.ExceptionEvent({data:j,xhr:b,code:Ext.direct.Manager.exceptions.PARSE,message:"Error parsing json response: \n\n "+h});return[g]}if(Ext.isArray(h)){for(a=h.length;c<a;++c){d.push(this.createEvent(h[c]))}}else{d.push(this.createEvent(h))}return d},createEvent:function(a){return Ext.create("direct."+a.type,a)}});Ext.define("Ext.direct.PollingProvider",{extend:"Ext.direct.JsonProvider",alias:"direct.pollingprovider",uses:["Ext.direct.ExceptionEvent"],requires:["Ext.Ajax","Ext.util.DelayedTask"],interval:3000,constructor:function(a){this.callParent(arguments);this.addEvents("beforepoll","poll")},isConnected:function(){return !!this.pollTask},connect:function(){var b=this,a=b.url;if(a&&!b.pollTask){b.pollTask=Ext.TaskManager.start({run:function(){if(b.fireEvent("beforepoll",b)!==false){if(Ext.isFunction(a)){a(b.baseParams)}else{Ext.Ajax.request({url:a,callback:b.onData,scope:b,params:b.baseParams})}}},interval:b.interval,scope:b});b.fireEvent("connect",b)}else{if(!a){}}},disconnect:function(){var a=this;if(a.pollTask){Ext.TaskManager.stop(a.pollTask);delete a.pollTask;a.fireEvent("disconnect",a)}},onData:function(e,h,b){var g=this,d=0,a,c;if(h){c=g.createEvents(b);for(a=c.length;d<a;++d){g.fireEvent("data",g,c[d])}}else{g.fireEvent("data",g,new Ext.direct.ExceptionEvent({data:null,code:Ext.direct.Manager.exceptions.TRANSPORT,message:"Unable to connect to the server.",xhr:b}))}}});Ext.define("Ext.direct.RemotingMethod",{constructor:function(c){var d=this,h=Ext.isDefined(c.params)?c.params:c.len,b,a,e,g;d.name=c.name;d.formHandler=c.formHandler;if(Ext.isNumber(h)){d.len=h;d.ordered=true}else{d.params=[];a=h.length;for(e=0;e<a;e++){g=h[e];b=Ext.isObject(g)?g.name:g;d.params.push(b)}}},getArgs:function(e,b,g){var c=[],d,a;if(this.ordered){if(this.len>0){if(b){for(d=0,a=b.length;d<a;d++){c.push(e[b[d]])}}else{if(g){c.push(e)}}}}else{c.push(e)}return c},getCallData:function(c){var e=this,g=null,a=e.len,h=e.params,i,d,b;if(e.ordered){i=c[a];d=c[a+1];if(a!==0){g=c.slice(0,a)}}else{g=Ext.apply({},c[0]);i=c[1];d=c[2];for(b in g){if(g.hasOwnProperty(b)){if(!Ext.Array.contains(h,b)){delete g[b]}}}}return{data:g,callback:i,scope:d}}});Ext.define("Ext.direct.Transaction",{alias:"direct.transaction",alternateClassName:"Ext.Direct.Transaction",statics:{TRANSACTION_ID:0},constructor:function(a){var b=this;Ext.apply(b,a);b.id=b.tid=++b.self.TRANSACTION_ID;b.retryCount=0},send:function(){this.provider.queueTransaction(this)},retry:function(){this.retryCount++;this.send()},getProvider:function(){return this.provider}});Ext.define("Ext.direct.RemotingProvider",{alias:"direct.remotingprovider",extend:"Ext.direct.JsonProvider",requires:["Ext.util.MixedCollection","Ext.util.DelayedTask","Ext.direct.Transaction","Ext.direct.RemotingMethod"],enableBuffer:10,maxRetries:1,timeout:undefined,constructor:function(a){var b=this;b.callParent(arguments);b.addEvents("beforecall","call");b.namespace=(Ext.isString(b.namespace))?Ext.ns(b.namespace):b.namespace||window;b.transactions=new Ext.util.MixedCollection();b.callBuffer=[]},initAPI:function(){var h=this.actions,e=this.namespace,g,b,c,d,a,j;for(g in h){if(h.hasOwnProperty(g)){b=e[g];if(!b){b=e[g]={}}c=h[g];for(d=0,a=c.length;d<a;++d){j=new Ext.direct.RemotingMethod(c[d]);b[j.name]=this.createHandler(g,j)}}}},createHandler:function(c,d){var b=this,a;if(!d.formHandler){a=function(){b.configureRequest(c,d,Array.prototype.slice.call(arguments,0))}}else{a=function(g,h,e){b.configureFormRequest(c,d,g,h,e)}}a.directCfg={action:c,method:d};return a},isConnected:function(){return !!this.connected},connect:function(){var a=this;if(a.url){a.initAPI();a.connected=true;a.fireEvent("connect",a)}else{if(!a.url){}}},disconnect:function(){var a=this;if(a.connected){a.connected=false;a.fireEvent("disconnect",a)}},runCallback:function(e,b){var d=!!b.status,c=d?"success":"failure",g,a;if(e&&e.callback){g=e.callback;a=Ext.isDefined(b.result)?b.result:b.data;if(Ext.isFunction(g)){g(a,b,d)}else{Ext.callback(g[c],g.scope,[a,b,d]);Ext.callback(g.callback,g.scope,[a,b,d])}}},onData:function(l,j,c){var g=this,d=0,e,k,a,b,h;if(j){k=g.createEvents(c);for(e=k.length;d<e;++d){a=k[d];b=g.getTransaction(a);g.fireEvent("data",g,a);if(b){g.runCallback(b,a,true);Ext.direct.Manager.removeTransaction(b)}}}else{h=[].concat(l.transaction);for(e=h.length;d<e;++d){b=g.getTransaction(h[d]);if(b&&b.retryCount<g.maxRetries){b.retry()}else{a=new Ext.direct.ExceptionEvent({data:null,transaction:b,code:Ext.direct.Manager.exceptions.TRANSPORT,message:"Unable to connect to the server.",xhr:c});g.fireEvent("data",g,a);if(b){g.runCallback(b,a,false);Ext.direct.Manager.removeTransaction(b)}}}}},getTransaction:function(a){return a&&a.tid?Ext.direct.Manager.getTransaction(a.tid):null},configureRequest:function(d,a,g){var h=this,c=a.getCallData(g),e=c.data,i=c.callback,j=c.scope,b;b=new Ext.direct.Transaction({provider:h,args:g,action:d,method:a.name,data:e,callback:j&&Ext.isFunction(i)?Ext.Function.bind(i,j):i});if(h.fireEvent("beforecall",h,b,a)!==false){Ext.direct.Manager.addTransaction(b);h.queueTransaction(b);h.fireEvent("call",h,b,a)}},getCallData:function(a){return{action:a.action,method:a.method,data:a.data,type:"rpc",tid:a.id}},sendRequest:function(h){var g=this,e={url:g.url,callback:g.onData,scope:g,transaction:h,timeout:g.timeout},b,d=g.enableUrlEncode,c=0,a,j;if(Ext.isArray(h)){b=[];for(a=h.length;c<a;++c){b.push(g.getCallData(h[c]))}}else{b=g.getCallData(h)}if(d){j={};j[Ext.isString(d)?d:"data"]=Ext.encode(b);e.params=j}else{e.jsonData=b}Ext.Ajax.request(e)},queueTransaction:function(c){var b=this,a=b.enableBuffer;if(c.form){b.sendFormRequest(c);return}b.callBuffer.push(c);if(a){if(!b.callTask){b.callTask=new Ext.util.DelayedTask(b.combineAndSend,b)}b.callTask.delay(Ext.isNumber(a)?a:10)}else{b.combineAndSend()}},combineAndSend:function(){var b=this.callBuffer,a=b.length;if(a>0){this.sendRequest(a==1?b[0]:b);this.callBuffer=[]}},configureFormRequest:function(e,a,b,i,j){var h=this,c=new Ext.direct.Transaction({provider:h,action:e,method:a.name,args:[b,i,j],callback:j&&Ext.isFunction(i)?Ext.Function.bind(i,j):i,isForm:true}),g,d;if(h.fireEvent("beforecall",h,c,a)!==false){Ext.direct.Manager.addTransaction(c);g=String(b.getAttribute("enctype")).toLowerCase()=="multipart/form-data";d={extTID:c.id,extAction:e,extMethod:a.name,extType:"rpc",extUpload:String(g)};Ext.apply(c,{form:Ext.getDom(b),isUpload:g,params:i&&Ext.isObject(i.params)?Ext.apply(d,i.params):d});h.fireEvent("call",h,c,a);h.sendFormRequest(c)}},sendFormRequest:function(a){Ext.Ajax.request({url:this.url,params:a.params,callback:this.onData,scope:this,form:a.form,isUpload:a.isUpload,transaction:a})}});Ext.define("Ext.draw.Matrix",{requires:["Ext.draw.Draw"],constructor:function(h,g,l,k,j,i){if(h!=null){this.matrix=[[h,l,j],[g,k,i],[0,0,1]]}else{this.matrix=[[1,0,0],[0,1,0],[0,0,1]]}},add:function(s,p,m,k,i,h){var n=this,g=[[],[],[]],r=[[s,m,i],[p,k,h],[0,0,1]],q,o,l,j;for(q=0;q<3;q++){for(o=0;o<3;o++){j=0;for(l=0;l<3;l++){j+=n.matrix[q][l]*r[l][o]}g[q][o]=j}}n.matrix=g},prepend:function(s,p,m,k,i,h){var n=this,g=[[],[],[]],r=[[s,m,i],[p,k,h],[0,0,1]],q,o,l,j;for(q=0;q<3;q++){for(o=0;o<3;o++){j=0;for(l=0;l<3;l++){j+=r[q][l]*n.matrix[l][o]}g[q][o]=j}}n.matrix=g},invert:function(){var j=this.matrix,i=j[0][0],h=j[1][0],n=j[0][1],m=j[1][1],l=j[0][2],k=j[1][2],g=i*m-h*n;return new Ext.draw.Matrix(m/g,-h/g,-n/g,i/g,(n*k-m*l)/g,(h*l-i*k)/g)},clone:function(){var i=this.matrix,h=i[0][0],g=i[1][0],m=i[0][1],l=i[1][1],k=i[0][2],j=i[1][2];return new Ext.draw.Matrix(h,g,m,l,k,j)},translate:function(a,b){this.prepend(1,0,0,1,a,b)},scale:function(b,e,a,d){var c=this;if(e==null){e=b}c.add(b,0,0,e,a*(1-b),d*(1-e))},rotate:function(c,b,h){c=Ext.draw.Draw.rad(c);var e=this,g=+Math.cos(c).toFixed(9),d=+Math.sin(c).toFixed(9);e.add(g,d,-d,g,b-g*b+d*h,-(d*b)+h-g*h)},x:function(a,c){var b=this.matrix;return a*b[0][0]+c*b[0][1]+b[0][2]},y:function(a,c){var b=this.matrix;return a*b[1][0]+c*b[1][1]+b[1][2]},get:function(b,a){return +this.matrix[b][a].toFixed(4)},toString:function(){var a=this;return[a.get(0,0),a.get(0,1),a.get(1,0),a.get(1,1),0,0].join()},toSvg:function(){var a=this;return"matrix("+[a.get(0,0),a.get(1,0),a.get(0,1),a.get(1,1),a.get(0,2),a.get(1,2)].join()+")"},toFilter:function(b,a){var c=this;b=b||0;a=a||0;return"progid:DXImageTransform.Microsoft.Matrix(sizingMethod='auto expand', filterType='bilinear', M11="+c.get(0,0)+", M12="+c.get(0,1)+", M21="+c.get(1,0)+", M22="+c.get(1,1)+", Dx="+(c.get(0,2)+b)+", Dy="+(c.get(1,2)+a)+")"},offset:function(){var a=this.matrix;return[(a[0][2]||0).toFixed(4),(a[1][2]||0).toFixed(4)]},split:function(){function d(g){return g[0]*g[0]+g[1]*g[1]}function b(g){var h=Math.sqrt(d(g));g[0]/=h;g[1]/=h}var a=this.matrix,c={translateX:a[0][2],translateY:a[1][2]},e;e=[[a[0][0],a[0][1]],[a[1][1],a[1][1]]];c.scaleX=Math.sqrt(d(e[0]));b(e[0]);c.shear=e[0][0]*e[1][0]+e[0][1]*e[1][1];e[1]=[e[1][0]-e[0][0]*c.shear,e[1][1]-e[0][1]*c.shear];c.scaleY=Math.sqrt(d(e[1]));b(e[1]);c.shear/=c.scaleY;c.rotate=Math.asin(-e[0][1]);c.isSimple=!+c.shear.toFixed(9)&&(c.scaleX.toFixed(9)==c.scaleY.toFixed(9)||!c.rotate);return c}});Ext.define("Ext.draw.SpriteDD",{extend:"Ext.dd.DragSource",constructor:function(b,a){var d=this,c=b.el;d.sprite=b;d.el=c;d.dragData={el:c,sprite:b};d.callParent([c,a]);d.sprite.setStyle("cursor","move")},showFrame:Ext.emptyFn,createFrame:Ext.emptyFn,getDragEl:function(a){return this.el},getRegion:function(){var j=this,g=j.el,m,d,c,o,n,s,a,k,h,q,p;p=j.sprite;q=p.getBBox();try{m=Ext.Element.getXY(g)}catch(i){}if(!m){return null}d=m[0];c=d+q.width;o=m[1];n=o+q.height;return new Ext.util.Region(o,c,n,d)},startDrag:function(b,d){var c=this,a=c.sprite.attr;c.prev=c.sprite.surface.transformToViewBox(b,d)},onDrag:function(i){var h=i.getXY(),g=this,d=g.sprite,a=d.attr,c,b;h=g.sprite.surface.transformToViewBox(h[0],h[1]);c=h[0]-g.prev[0];b=h[1]-g.prev[1];d.setAttributes({translate:{x:a.translation.x+c,y:a.translation.y+b}},true);g.prev=h},setDragElPos:function(){return false}});Ext.define("Ext.draw.Sprite",{mixins:{observable:"Ext.util.Observable",animate:"Ext.util.Animate"},requires:["Ext.draw.SpriteDD"],dirty:false,dirtyHidden:false,dirtyTransform:false,dirtyPath:true,dirtyFont:true,zIndexDirty:true,isSprite:true,zIndex:0,fontProperties:["font","font-size","font-weight","font-style","font-family","text-anchor","text"],pathProperties:["x","y","d","path","height","width","radius","r","rx","ry","cx","cy"],constructor:function(a){var b=this;a=Ext.merge({},a||{});b.id=Ext.id(null,"ext-sprite-");b.transformations=[];Ext.copyTo(this,a,"surface,group,type,draggable");b.bbox={};b.attr={zIndex:0,translation:{x:null,y:null},rotation:{degrees:null,x:null,y:null},scaling:{x:null,y:null,cx:null,cy:null}};delete a.surface;delete a.group;delete a.type;delete a.draggable;b.setAttributes(a);b.addEvents("beforedestroy","destroy","render","mousedown","mouseup","mouseover","mouseout","mousemove","click");b.mixins.observable.constructor.apply(this,arguments)},initDraggable:function(){var a=this;a.draggable=true;if(!a.el){a.surface.createSpriteElement(a)}a.dd=new Ext.draw.SpriteDD(a,Ext.isBoolean(a.draggable)?null:a.draggable);a.on("beforedestroy",a.dd.destroy,a.dd)},setAttributes:function(l,o){var t=this,j=t.fontProperties,q=j.length,h=t.pathProperties,g=h.length,r=!!t.surface,a=r&&t.surface.customAttributes||{},c=t.attr,b=false,m,p,k,d,s,n,u,e;l=Ext.apply({},l);for(m in a){if(l.hasOwnProperty(m)&&typeof a[m]=="function"){Ext.apply(l,a[m].apply(t,[].concat(l[m])))}}if(!!l.hidden!==!!c.hidden){t.dirtyHidden=true}for(p=0;p<g;p++){m=h[p];if(m in l&&l[m]!==c[m]){t.dirtyPath=true;b=true;break}}if("zIndex" in l){t.zIndexDirty=true}if("text" in l){t.dirtyFont=true;b=true}for(p=0;p<q;p++){m=j[p];if(m in l&&l[m]!==c[m]){t.dirtyFont=true;b=true;break}}k=l.translation||l.translate;delete l.translate;delete l.translation;d=c.translation;if(k){if(("x" in k&&k.x!==d.x)||("y" in k&&k.y!==d.y)){t.dirtyTransform=true;d.x=k.x;d.y=k.y}}s=l.rotation||l.rotate;n=c.rotation;delete l.rotate;delete l.rotation;if(s){if(("x" in s&&s.x!==n.x)||("y" in s&&s.y!==n.y)||("degrees" in s&&s.degrees!==n.degrees)){t.dirtyTransform=true;n.x=s.x;n.y=s.y;n.degrees=s.degrees}}u=l.scaling||l.scale;e=c.scaling;delete l.scale;delete l.scaling;if(u){if(("x" in u&&u.x!==e.x)||("y" in u&&u.y!==e.y)||("cx" in u&&u.cx!==e.cx)||("cy" in u&&u.cy!==e.cy)){t.dirtyTransform=true;e.x=u.x;e.y=u.y;e.cx=u.cx;e.cy=u.cy}}if(!t.dirtyTransform&&b){if(c.scaling.x===null||c.scaling.y===null||c.rotation.y===null||c.rotation.y===null){t.dirtyTransform=true}}Ext.apply(c,l);t.dirty=true;if(o===true&&r){t.redraw()}return this},getBBox:function(){return this.surface.getBBox(this)},setText:function(a){return this.surface.setText(this,a)},hide:function(a){this.setAttributes({hidden:true},a);return this},show:function(a){this.setAttributes({hidden:false},a);return this},remove:function(){if(this.surface){this.surface.remove(this);return true}return false},onRemove:function(){this.surface.onRemove(this)},destroy:function(){var a=this;if(a.fireEvent("beforedestroy",a)!==false){a.remove();a.surface.onDestroy(a);a.clearListeners();a.fireEvent("destroy")}},redraw:function(){this.surface.renderItem(this);return this},setStyle:function(){this.el.setStyle.apply(this.el,arguments);return this},addCls:function(a){this.surface.addCls(this,a);return this},removeCls:function(a){this.surface.removeCls(this,a);return this}});Ext.define("Ext.draw.Text",{extend:"Ext.draw.Component",uses:["Ext.util.CSS"],alias:"widget.text",text:"",focusable:false,viewBox:false,autoSize:true,baseCls:Ext.baseCSSPrefix+"surface "+Ext.baseCSSPrefix+"draw-text",initComponent:function(){var a=this;a.textConfig=Ext.apply({type:"text",text:a.text,rotate:{degrees:a.degrees||0}},a.textStyle);Ext.apply(a.textConfig,a.getStyles(a.styleSelectors||a.styleSelector));a.initialConfig.items=[a.textConfig];a.callParent(arguments)},getStyles:function(d){d=Ext.Array.from(d);var c=0,b=d.length,g,e,h,a={};for(;c<b;c++){g=Ext.util.CSS.getRule(d[c]);if(g){e=g.style;if(e){Ext.apply(a,{"font-family":e.fontFamily,"font-weight":e.fontWeight,"line-height":e.lineHeight,"font-size":e.fontSize,fill:e.color})}}}return a},setAngle:function(d){var c=this,a,b;if(c.rendered){a=c.surface;b=a.items.items[0];c.degrees=d;b.setAttributes({rotate:{degrees:d}},true);if(c.autoSize||c.viewBox){c.updateLayout()}}else{c.degrees=d}},setText:function(d){var c=this,a,b;if(c.rendered){a=c.surface;b=a.items.items[0];c.text=d||"";a.remove(b);c.textConfig.type="text";c.textConfig.text=c.text;b=a.add(c.textConfig);b.setAttributes({rotate:{degrees:c.degrees}},true);if(c.autoSize||c.viewBox){c.updateLayout()}}else{c.on({render:function(){c.setText(d)},single:true})}}});Ext.define("Ext.draw.engine.ImageExporter",{singleton:true,defaultUrl:"http://svg.sencha.io",supportedTypes:["image/png","image/jpeg"],widthParam:"width",heightParam:"height",typeParam:"type",svgParam:"svg",formCls:Ext.baseCSSPrefix+"hide-display",generate:function(a,b){b=b||{};var e=this,c=b.type,d;if(Ext.Array.indexOf(e.supportedTypes,c)===-1){return false}d=Ext.getBody().createChild({tag:"form",method:"POST",action:b.url||e.defaultUrl,cls:e.formCls,children:[{tag:"input",type:"hidden",name:b.widthParam||e.widthParam,value:b.width||a.width},{tag:"input",type:"hidden",name:b.heightParam||e.heightParam,value:b.height||a.height},{tag:"input",type:"hidden",name:b.typeParam||e.typeParam,value:c},{tag:"input",type:"hidden",name:b.svgParam||e.svgParam}]});d.last(null,true).value=Ext.draw.engine.SvgExporter.generate(a);d.dom.submit();d.remove();return true}});Ext.define("Ext.draw.engine.Svg",{extend:"Ext.draw.Surface",requires:["Ext.draw.Draw","Ext.draw.Sprite","Ext.draw.Matrix","Ext.Element"],engine:"Svg",trimRe:/^\s+|\s+$/g,spacesRe:/\s+/,xlink:"http://www.w3.org/1999/xlink",translateAttrs:{radius:"r",radiusX:"rx",radiusY:"ry",path:"d",lineWidth:"stroke-width",fillOpacity:"fill-opacity",strokeOpacity:"stroke-opacity",strokeLinejoin:"stroke-linejoin"},parsers:{},minDefaults:{circle:{cx:0,cy:0,r:0,fill:"none",stroke:null,"stroke-width":null,opacity:null,"fill-opacity":null,"stroke-opacity":null},ellipse:{cx:0,cy:0,rx:0,ry:0,fill:"none",stroke:null,"stroke-width":null,opacity:null,"fill-opacity":null,"stroke-opacity":null},rect:{x:0,y:0,width:0,height:0,rx:0,ry:0,fill:"none",stroke:null,"stroke-width":null,opacity:null,"fill-opacity":null,"stroke-opacity":null},text:{x:0,y:0,"text-anchor":"start","font-family":null,"font-size":null,"font-weight":null,"font-style":null,fill:"#000",stroke:null,"stroke-width":null,opacity:null,"fill-opacity":null,"stroke-opacity":null},path:{d:"M0,0",fill:"none",stroke:null,"stroke-width":null,opacity:null,"fill-opacity":null,"stroke-opacity":null},image:{x:0,y:0,width:0,height:0,preserveAspectRatio:"none",opacity:null}},createSvgElement:function(d,a){var c=this.domRef.createElementNS("http://www.w3.org/2000/svg",d),b;if(a){for(b in a){c.setAttribute(b,String(a[b]))}}return c},createSpriteElement:function(a){var b=this.createSvgElement(a.type);b.id=a.id;if(b.style){b.style.webkitTapHighlightColor="rgba(0,0,0,0)"}a.el=Ext.get(b);this.applyZIndex(a);a.matrix=new Ext.draw.Matrix();a.bbox={plain:0,transform:0};this.applyAttrs(a);this.applyTransformations(a);a.fireEvent("render",a);return b},getBBoxText:function(j){var k={},g,l,a,c,h,b;if(j&&j.el){b=j.el.dom;try{k=b.getBBox();return k}catch(d){}k={x:k.x,y:Infinity,width:0,height:0};h=b.getNumberOfChars();for(c=0;c<h;c++){g=b.getExtentOfChar(c);k.y=Math.min(g.y,k.y);l=g.y+g.height-k.y;k.height=Math.max(k.height,l);a=g.x+g.width-k.x;k.width=Math.max(k.width,a)}return k}},hide:function(){Ext.get(this.el).hide()},show:function(){Ext.get(this.el).show()},hidePrim:function(a){this.addCls(a,Ext.baseCSSPrefix+"hide-visibility")},showPrim:function(a){this.removeCls(a,Ext.baseCSSPrefix+"hide-visibility")},getDefs:function(){return this._defs||(this._defs=this.createSvgElement("defs"))},transform:function(k,a){var h=this,j=new Ext.draw.Matrix(),e=k.transformations,d=e.length,c=0,b,g;for(;c<d;c++){b=e[c];g=b.type;if(g=="translate"){j.translate(b.x,b.y)}else{if(g=="rotate"){j.rotate(b.degrees,b.x,b.y)}else{if(g=="scale"){j.scale(b.x,b.y,b.centerX,b.centerY)}}}}k.matrix=j;if(!a){k.el.set({transform:j.toSvg()})}},setSize:function(c,a){var d=this,b=d.el;c=+c||d.width;a=+a||d.height;d.width=c;d.height=a;b.setSize(c,a);b.set({width:c,height:a});d.callParent([c,a])},getRegion:function(){var e=this.el.getXY(),c=this.bgRect.getXY(),b=Math.max,a=b(e[0],c[0]),d=b(e[1],c[1]);return{left:a,top:d,right:a+this.width,bottom:d+this.height}},onRemove:function(a){if(a.el){a.el.destroy();delete a.el}this.callParent(arguments)},setViewBox:function(b,d,c,a){if(isFinite(b)&&isFinite(d)&&isFinite(c)&&isFinite(a)){this.callParent(arguments);this.el.dom.setAttribute("viewBox",[b,d,c,a].join(" "))}},render:function(c){var g=this,e,b,d,a,h,i;if(!g.el){e=g.width||0;b=g.height||0;d=g.createSvgElement("svg",{xmlns:"http://www.w3.org/2000/svg",version:1.1,width:e,height:b});a=g.getDefs();h=g.createSvgElement("rect",{width:"100%",height:"100%",fill:"#000",stroke:"none",opacity:0});if(Ext.isSafari3){i=g.createSvgElement("rect",{x:-10,y:-10,width:"110%",height:"110%",fill:"none",stroke:"#000"})}d.appendChild(a);if(Ext.isSafari3){d.appendChild(i)}d.appendChild(h);c.appendChild(d);g.el=Ext.get(d);g.bgRect=Ext.get(h);if(Ext.isSafari3){g.webkitRect=Ext.get(i);g.webkitRect.hide()}g.el.on({scope:g,mouseup:g.onMouseUp,mousedown:g.onMouseDown,mouseover:g.onMouseOver,mouseout:g.onMouseOut,mousemove:g.onMouseMove,mouseenter:g.onMouseEnter,mouseleave:g.onMouseLeave,click:g.onClick,dblclick:g.onDblClick})}g.renderAll()},onMouseEnter:function(a){if(this.el.parent().getRegion().contains(a.getPoint())){this.fireEvent("mouseenter",a)}},onMouseLeave:function(a){if(!this.el.parent().getRegion().contains(a.getPoint())){this.fireEvent("mouseleave",a)}},processEvent:function(b,g){var d=g.getTarget(),a=this.surface,c;this.fireEvent(b,g);if(d.nodeName=="tspan"&&d.parentNode){d=d.parentNode}c=this.items.get(d.id);if(c){c.fireEvent(b,c,g)}},tuneText:function(k,l){var a=k.el.dom,b=[],n,h,m,d,e,c,g,j;if(l.hasOwnProperty("text")){m=k.tspans&&Ext.Array.map(k.tspans,function(i){return i.textContent}).join("");if(!k.tspans||l.text!=m){b=this.setText(k,l.text);k.tspans=b}else{b=k.tspans||[]}}if(b.length){n=this.getBBoxText(k).height;j=k.el.dom.getAttribute("x");for(d=0,e=b.length;d<e;d++){g=(Ext.isFF3_0||Ext.isFF3_5)?2:4;b[d].setAttribute("x",j);b[d].setAttribute("dy",d?n*1.2:n/g)}k.dirty=true}},setText:function(k,d){var h=this,a=k.el.dom,b=[],m,j,l,e,g,c;while(a.firstChild){a.removeChild(a.firstChild)}c=String(d).split("\n");for(e=0,g=c.length;e<g;e++){l=c[e];if(l){j=h.createSvgElement("tspan");j.appendChild(document.createTextNode(Ext.htmlDecode(l)));a.appendChild(j);b[e]=j}}return b},renderAll:function(){this.items.each(this.renderItem,this)},renderItem:function(a){if(!this.el){return}if(!a.el){this.createSpriteElement(a)}if(a.zIndexDirty){this.applyZIndex(a)}if(a.dirty){this.applyAttrs(a);if(a.dirtyTransform){this.applyTransformations(a)}}},redraw:function(a){a.dirty=a.zIndexDirty=true;this.renderItem(a)},applyAttrs:function(r){var m=this,c=r.el,q=r.group,j=r.attr,s=m.parsers,g=m.gradientsMap||{},k=Ext.isSafari&&!Ext.isStrict,e,h,l,p,d,o,b,a,n;if(q){e=[].concat(q);l=e.length;for(h=0;h<l;h++){q=e[h];m.getGroup(q).add(r)}delete r.group}p=m.scrubAttrs(r)||{};r.bbox.plain=0;r.bbox.transform=0;if(r.type=="circle"||r.type=="ellipse"){p.cx=p.cx||p.x;p.cy=p.cy||p.y}else{if(r.type=="rect"){p.rx=p.ry=p.r}else{if(r.type=="path"&&p.d){p.d=Ext.draw.Draw.pathToString(Ext.draw.Draw.pathToAbsolute(p.d))}}}r.dirtyPath=false;if(p["clip-rect"]){m.setClip(r,p);delete p["clip-rect"]}if(r.type=="text"&&p.font&&r.dirtyFont){c.set({style:"font: "+p.font})}if(r.type=="image"){c.dom.setAttributeNS(m.xlink,"href",p.src)}Ext.applyIf(p,m.minDefaults[r.type]);if(r.dirtyHidden){(j.hidden)?m.hidePrim(r):m.showPrim(r);r.dirtyHidden=false}for(o in p){if(p.hasOwnProperty(o)&&p[o]!=null){if(k&&("color|stroke|fill".indexOf(o)>-1)&&(p[o] in g)){p[o]=g[p[o]]}if(o=="hidden"&&r.type=="text"){continue}if(o in s){c.dom.setAttribute(o,s[o](p[o],r,m))}else{c.dom.setAttribute(o,p[o])}}}if(r.type=="text"){m.tuneText(r,p)}r.dirtyFont=false;b=j.style;if(b){c.setStyle(b)}r.dirty=false;if(Ext.isSafari3){m.webkitRect.show();setTimeout(function(){m.webkitRect.hide()})}},setClip:function(b,g){var e=this,d=g["clip-rect"],a,c;if(d){if(b.clip){b.clip.parentNode.parentNode.removeChild(b.clip.parentNode)}a=e.createSvgElement("clipPath");c=e.createSvgElement("rect");a.id=Ext.id(null,"ext-clip-");c.setAttribute("x",d.x);c.setAttribute("y",d.y);c.setAttribute("width",d.width);c.setAttribute("height",d.height);a.appendChild(c);e.getDefs().appendChild(a);b.el.dom.setAttribute("clip-path","url(#"+a.id+")");b.clip=c}},applyZIndex:function(d){var g=this,b=g.items,a=b.indexOf(d),e=d.el,c;if(g.el.dom.childNodes[a+2]!==e.dom){if(a>0){do{c=b.getAt(--a).el}while(!c&&a>0)}e.insertAfter(c||g.bgRect)}d.zIndexDirty=false},createItem:function(a){var b=new Ext.draw.Sprite(a);b.surface=this;return b},addGradient:function(h){h=Ext.draw.Draw.parseGradient(h);var e=this,d=h.stops.length,a=h.vector,l=Ext.isSafari&&!Ext.isStrict,j,g,k,c,b;b=e.gradientsMap||{};if(!l){if(h.type=="linear"){j=e.createSvgElement("linearGradient");j.setAttribute("x1",a[0]);j.setAttribute("y1",a[1]);j.setAttribute("x2",a[2]);j.setAttribute("y2",a[3])}else{j=e.createSvgElement("radialGradient");j.setAttribute("cx",h.centerX);j.setAttribute("cy",h.centerY);j.setAttribute("r",h.radius);if(Ext.isNumber(h.focalX)&&Ext.isNumber(h.focalY)){j.setAttribute("fx",h.focalX);j.setAttribute("fy",h.focalY)}}j.id=h.id;e.getDefs().appendChild(j);for(c=0;c<d;c++){g=h.stops[c];k=e.createSvgElement("stop");k.setAttribute("offset",g.offset+"%");k.setAttribute("stop-color",g.color);k.setAttribute("stop-opacity",g.opacity);j.appendChild(k)}}else{b["url(#"+h.id+")"]=h.stops[0].color}e.gradientsMap=b},hasCls:function(a,b){return b&&(" "+(a.el.dom.getAttribute("class")||"")+" ").indexOf(" "+b+" ")!=-1},addCls:function(e,h){var g=e.el,d,a,c,b=[],j=g.getAttribute("class")||"";if(!Ext.isArray(h)){if(typeof h=="string"&&!this.hasCls(e,h)){g.set({"class":j+" "+h})}}else{for(d=0,a=h.length;d<a;d++){c=h[d];if(typeof c=="string"&&(" "+j+" ").indexOf(" "+c+" ")==-1){b.push(c)}}if(b.length){g.set({"class":" "+b.join(" ")})}}},removeCls:function(k,g){var h=this,b=k.el,d=b.getAttribute("class")||"",c,j,e,l,a;if(!Ext.isArray(g)){g=[g]}if(d){a=d.replace(h.trimRe," ").split(h.spacesRe);for(c=0,e=g.length;c<e;c++){l=g[c];if(typeof l=="string"){l=l.replace(h.trimRe,"");j=Ext.Array.indexOf(a,l);if(j!=-1){Ext.Array.erase(a,j,1)}}}b.set({"class":a.join(" ")})}},destroy:function(){var a=this;a.callParent();if(a.el){a.el.remove()}if(a._defs){Ext.get(a._defs).destroy()}if(a.bgRect){Ext.get(a.bgRect).destroy()}if(a.webkitRect){Ext.get(a.webkitRect).destroy()}delete a.el}});Ext.define("Ext.draw.engine.SvgExporter",function(){var b=/,/g,c=/(-?\d*\.?\d*){1}(em|ex|px|in|cm|mm|pt|pc|%)\s('*.*'*)/,j=/rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/g,h=/rgba\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,([\d\.]+)\)/g,g,i,e,m,n=function(o){g=o;i=g.length;e=g.width;m=g.height},k={path:function(s){var o=s.attr,v=o.path,r="",t,u,q;if(Ext.isArray(v[0])){q=v.length;for(u=0;u<q;u++){r+=v[u].join(" ")}}else{if(Ext.isArray(v)){r=v.join(" ")}else{r=v.replace(b," ")}}t=d({d:r,fill:o.fill||"none",stroke:o.stroke,"fill-opacity":o.opacity,"stroke-width":o["stroke-width"],"stroke-opacity":o["stroke-opacity"],"z-index":o.zIndex,transform:s.matrix.toSvg()});return"<path "+t+"/>"},text:function(u){var r=u.attr,q=c.exec(r.font),w=(q&&q[1])||"12",p=(q&&q[3])||"Arial",v=r.text,t=(Ext.isFF3_0||Ext.isFF3_5)?2:4,o="",s;u.getBBox();o+='<tspan x="'+(r.x||"")+'" dy="';o+=(w/t)+'">';o+=Ext.htmlEncode(v)+"</tspan>";s=d({x:r.x,y:r.y,"font-size":w,"font-family":p,"font-weight":r["font-weight"],"text-anchor":r["text-anchor"],fill:r.fill||"#000","fill-opacity":r.opacity,transform:u.matrix.toSvg()});return"<text "+s+">"+o+"</text>"},rect:function(p){var o=p.attr,q=d({x:o.x,y:o.y,rx:o.rx,ry:o.ry,width:o.width,height:o.height,fill:o.fill||"none","fill-opacity":o.opacity,stroke:o.stroke,"stroke-opacity":o["stroke-opacity"],"stroke-width":o["stroke-width"],transform:p.matrix&&p.matrix.toSvg()});return"<rect "+q+"/>"},circle:function(p){var o=p.attr,q=d({cx:o.x,cy:o.y,r:o.radius,fill:o.translation.fill||o.fill||"none","fill-opacity":o.opacity,stroke:o.stroke,"stroke-opacity":o["stroke-opacity"],"stroke-width":o["stroke-width"],transform:p.matrix.toSvg()});return"<circle "+q+" />"},image:function(p){var o=p.attr,q=d({x:o.x-(o.width/2>>0),y:o.y-(o.height/2>>0),width:o.width,height:o.height,"xlink:href":o.src,transform:p.matrix.toSvg()});return"<image "+q+" />"}},a=function(){var o='<?xml version="1.0" standalone="yes"?>';o+='<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">';return o},l=function(){var w='<svg width="'+e+'px" height="'+m+'px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1">',p="",H,F,v,q,G,J,z,x,t,y,B,o,K,u,E,C,I,D,s,r;v=g.items.items;F=v.length;G=function(O){var V=O.childNodes,S=V.length,R=0,P,Q,L="",M,U,N,T;for(;R<S;R++){M=V[R];U=M.attributes;N=M.tagName;L+="<"+N;for(Q=0,P=U.length;Q<P;Q++){T=U.item(Q);L+=" "+T.name+'="'+T.value+'"'}L+=">";if(M.childNodes.length>0){L+=G(M)}L+="</"+N+">"}return L};if(g.getDefs){p=G(g.getDefs())}else{x=g.gradientsColl;if(x){t=x.keys;y=x.items;B=0;o=t.length}for(;B<o;B++){K=t[B];u=y[B];q=g.gradientsColl.getByKey(K);p+='<linearGradient id="'+K+'" x1="0" y1="0" x2="1" y2="1">';var A=q.colors.replace(j,"rgb($1|$2|$3)");A=A.replace(h,"rgba($1|$2|$3|$4)");J=A.split(",");for(E=0,I=J.length;E<I;E++){z=J[E].split(" ");A=Ext.draw.Color.fromString(z[1].replace(/\|/g,","));p+='<stop offset="'+z[0]+'" stop-color="'+A.toString()+'" stop-opacity="1"></stop>'}p+="</linearGradient>"}}w+="<defs>"+p+"</defs>";w+=k.rect({attr:{width:"100%",height:"100%",fill:"#fff",stroke:"none",opacity:"0"}});D=new Array(F);for(E=0;E<F;E++){D[E]=E}D.sort(function(M,L){s=v[M].attr.zIndex||0;r=v[L].attr.zIndex||0;if(s==r){return M-L}return s-r});for(E=0;E<F;E++){H=v[D[E]];if(!H.attr.hidden){w+=k[H.type](H)}}w+="</svg>";return w},d=function(q){var p="",o;for(o in q){if(q.hasOwnProperty(o)&&q[o]!=null){p+=o+'="'+q[o]+'" '}}return p};return{singleton:true,generate:function(o,p){p=p||{};n(o);return a()+l()}}});Ext.define("Ext.draw.engine.Vml",{extend:"Ext.draw.Surface",requires:["Ext.draw.Draw","Ext.draw.Color","Ext.draw.Sprite","Ext.draw.Matrix","Ext.Element"],engine:"Vml",map:{M:"m",L:"l",C:"c",Z:"x",m:"t",l:"r",c:"v",z:"x"},bitesRe:/([clmz]),?([^clmz]*)/gi,valRe:/-?[^,\s\-]+/g,fillUrlRe:/^url\(\s*['"]?([^\)]+?)['"]?\s*\)$/i,pathlike:/^(path|rect)$/,NonVmlPathRe:/[ahqstv]/ig,partialPathRe:/[clmz]/g,fontFamilyRe:/^['"]+|['"]+$/g,baseVmlCls:Ext.baseCSSPrefix+"vml-base",vmlGroupCls:Ext.baseCSSPrefix+"vml-group",spriteCls:Ext.baseCSSPrefix+"vml-sprite",measureSpanCls:Ext.baseCSSPrefix+"vml-measure-span",zoom:21600,coordsize:1000,coordorigin:"0 0",zIndexShift:0,orderSpritesByZIndex:false,path2vml:function(t){var n=this,u=n.NonVmlPathRe,b=n.map,e=n.valRe,s=n.zoom,d=n.bitesRe,g=Ext.Function.bind(Ext.draw.Draw.pathToAbsolute,Ext.draw.Draw),m,o,c,a,k,q,h,l;if(String(t).match(u)){g=Ext.Function.bind(Ext.draw.Draw.path2curve,Ext.draw.Draw)}else{if(!String(t).match(n.partialPathRe)){m=String(t).replace(d,function(r,w,j){var v=[],i=w.toLowerCase()=="m",p=b[w];j.replace(e,function(x){if(i&&v.length===2){p+=v+b[w=="m"?"l":"L"];v=[]}v.push(Math.round(x*s))});return p+v});return m}}o=g(t);m=[];for(k=0,q=o.length;k<q;k++){c=o[k];a=o[k][0].toLowerCase();if(a=="z"){a="x"}for(h=1,l=c.length;h<l;h++){a+=Math.round(c[h]*n.zoom)+(h!=l-1?",":"")}m.push(a)}return m.join(" ")},translateAttrs:{radius:"r",radiusX:"rx",radiusY:"ry",lineWidth:"stroke-width",fillOpacity:"fill-opacity",strokeOpacity:"stroke-opacity",strokeLinejoin:"stroke-linejoin"},minDefaults:{circle:{fill:"none",stroke:null,"stroke-width":null,opacity:null,"fill-opacity":null,"stroke-opacity":null},ellipse:{cx:0,cy:0,rx:0,ry:0,fill:"none",stroke:null,"stroke-width":null,opacity:null,"fill-opacity":null,"stroke-opacity":null},rect:{x:0,y:0,width:0,height:0,rx:0,ry:0,fill:"none",stroke:null,"stroke-width":null,opacity:null,"fill-opacity":null,"stroke-opacity":null},text:{x:0,y:0,"text-anchor":"start",font:'10px "Arial"',fill:"#000",stroke:null,"stroke-width":null,opacity:null,"fill-opacity":null,"stroke-opacity":null},path:{d:"M0,0",fill:"none",stroke:null,"stroke-width":null,opacity:null,"fill-opacity":null,"stroke-opacity":null},image:{x:0,y:0,width:0,height:0,preserveAspectRatio:"none",opacity:null}},onMouseEnter:function(a){this.fireEvent("mouseenter",a)},onMouseLeave:function(a){this.fireEvent("mouseleave",a)},processEvent:function(b,g){var d=g.getTarget(),a=this.surface,c;this.fireEvent(b,g);c=this.items.get(d.id);if(c){c.fireEvent(b,c,g)}},createSpriteElement:function(h){var e=this,d=h.attr,g=h.type,j=e.zoom,b=h.vml||(h.vml={}),k=Math.round,c=(g==="image")?e.createNode("image"):e.createNode("shape"),l,i,a;c.coordsize=j+" "+j;c.coordorigin=d.coordorigin||"0 0";Ext.get(c).addCls(e.spriteCls);if(g=="text"){b.path=l=e.createNode("path");l.textpathok=true;b.textpath=a=e.createNode("textpath");a.on=true;c.appendChild(a);c.appendChild(l)}c.id=h.id;h.el=Ext.get(c);h.el.setStyle("zIndex",-e.zIndexShift);e.el.appendChild(c);if(g!=="image"){i=e.createNode("skew");i.on=true;c.appendChild(i);h.skew=i}h.matrix=new Ext.draw.Matrix();h.bbox={plain:null,transform:null};this.applyAttrs(h);this.applyTransformations(h);h.fireEvent("render",h);return h.el},getBBoxText:function(b){var a=b.vml;return{x:a.X+(a.bbx||0)-a.W/2,y:a.Y-a.H/2,width:a.W,height:a.H}},applyAttrs:function(m){var s=this,c=m.vml,j=m.group,a=m.attr,b=m.el,o=b.dom,p,u,r,n,k,q,l,t,e,d,h,g;if(j){r=[].concat(j);k=r.length;for(n=0;n<k;n++){j=r[n];s.getGroup(j).add(m)}delete m.group}q=s.scrubAttrs(m)||{};if(m.zIndexDirty){s.setZIndex(m)}Ext.applyIf(q,s.minDefaults[m.type]);if(m.type=="image"){Ext.apply(m.attr,{x:q.x,y:q.y,width:q.width,height:q.height});b.setStyle({width:q.width+"px",height:q.height+"px"});o.src=q.src}if(o.href){o.href=q.href}if(o.title){o.title=q.title}if(o.target){o.target=q.target}if(o.cursor){o.cursor=q.cursor}if(m.dirtyHidden){(q.hidden)?s.hidePrim(m):s.showPrim(m);m.dirtyHidden=false}if(m.dirtyPath){if(m.type=="circle"||m.type=="ellipse"){e=q.x;d=q.y;h=q.rx||q.r||0;g=q.ry||q.r||0;o.path=Ext.String.format("ar{0},{1},{2},{3},{4},{1},{4},{1}",Math.round((e-h)*s.zoom),Math.round((d-g)*s.zoom),Math.round((e+h)*s.zoom),Math.round((d+g)*s.zoom),Math.round(e*s.zoom));m.dirtyPath=false}else{if(m.type!=="text"&&m.type!=="image"){m.attr.path=q.path=s.setPaths(m,q)||q.path;o.path=s.path2vml(q.path);m.dirtyPath=false}}}if("clip-rect" in q){s.setClip(m,q)}if(m.type=="text"){s.setTextAttributes(m,q)}if(q.opacity||q["stroke-opacity"]||q.fill){s.setFill(m,q)}if(q.stroke||q["stroke-opacity"]||q.fill){s.setStroke(m,q)}p=a.style;if(p){b.setStyle(p)}m.dirty=false},setZIndex:function(e){var h=this,j=e.attr.zIndex,b=h.zIndexShift,c,a,g,d;if(j<b){c=h.items.items;a=c.length;for(d=0;d<a;d++){if((j=c[d].attr.zIndex)&&j<b){b=j}}h.zIndexShift=b;for(d=0;d<a;d++){g=c[d];if(g.el){g.el.setStyle("zIndex",g.attr.zIndex-b)}g.zIndexDirty=false}}else{if(e.el){e.el.setStyle("zIndex",j-b);e.zIndexDirty=false}}},setPaths:function(c,d){var a=c.attr,b=c.attr["stroke-width"]||1;c.bbox.plain=null;c.bbox.transform=null;if(c.type=="circle"){a.rx=a.ry=d.r;return Ext.draw.Draw.ellipsePath(c)}else{if(c.type=="ellipse"){a.rx=d.rx;a.ry=d.ry;return Ext.draw.Draw.ellipsePath(c)}else{if(c.type=="rect"){a.rx=a.ry=d.r;return Ext.draw.Draw.rectPath(c)}else{if(c.type=="path"&&a.path){return Ext.draw.Draw.pathToAbsolute(a.path)}}}}return false},setFill:function(k,e){var h=this,c=k.el.dom,j=c.fill,b=false,g,i,a,l,d;if(!j){j=c.fill=h.createNode("fill");b=true}if(Ext.isArray(e.fill)){e.fill=e.fill[0]}if(e.fill=="none"){j.on=false}else{if(typeof e.opacity=="number"){j.opacity=e.opacity}if(typeof e["fill-opacity"]=="number"){j.opacity=e["fill-opacity"]}j.on=true;if(typeof e.fill=="string"){a=e.fill.match(h.fillUrlRe);if(a){a=a[1];if(a.charAt(0)=="#"){i=h.gradientsColl.getByKey(a.substring(1))}if(i){l=e.rotation;d=-(i.angle+270+(l?l.degrees:0))%360;if(d===0){d=180}j.angle=d;j.type="gradient";j.method="sigma";if(j.colors){j.colors.value=i.colors}else{j.colors=i.colors}}else{j.src=a;j.type="tile"}}else{j.color=Ext.draw.Color.toHex(e.fill);j.src="";j.type="solid"}}}if(b){c.appendChild(j)}},setStroke:function(b,h){var e=this,d=b.el.dom,i=b.strokeEl,g=false,c,a;if(!i){i=b.strokeEl=e.createNode("stroke");g=true}if(Ext.isArray(h.stroke)){h.stroke=h.stroke[0]}if(!h.stroke||h.stroke=="none"||h.stroke==0||h["stroke-width"]==0){i.on=false}else{i.on=true;if(h.stroke&&!h.stroke.match(e.fillUrlRe)){i.color=Ext.draw.Color.toHex(h.stroke)}i.dashstyle=h["stroke-dasharray"]?"dash":"solid";i.joinstyle=h["stroke-linejoin"];i.endcap=h["stroke-linecap"]||"round";i.miterlimit=h["stroke-miterlimit"]||8;c=parseFloat(h["stroke-width"]||1)*0.75;a=h["stroke-opacity"]||1;if(Ext.isNumber(c)&&c<1){i.weight=1;i.opacity=a*c}else{i.weight=c;i.opacity=a}}if(g){d.appendChild(i)}},setClip:function(b,g){var e=this,c=b.el,a=b.clipEl,d=String(g["clip-rect"]).split(e.separatorRe);if(!a){a=b.clipEl=e.el.insertFirst(Ext.getDoc().dom.createElement("div"));a.addCls(Ext.baseCSSPrefix+"vml-sprite")}if(d.length==4){d[2]=+d[2]+(+d[0]);d[3]=+d[3]+(+d[1]);a.setStyle("clip",Ext.String.format("rect({1}px {2}px {3}px {0}px)",d[0],d[1],d[2],d[3]));a.setSize(e.el.width,e.el.height)}else{a.setStyle("clip","")}},setTextAttributes:function(i,c){var h=this,a=i.vml,e=a.textpath.style,g=h.span.style,j=h.zoom,k=Math.round,l={fontSize:"font-size",fontWeight:"font-weight",fontStyle:"font-style"},b,d;if(i.dirtyFont){if(c.font){e.font=g.font=c.font}if(c["font-family"]){e.fontFamily='"'+c["font-family"].split(",")[0].replace(h.fontFamilyRe,"")+'"';g.fontFamily=c["font-family"]}for(b in l){d=c[l[b]];if(d){e[b]=g[b]=d}}h.setText(i,c.text);if(a.textpath.string){h.span.innerHTML=String(a.textpath.string).replace(/</g,"<").replace(/&/g,"&").replace(/\n/g,"<br/>")}a.W=h.span.offsetWidth;a.H=h.span.offsetHeight+2;if(c["text-anchor"]=="middle"){e["v-text-align"]="center"}else{if(c["text-anchor"]=="end"){e["v-text-align"]="right";a.bbx=-Math.round(a.W/2)}else{e["v-text-align"]="left";a.bbx=Math.round(a.W/2)}}}a.X=c.x;a.Y=c.y;a.path.v=Ext.String.format("m{0},{1}l{2},{1}",Math.round(a.X*j),Math.round(a.Y*j),Math.round(a.X*j)+1);i.bbox.plain=null;i.bbox.transform=null;i.dirtyFont=false},setText:function(a,b){a.vml.textpath.string=Ext.htmlDecode(b)},hide:function(){this.el.hide()},show:function(){this.el.show()},hidePrim:function(a){a.el.addCls(Ext.baseCSSPrefix+"hide-visibility")},showPrim:function(a){a.el.removeCls(Ext.baseCSSPrefix+"hide-visibility")},setSize:function(b,a){var c=this;b=b||c.width;a=a||c.height;c.width=b;c.height=a;if(c.el){if(b!=undefined){c.el.setWidth(b)}if(a!=undefined){c.el.setHeight(a)}}c.callParent(arguments)},applyViewBox:function(){var g=this,h=g.viewBox,e=g.width,b=g.height,c,a,d;g.callParent();if(h&&(e||b)){c=g.items.items;a=c.length;for(d=0;d<a;d++){g.applyTransformations(c[d])}}},onAdd:function(a){this.callParent(arguments);if(this.el){this.renderItem(a)}},onRemove:function(a){if(a.el){a.el.remove();delete a.el}this.callParent(arguments)},render:function(a){var c=this,g=Ext.getDoc().dom,b;if(!c.createNode){try{if(!g.namespaces.rvml){g.namespaces.add("rvml","urn:schemas-microsoft-com:vml")}c.createNode=function(e){return g.createElement("<rvml:"+e+' class="rvml">')}}catch(d){c.createNode=function(e){return g.createElement("<"+e+' xmlns="urn:schemas-microsoft.com:vml" class="rvml">')}}}if(!c.el){b=g.createElement("div");c.el=Ext.get(b);c.el.addCls(c.baseVmlCls);c.span=g.createElement("span");Ext.get(c.span).addCls(c.measureSpanCls);b.appendChild(c.span);c.el.setSize(c.width||0,c.height||0);a.appendChild(b);c.el.on({scope:c,mouseup:c.onMouseUp,mousedown:c.onMouseDown,mouseover:c.onMouseOver,mouseout:c.onMouseOut,mousemove:c.onMouseMove,mouseenter:c.onMouseEnter,mouseleave:c.onMouseLeave,click:c.onClick,dblclick:c.onDblClick})}c.renderAll()},renderAll:function(){this.items.each(this.renderItem,this)},redraw:function(a){a.dirty=true;this.renderItem(a)},renderItem:function(a){if(!this.el){return}if(!a.el){this.createSpriteElement(a)}if(a.dirty){this.applyAttrs(a);if(a.dirtyTransform){this.applyTransformations(a)}}},rotationCompensation:function(d,c,a){var b=new Ext.draw.Matrix();b.rotate(-d,0.5,0.5);return{x:b.x(c,a),y:b.y(c,a)}},transform:function(x,I){var H=this,b=H.getBBox(x,true),j=b.x+b.width*0.5,h=b.y+b.height*0.5,B=new Ext.draw.Matrix(),q=x.transformations,v=q.length,C=0,o=0,d=1,c=1,n="",g=x.el,E=g.dom,z=E.style,a=H.zoom,k=x.skew,D=H.viewBoxShift,G,F,s,l,r,p,A,w,u,t,e,m;for(;C<v;C++){s=q[C];l=s.type;if(l=="translate"){B.translate(s.x,s.y)}else{if(l=="rotate"){B.rotate(s.degrees,s.x,s.y);o+=s.degrees}else{if(l=="scale"){B.scale(s.x,s.y,s.centerX,s.centerY);d*=s.x;c*=s.y}}}}x.matrix=B.clone();if(I){return}if(D){B.prepend(D.scale,0,0,D.scale,D.dx*D.scale,D.dy*D.scale)}if(x.type!="image"&&k){k.origin="0,0";k.matrix=B.toString();m=B.offset();if(m[0]>32767){m[0]=32767}else{if(m[0]<-32768){m[0]=-32768}}if(m[1]>32767){m[1]=32767}else{if(m[1]<-32768){m[1]=-32768}}k.offset=m}else{z.filter=B.toFilter();z.left=Math.min(B.x(b.x,b.y),B.x(b.x+b.width,b.y),B.x(b.x,b.y+b.height),B.x(b.x+b.width,b.y+b.height))+"px";z.top=Math.min(B.y(b.x,b.y),B.y(b.x+b.width,b.y),B.y(b.x,b.y+b.height),B.y(b.x+b.width,b.y+b.height))+"px"}},createItem:function(a){return Ext.create("Ext.draw.Sprite",a)},getRegion:function(){return this.el.getRegion()},addCls:function(a,b){if(a&&a.el){a.el.addCls(b)}},removeCls:function(a,b){if(a&&a.el){a.el.removeCls(b)}},addGradient:function(g){var d=this.gradientsColl||(this.gradientsColl=Ext.create("Ext.util.MixedCollection")),a=[],j=Ext.create("Ext.util.MixedCollection"),l,e,b,h,k,c;j.addAll(g.stops);j.sortByKey("ASC",function(m,i){m=parseInt(m,10);i=parseInt(i,10);return m>i?1:(m<i?-1:0)});l=j.keys;e=j.items;b=l.length;for(c=0;c<b;c++){h=l[c];k=e[c];a.push(h+"% "+k.color)}d.add(g.id,{colors:a.join(","),angle:g.angle})},destroy:function(){var a=this;a.callParent(arguments);if(a.el){a.el.remove()}delete a.el}});Ext.define("Ext.flash.Component",{extend:"Ext.Component",alternateClassName:"Ext.FlashComponent",alias:"widget.flash",flashVersion:"9.0.115",backgroundColor:"#ffffff",wmode:"opaque",swfWidth:"100%",swfHeight:"100%",expressInstall:false,renderTpl:['<div id="{swfId}"></div>'],initComponent:function(){this.callParent();this.addEvents("success","failure")},beforeRender:function(){this.callParent();Ext.applyIf(this.renderData,{swfId:this.getSwfId()})},afterRender:function(){var b=this,a=Ext.apply({},b.flashParams),c=Ext.apply({},b.flashVars);b.callParent();a=Ext.apply({allowScriptAccess:"always",bgcolor:b.backgroundColor,wmode:b.wmode},a);c=Ext.apply({allowedDomain:document.location.hostname},c);new swfobject.embedSWF(b.url,b.getSwfId(),b.swfWidth,b.swfHeight,b.flashVersion,b.expressInstall?b.statics.EXPRESS_INSTALL_URL:undefined,c,a,b.flashAttributes,Ext.bind(b.swfCallback,b))},swfCallback:function(b){var a=this;if(b.success){a.swf=Ext.get(b.ref);a.onSuccess();a.fireEvent("success",a)}else{a.onFailure();a.fireEvent("failure",a)}},getSwfId:function(){return this.swfId||(this.swfId="extswf"+this.getAutoId())},onSuccess:function(){this.swf.setStyle("visibility","inherit")},onFailure:Ext.emptyFn,beforeDestroy:function(){var b=this,a=b.swf;if(a){swfobject.removeSWF(b.getSwfId());Ext.destroy(a);delete b.swf}b.callParent()},statics:{EXPRESS_INSTALL_URL:"http://swfobject.googlecode.com/svn/trunk/swfobject/expressInstall.swf"}});Ext.define("Ext.form.action.Action",{alternateClassName:"Ext.form.Action",submitEmptyText:true,constructor:function(a){if(a){Ext.apply(this,a)}var b=a.params;if(Ext.isString(b)){this.params=Ext.Object.fromQueryString(b)}},run:Ext.emptyFn,onFailure:function(a){this.response=a;this.failureType=Ext.form.action.Action.CONNECT_FAILURE;this.form.afterAction(this,false)},processResponse:function(a){this.response=a;if(!a.responseText&&!a.responseXML){return true}return(this.result=this.handleResponse(a))},getUrl:function(){return this.url||this.form.url},getMethod:function(){return(this.method||this.form.method||"POST").toUpperCase()},getParams:function(){return Ext.apply({},this.params,this.form.baseParams)},createCallback:function(){var c=this,a,b=c.form;return{success:c.onSuccess,failure:c.onFailure,scope:c,timeout:(this.timeout*1000)||(b.timeout*1000),upload:b.fileUpload?c.onSuccess:a}},statics:{CLIENT_INVALID:"client",SERVER_INVALID:"server",CONNECT_FAILURE:"connect",LOAD_FAILURE:"load"}});Ext.define("Ext.form.action.Load",{extend:"Ext.form.action.Action",requires:["Ext.data.Connection"],alternateClassName:"Ext.form.Action.Load",alias:"formaction.load",type:"load",run:function(){Ext.Ajax.request(Ext.apply(this.createCallback(),{method:this.getMethod(),url:this.getUrl(),headers:this.headers,params:this.getParams()}))},onSuccess:function(b){var a=this.processResponse(b),c=this.form;if(a===true||!a.success||!a.data){this.failureType=Ext.form.action.Action.LOAD_FAILURE;c.afterAction(this,false);return}c.clearInvalid();c.setValues(a.data);c.afterAction(this,true)},handleResponse:function(c){var a=this.form.reader,b,d;if(a){b=a.read(c);d=b.records&&b.records[0]?b.records[0].data:null;return{success:b.success,data:d}}return Ext.decode(c.responseText)}});Ext.define("Ext.form.action.Submit",{extend:"Ext.form.action.Action",alternateClassName:"Ext.form.Action.Submit",alias:"formaction.submit",type:"submit",run:function(){var a=this.form;if(this.clientValidation===false||a.isValid()){this.doSubmit()}else{this.failureType=Ext.form.action.Action.CLIENT_INVALID;a.afterAction(this,false)}},doSubmit:function(){var b,a=Ext.apply(this.createCallback(),{url:this.getUrl(),method:this.getMethod(),headers:this.headers});if(this.form.hasUpload()){b=a.form=this.buildForm();a.isUpload=true}else{a.params=this.getParams()}Ext.Ajax.request(a);if(b){Ext.removeNode(b)}},getParams:function(){var c=false,b=this.callParent(),a=this.form.getValues(c,c,this.submitEmptyText!==c);return Ext.apply({},a,b)},buildForm:function(){var k=[],i,q,e=this.form,d=this.getParams(),c=[],g=e.getFields().items,h,r=g.length,j,o,m,n,l,p,b;for(h=0;h<r;h++){j=g[h];if(j.isFileUpload()){c.push(j)}}function a(s,t){k.push({tag:"input",type:"hidden",name:s,value:Ext.String.htmlEncode(t)})}for(o in d){if(d.hasOwnProperty(o)){m=d[o];if(Ext.isArray(m)){l=m.length;for(n=0;n<l;n++){a(o,m[n])}}else{a(o,m)}}}i={tag:"form",action:this.getUrl(),method:this.getMethod(),target:this.target||"_self",style:"display:none",cn:k};if(c.length){i.encoding=i.enctype="multipart/form-data"}q=Ext.DomHelper.append(Ext.getBody(),i);b=c.length;for(p=0;p<b;p++){j=c[p];if(j.rendered){q.appendChild(j.extractFileInput())}}return q},onSuccess:function(b){var c=this.form,d=true,a=this.processResponse(b);if(a!==true&&!a.success){if(a.errors){c.markInvalid(a.errors)}this.failureType=Ext.form.action.Action.SERVER_INVALID;d=false}c.afterAction(this,d)},handleResponse:function(d){var h=this.form,e=h.errorReader,c,j,g,a,b;if(e){c=e.read(d);b=c.records;j=[];if(b){for(g=0,a=b.length;g<a;g++){j[g]=b[g].data}}if(j.length<1){j=null}return{success:c.success,errors:j}}return Ext.decode(d.responseText)}});Ext.define("Ext.util.ComponentDragger",{extend:"Ext.dd.DragTracker",autoStart:500,constructor:function(a,b){this.comp=a;this.initialConstrainTo=b.constrainTo;this.callParent([b])},onStart:function(c){var b=this,a=b.comp;this.startPosition=a.el.getXY();if(a.ghost&&!a.liveDrag){b.proxy=a.ghost();b.dragTarget=b.proxy.header.el}if(b.constrain||b.constrainDelegate){b.constrainTo=b.calculateConstrainRegion()}if(a.beginDrag){a.beginDrag()}},calculateConstrainRegion:function(){var e=this,b=e.comp,i=e.initialConstrainTo,g,h,a=e.proxy?e.proxy.el:b.el,d=(!e.constrainDelegate&&a.shadow&&!a.shadowDisabled)?a.shadow.getShadowSize():0;if(!(i instanceof Ext.util.Region)){i=Ext.fly(i).getViewRegion()}if(d){i.adjust(d[0],-d[1],-d[2],d[3])}if(!e.constrainDelegate){g=Ext.fly(e.dragTarget).getRegion();h=a.getRegion();i.adjust(g.top-h.top,g.right-h.right,g.bottom-h.bottom,g.left-h.left)}return i},onDrag:function(c){var b=this,a=(b.proxy&&!b.comp.liveDrag)?b.proxy:b.comp,d=b.getOffset(b.constrain||b.constrainDelegate?"dragTarget":null);a.setPagePosition(b.startPosition[0]+d[0],b.startPosition[1]+d[1])},onEnd:function(b){var a=this.comp;if(this.proxy&&!a.liveDrag){a.unghost()}if(a.endDrag){a.endDrag()}}});Ext.define("Ext.window.Window",{extend:"Ext.panel.Panel",alternateClassName:"Ext.Window",requires:["Ext.util.ComponentDragger","Ext.util.Region","Ext.EventManager"],alias:"widget.window",baseCls:Ext.baseCSSPrefix+"window",resizable:true,draggable:true,constrain:false,constrainHeader:false,plain:false,minimizable:false,maximizable:false,minHeight:50,minWidth:50,expandOnShow:true,collapsible:false,closable:true,hidden:true,autoRender:true,hideMode:"offsets",floating:true,ariaRole:"alertdialog",itemCls:Ext.baseCSSPrefix+"window-item",initialAlphaNum:/^[a-z0-9]/,overlapHeader:true,ignoreHeaderBorderManagement:true,alwaysFramed:true,isWindow:true,initComponent:function(){var a=this;a.frame=false;a.callParent();a.addEvents("resize","maximize","minimize","restore");if(a.plain){a.addClsWithUI("plain")}if(a.modal){a.ariaRole="dialog"}if(a.floating){a.on({element:"el",mousedown:a.onMouseDown,scope:a})}a.addStateEvents(["maximize","restore","resize","dragend"])},getElConfig:function(){var b=this,a;a=b.callParent();a.tabIndex=-1;return a},getState:function(){var b=this,c=b.callParent()||{},a=!!b.maximized;c.maximized=a;Ext.apply(c,{size:a?b.restoreSize:b.getSize(),pos:a?b.restorePos:b.getPosition()});return c},applyState:function(b){var a=this;if(b){a.maximized=b.maximized;if(a.maximized){a.hasSavedRestore=true;a.restoreSize=b.size;a.restorePos=b.pos}else{Ext.apply(a,{width:b.size.width,height:b.size.height,x:b.pos[0],y:b.pos[1]})}}},onMouseDown:function(b){var a;if(this.floating){if(Ext.fly(b.getTarget()).focusable()){a=true}this.toFront(a)}},onRender:function(b,a){var c=this;c.callParent(arguments);c.focusEl=c.el;if(c.maximizable){c.header.on({scope:c,dblclick:c.toggleMaximize})}},afterRender:function(){var a=this,b;a.callParent();if(a.maximized){a.maximized=false;a.maximize()}if(a.closable){b=a.getKeyMap();b.on(27,a.onEsc,a)}else{b=a.keyMap}if(b&&a.hidden){b.disable()}},initDraggable:function(){var b=this,a;if(!b.header){b.updateHeader(true)}if(b.header){a=Ext.applyIf({el:b.el,delegate:"#"+Ext.escapeId(b.header.id)},b.draggable);if(b.constrain||b.constrainHeader){a.constrain=b.constrain;a.constrainDelegate=b.constrainHeader;a.constrainTo=b.constrainTo||b.container}b.dd=new Ext.util.ComponentDragger(this,a);b.relayEvents(b.dd,["dragstart","drag","dragend"])}},onEsc:function(a,b){if(!Ext.FocusManager||!Ext.FocusManager.enabled||Ext.FocusManager.focusedCmp===this){b.stopEvent();this.close()}},beforeDestroy:function(){var a=this;if(a.rendered){delete this.animateTarget;a.hide();Ext.destroy(a.keyMap)}a.callParent()},addTools:function(){var a=this;a.callParent();if(a.minimizable){a.addTool({type:"minimize",handler:Ext.Function.bind(a.minimize,a,[])})}if(a.maximizable){a.addTool({type:"maximize",handler:Ext.Function.bind(a.maximize,a,[])});a.addTool({type:"restore",handler:Ext.Function.bind(a.restore,a,[]),hidden:true})}},getFocusEl:function(){return this.getDefaultFocus()},getDefaultFocus:function(){var c=this,b,d=c.defaultButton||c.defaultFocus,a;if(d!==undefined){if(Ext.isNumber(d)){b=c.query("button")[d]}else{if(Ext.isString(d)){a=d;if(a.match(c.initialAlphaNum)){b=c.down("#"+a)}if(!b){b=c.down(a)}}else{if(d.focus){b=d}}}}return b||c.el},onFocus:function(){var b=this,a;if((Ext.FocusManager&&Ext.FocusManager.enabled)||((a=b.getDefaultFocus())===b)){b.callParent(arguments)}else{a.focus()}},beforeLayout:function(){var a=this.el.shadow;this.callParent();if(a){a.hide()}},onShow:function(){var a=this;a.callParent(arguments);if(a.expandOnShow){a.expand(false)}a.syncMonitorWindowResize();if(a.keyMap){a.keyMap.enable()}},doClose:function(){var a=this;if(a.hidden){a.fireEvent("close",a);if(a.closeAction=="destroy"){this.destroy()}}else{a.hide(a.animateTarget,a.doClose,a)}},afterHide:function(){var a=this;a.syncMonitorWindowResize();if(a.keyMap){a.keyMap.disable()}a.callParent(arguments)},onWindowResize:function(){var b=this,a;if(b.maximized){b.fitContainer()}else{a=b.getSizeModel();if(a.width.natural||a.height.natural){b.updateLayout()}}b.doConstrain()},minimize:function(){this.fireEvent("minimize",this);return this},afterCollapse:function(){var a=this;if(a.maximizable){a.tools.maximize.hide();a.tools.restore.hide()}if(a.resizer){a.resizer.disable()}a.callParent(arguments)},afterExpand:function(){var a=this;if(a.maximized){a.tools.restore.show()}else{if(a.maximizable){a.tools.maximize.show()}}if(a.resizer){a.resizer.enable()}a.callParent(arguments)},maximize:function(){var a=this;if(!a.maximized){a.expand(false);if(!a.hasSavedRestore){a.restoreSize=a.getSize();a.restorePos=a.getPosition(true)}if(a.maximizable){a.tools.maximize.hide();a.tools.restore.show()}a.maximized=true;a.el.disableShadow();if(a.dd){a.dd.disable()}if(a.resizer){a.resizer.disable()}if(a.collapseTool){a.collapseTool.hide()}a.el.addCls(Ext.baseCSSPrefix+"window-maximized");a.container.addCls(Ext.baseCSSPrefix+"window-maximized-ct");a.syncMonitorWindowResize();a.fitContainer();a.fireEvent("maximize",a)}return a},restore:function(){var a=this,b=a.tools;if(a.maximized){delete a.hasSavedRestore;a.removeCls(Ext.baseCSSPrefix+"window-maximized");if(b.restore){b.restore.hide()}if(b.maximize){b.maximize.show()}if(a.collapseTool){a.collapseTool.show()}a.maximized=false;a.setPosition(a.restorePos);a.setSize(a.restoreSize);delete a.restorePos;delete a.restoreSize;a.el.enableShadow(true);if(a.dd){a.dd.enable()}if(a.resizer){a.resizer.enable()}a.container.removeCls(Ext.baseCSSPrefix+"window-maximized-ct");a.syncMonitorWindowResize();a.doConstrain();a.fireEvent("restore",a)}return a},syncMonitorWindowResize:function(){var b=this,c=b._monitoringResize,d=b.monitorResize||b.constrain||b.constrainHeader||b.maximized,a=b.hidden||b.destroying||b.isDestroyed;if(d&&!a){if(!c){Ext.EventManager.onWindowResize(b.onWindowResize,b);b._monitoringResize=true}}else{if(c){Ext.EventManager.removeResizeListener(b.onWindowResize,b);b._monitoringResize=false}}},toggleMaximize:function(){return this[this.maximized?"restore":"maximize"]()}});Ext.define("Ext.layout.component.field.Field",{extend:"Ext.layout.component.Auto",alias:"layout.field",uses:["Ext.tip.QuickTip","Ext.util.TextMetrics","Ext.util.CSS"],type:"field",naturalSizingProp:"size",beginLayout:function(g){var e=this,a=e.owner,c=g.widthModel,b=a[e.naturalSizingProp],d;e.callParent(arguments);g.labelStrategy=e.getLabelStrategy();g.errorStrategy=e.getErrorStrategy();g.labelContext=g.getEl("labelEl");g.bodyCellContext=g.getEl("bodyEl");g.inputContext=g.getEl("inputEl");g.errorContext=g.getEl("errorEl");if((Ext.isIE6||Ext.isIE7)&&Ext.isStrict&&g.inputContext){e.ieInputWidthAdjustment=g.inputContext.getPaddingInfo().width+g.inputContext.getBorderInfo().width}g.labelStrategy.prepare(g,a);g.errorStrategy.prepare(g,a);if(c.shrinkWrap){e.beginLayoutShrinkWrap(g)}else{if(c.natural){if(typeof b=="number"&&!a.inputWidth){e.beginLayoutFixed(g,(d=b*6.5+20),"px")}else{e.beginLayoutShrinkWrap(g)}g.setWidth(d,false)}else{e.beginLayoutFixed(g,"100","%")}}},beginLayoutFixed:function(c,b,e){var a=c.target,d=a.inputEl,g=a.inputWidth;a.el.setStyle("table-layout","fixed");a.bodyEl.setStyle("width",b+e);if(d&&g){d.setStyle("width",g+"px")}c.isFixed=true},beginLayoutShrinkWrap:function(b){var a=b.target,c=a.inputEl,d=a.inputWidth;if(c&&c.dom){c.dom.removeAttribute("size");if(d){c.setStyle("width",d+"px")}}a.el.setStyle("table-layout","auto");a.bodyEl.setStyle("width","")},finishedLayout:function(b){var a=this.owner;this.callParent(arguments);b.labelStrategy.finishedLayout(b,a);b.errorStrategy.finishedLayout(b,a)},calculateOwnerHeightFromContentHeight:function(b,a){return a},measureContentHeight:function(a){return a.el.getHeight()},measureContentWidth:function(a){return a.el.getWidth()},measureLabelErrorHeight:function(a){return a.labelStrategy.getHeight(a)+a.errorStrategy.getHeight(a)},onFocus:function(){this.getErrorStrategy().onFocus(this.owner)},getLabelStrategy:function(){var b=this,c=b.labelStrategies,a=b.owner.labelAlign;return c[a]||c.base},getErrorStrategy:function(){var c=this,a=c.owner,d=c.errorStrategies,b=a.msgTarget;return !a.preventMark&&Ext.isString(b)?(d[b]||d.elementId):d.none},labelStrategies:(function(){var a={prepare:function(e,b){var c=b.labelCls+"-"+b.labelAlign,d=b.labelEl;if(d){d.addCls(c)}},getHeight:function(){return 0},finishedLayout:Ext.emptyFn};return{base:a,top:Ext.applyIf({getHeight:function(e){var c=e.labelContext,d=c.props,b=d.height;if(b===undefined){d.height=b=c.el.getHeight()}return b}},a),left:a,right:a}}()),errorStrategies:(function(){function d(h){var i=Ext.layout.component.field.Field.tip,j;if(i&&i.isVisible()){j=i.activeTarget;if(j&&j.el===h.getActionEl().dom){i.toFront(true)}}}var c=Ext.applyIf,b=Ext.emptyFn,a=Ext.baseCSSPrefix+"form-invalid-icon",g,e={prepare:function(j,h){var i=h.errorEl;if(i){i.setDisplayed(false)}},getHeight:function(){return 0},onFocus:b,finishedLayout:b};return{none:e,side:c({prepare:function(k,i){var m=i.errorEl,j=i.sideErrorCell,h=i.hasActiveError(),l;if(!g){g=(l=Ext.getBody().createChild({style:"position:absolute",cls:a})).getWidth();l.remove()}m.addCls(a);m.set({"data-errorqtip":i.getActiveError()||""});if(i.autoFitErrors){m.setDisplayed(h)}else{m.setVisible(h)}if(j&&i.autoFitErrors){j.setDisplayed(h)}i.bodyEl.dom.colSpan=i.getBodyColspan();Ext.layout.component.field.Field.initTip()},onFocus:d},e),under:c({prepare:function(j,h){var k=h.errorEl,i=Ext.baseCSSPrefix+"form-invalid-under";k.addCls(i);k.setDisplayed(h.hasActiveError())},getHeight:function(k){var h=0,i,j;if(k.target.hasActiveError()){i=k.errorContext;j=i.props;h=j.height;if(h===undefined){j.height=h=i.el.getHeight()}}return h}},e),qtip:c({prepare:function(i,h){Ext.layout.component.field.Field.initTip();h.getActionEl().set({"data-errorqtip":h.getActiveError()||""})},onFocus:d},e),title:c({prepare:function(i,h){h.el.set({title:h.getActiveError()||""})}},e),elementId:c({prepare:function(i,h){var j=Ext.fly(h.msgTarget);if(j){j.dom.innerHTML=h.getActiveError()||"";j.setDisplayed(h.hasActiveError())}}},e)}}()),statics:{initTip:function(){var a=this.tip;if(!a){a=this.tip=Ext.create("Ext.tip.QuickTip",{baseCls:Ext.baseCSSPrefix+"form-invalid-tip"});a.tagConfig=Ext.apply({},{attribute:"errorqtip"},a.tagConfig)}},destroyTip:function(){var a=this.tip;if(a){a.destroy();delete this.tip}}}});Ext.define("Ext.layout.component.field.Text",{extend:"Ext.layout.component.field.Field",alias:"layout.textfield",requires:["Ext.util.TextMetrics"],type:"textfield",canGrowWidth:true,beginLayoutCycle:function(b){var a=this;a.callParent(arguments);if(b.shrinkWrap){b.inputContext.el.setStyle("height","")}},measureContentWidth:function(c){var h=this,b=h.owner,a=h.callParent(arguments),g=c.inputContext,k,j,d,i,e;if(b.grow&&h.canGrowWidth&&!c.state.growHandled){k=b.inputEl;j=Ext.util.Format.htmlEncode(k.dom.value||(b.hasFocus?"":b.emptyText)||"");j+=b.growAppend;d=k.getTextWidth(j)+g.getFrameInfo().width;i=b.growMax;e=Math.min(i,a);i=Math.max(b.growMin,i,e);d=Ext.Number.constrain(d,b.growMin,i);g.setWidth(d);c.state.growHandled=true;g.domBlock(h,"width");a=NaN}return a},publishInnerHeight:function(b,a){b.inputContext.setHeight(a-this.measureLabelErrorHeight(b))},beginLayoutFixed:function(d,a,e){var b=this,c=b.ieInputWidthAdjustment;if(c){b.owner.bodyEl.setStyle("padding-right",c+"px");if(e==="px"){a-=c}}b.callParent(arguments)}});Ext.define("Ext.form.Labelable",{requires:["Ext.XTemplate"],autoEl:{tag:"table",cellpadding:0},childEls:["labelCell","labelEl","bodyEl","sideErrorCell","errorEl","inputRow","bottomPlaceHolder"],labelableRenderTpl:['<tr id="{id}-inputRow" <tpl if="inFormLayout">id="{id}"</tpl>>','<tpl if="labelOnLeft">','<td id="{id}-labelCell" style="{labelCellStyle}" {labelCellAttrs}>',"{beforeLabelTpl}",'<label id="{id}-labelEl" {labelAttrTpl}<tpl if="inputId"> for="{inputId}"</tpl> class="{labelCls}"','<tpl if="labelStyle"> style="{labelStyle}"</tpl>>',"{beforeLabelTextTpl}",'<tpl if="fieldLabel">{fieldLabel}{labelSeparator}</tpl>',"{afterLabelTextTpl}","</label>","{afterLabelTpl}","</td>","</tpl>",'<td class="{baseBodyCls} {fieldBodyCls}" id="{id}-bodyEl" colspan="{bodyColspan}" role="presentation">',"{beforeBodyEl}","<tpl if=\"labelAlign=='top'\">","{beforeLabelTpl}",'<div id="{id}-labelCell" style="{labelCellStyle}">','<label id="{id}-labelEl" {labelAttrTpl}<tpl if="inputId"> for="{inputId}"</tpl> class="{labelCls}"','<tpl if="labelStyle"> style="{labelStyle}"</tpl>>',"{beforeLabelTextTpl}",'<tpl if="fieldLabel">{fieldLabel}{labelSeparator}</tpl>',"{afterLabelTextTpl}","</label>","</div>","{afterLabelTpl}","</tpl>","{beforeSubTpl}","{[values.$comp.getSubTplMarkup()]}","{afterSubTpl}","<tpl if=\"msgTarget==='side'\">","{afterBodyEl}","</td>","<td id=\"{id}-sideErrorCell\" vAlign=\"{[values.labelAlign==='top' && !values.hideLabel ? 'bottom' : 'middle']}\" style=\"{[values.autoFitErrors ? 'display:none' : '']}\" width=\"{errorIconWidth}\">",'<div id="{id}-errorEl" class="{errorMsgCls}" style="display:none;width:{errorIconWidth}px"></div>',"</td>","<tpl elseif=\"msgTarget=='under'\">",'<div id="{id}-errorEl" class="{errorMsgClass}" colspan="2" style="display:none"></div>',"{afterBodyEl}","</td>","</tpl>","</tr>",{disableFormats:true}],activeErrorsTpl:['<tpl if="errors && errors.length">','<ul><tpl for="errors"><li>{.}</li></tpl></ul>',"</tpl>"],isFieldLabelable:true,formItemCls:Ext.baseCSSPrefix+"form-item",labelCls:Ext.baseCSSPrefix+"form-item-label",errorMsgCls:Ext.baseCSSPrefix+"form-error-msg",baseBodyCls:Ext.baseCSSPrefix+"form-item-body",fieldBodyCls:"",clearCls:Ext.baseCSSPrefix+"clear",invalidCls:Ext.baseCSSPrefix+"form-invalid",fieldLabel:undefined,labelAlign:"left",labelWidth:100,labelPad:5,labelSeparator:":",hideLabel:false,hideEmptyLabel:true,preventMark:false,autoFitErrors:true,msgTarget:"qtip",noWrap:true,labelableInsertions:["beforeBodyEl","afterBodyEl","beforeLabelTpl","afterLabelTpl","beforeSubTpl","afterSubTpl","beforeLabelTextTpl","afterLabelTextTpl","labelAttrTpl"],labelableRenderProps:["allowBlank","id","labelAlign","fieldBodyCls","baseBodyCls","clearCls","labelSeparator","msgTarget"],initLabelable:function(){var a=this,b=a.padding;if(b){a.padding=undefined;a.extraMargins=Ext.Element.parseBox(b)}a.addCls(a.formItemCls);a.lastActiveError="";a.addEvents("errorchange")},trimLabelSeparator:function(){var c=this,d=c.labelSeparator,a=c.fieldLabel||"",b=a.substr(a.length-1);return b===d?a.slice(0,-1):a},getFieldLabel:function(){return this.trimLabelSeparator()},setFieldLabel:function(b){b=b||"";var c=this,d=c.labelSeparator,a=c.labelEl;c.fieldLabel=b;if(c.rendered){if(Ext.isEmpty(b)&&c.hideEmptyLabel){a.parent().setDisplayed("none")}else{if(d){b=c.trimLabelSeparator()+d}a.update(b);a.parent().setDisplayed("")}c.updateLayout()}},getInsertionRenderData:function(d,e){var b=e.length,a,c;while(b--){a=e[b];c=this[a];if(c){if(typeof c!="string"){if(!c.isTemplate){c=Ext.XTemplate.getTpl(this,a)}c=c.apply(d)}}d[a]=c||""}return d},getLabelableRenderData:function(){var b=this,c,d,a=b.labelAlign==="top";if(!Ext.form.Labelable.errorIconWidth){Ext.form.Labelable.errorIconWidth=(d=Ext.resetElement.createChild({style:"position:absolute",cls:Ext.baseCSSPrefix+"form-invalid-icon"})).getWidth();d.remove()}c=Ext.copyTo({inFormLayout:b.ownerLayout&&b.ownerLayout.type==="form",inputId:b.getInputId(),labelOnLeft:!a,hideLabel:!b.hasVisibleLabel(),fieldLabel:b.getFieldLabel(),labelCellStyle:b.getLabelCellStyle(),labelCellAttrs:b.getLabelCellAttrs(),labelCls:b.getLabelCls(),labelStyle:b.getLabelStyle(),bodyColspan:b.getBodyColspan(),externalError:!b.autoFitErrors,errorMsgCls:b.getErrorMsgCls(),errorIconWidth:Ext.form.Labelable.errorIconWidth},b,b.labelableRenderProps,true);b.getInsertionRenderData(c,b.labelableInsertions);return c},beforeLabelableRender:function(){var a=this;if(a.ownerLayout){a.addCls(Ext.baseCSSPrefix+a.ownerLayout.type+"-form-item")}},onLabelableRender:function(){var c=this,d,a,b={};if(c.extraMargins){d=c.el.getMargin();for(a in d){if(d.hasOwnProperty(a)){b["margin-"+a]=(d[a]+c.extraMargins[a])+"px"}}c.el.setStyle(b)}},hasVisibleLabel:function(){if(this.hideLabel){return false}return !(this.hideEmptyLabel&&!this.getFieldLabel())},getBodyColspan:function(){var b=this,a;if(b.msgTarget==="side"&&(!b.autoFitErrors||b.hasActiveError())){a=1}else{a=2}if(b.labelAlign!=="top"&&!b.hasVisibleLabel()){a++}return a},getLabelCls:function(){var b=this.labelCls,a=this.labelClsExtra;if(this.labelAlign==="top"){b+="-top"}return a?b+" "+a:b},getLabelCellStyle:function(){var b=this,a=b.hideLabel||(!b.fieldLabel&&b.hideEmptyLabel);return a?"display:none;":""},getErrorMsgCls:function(){var b=this,a=(b.hideLabel||(!b.fieldLabel&&b.hideEmptyLabel));return b.errorMsgCls+(!a&&b.labelAlign==="top"?" "+Ext.baseCSSPrefix+"lbl-top-err-icon":"")},getLabelCellAttrs:function(){var c=this,b=c.labelAlign,a="";if(b!=="top"){a='valign="top" halign="'+b+'" width="'+(c.labelWidth+c.labelPad)+'"'}return a+' class="'+Ext.baseCSSPrefix+'field-label-cell"'},getLabelStyle:function(){var c=this,b=c.labelPad,a="";if(c.labelAlign!=="top"){if(c.labelWidth){a="width:"+c.labelWidth+"px;"}a+="margin-right:"+b+"px;"}return a+(c.labelStyle||"")},getSubTplMarkup:function(){return""},getInputId:function(){return""},getActiveError:function(){return this.activeError||""},hasActiveError:function(){return !!this.getActiveError()},setActiveError:function(a){this.setActiveErrors(a)},getActiveErrors:function(){return this.activeErrors||[]},setActiveErrors:function(a){a=Ext.Array.from(a);this.activeError=a[0];this.activeErrors=a;this.activeError=this.getTpl("activeErrorsTpl").apply({errors:a});this.renderActiveError()},unsetActiveError:function(){delete this.activeError;delete this.activeErrors;this.renderActiveError()},renderActiveError:function(){var c=this,b=c.getActiveError(),a=!!b;if(b!==c.lastActiveError){c.fireEvent("errorchange",c,b);c.lastActiveError=b}if(c.rendered&&!c.isDestroyed&&!c.preventMark){c.el[a?"addCls":"removeCls"](c.invalidCls);c.getActionEl().dom.setAttribute("aria-invalid",a);if(c.errorEl){c.errorEl.dom.innerHTML=b}}},setFieldDefaults:function(c){var b=this,d,a;for(a in c){if(c.hasOwnProperty(a)){d=c[a];if(!b.hasOwnProperty(a)){b[a]=d}}}}});Ext.define("Ext.form.field.Field",{isFormField:true,disabled:false,submitValue:true,validateOnChange:true,suspendCheckChange:0,initField:function(){this.addEvents("change","validitychange","dirtychange");this.initValue()},initValue:function(){var a=this;a.value=a.transformOriginalValue(a.value);a.originalValue=a.lastValue=a.value;a.suspendCheckChange++;a.setValue(a.value);a.suspendCheckChange--},transformOriginalValue:function(a){return a},getName:function(){return this.name},getValue:function(){return this.value},setValue:function(b){var a=this;a.value=b;a.checkChange();return a},isEqual:function(b,a){return String(b)===String(a)},isEqualAsString:function(b,a){return String(Ext.value(b,""))===String(Ext.value(a,""))},getSubmitData:function(){var a=this,b=null;if(!a.disabled&&a.submitValue&&!a.isFileUpload()){b={};b[a.getName()]=""+a.getValue()}return b},getModelData:function(){var a=this,b=null;if(!a.disabled&&!a.isFileUpload()){b={};b[a.getName()]=a.getValue()}return b},reset:function(){var a=this;a.beforeReset();a.setValue(a.originalValue);a.clearInvalid();delete a.wasValid},beforeReset:Ext.emptyFn,resetOriginalValue:function(){this.originalValue=this.getValue();this.checkDirty()},checkChange:function(){if(!this.suspendCheckChange){var c=this,b=c.getValue(),a=c.lastValue;if(!c.isEqual(b,a)&&!c.isDestroyed){c.lastValue=b;c.fireEvent("change",c,b,a);c.onChange(b,a)}}},onChange:function(b,a){if(this.validateOnChange){this.validate()}this.checkDirty()},isDirty:function(){var a=this;return !a.disabled&&!a.isEqual(a.getValue(),a.originalValue)},checkDirty:function(){var a=this,b=a.isDirty();if(b!==a.wasDirty){a.fireEvent("dirtychange",a,b);a.onDirtyChange(b);a.wasDirty=b}},onDirtyChange:Ext.emptyFn,getErrors:function(a){return[]},isValid:function(){var a=this;return a.disabled||Ext.isEmpty(a.getErrors())},validate:function(){var a=this,b=a.isValid();if(b!==a.wasValid){a.wasValid=b;a.fireEvent("validitychange",a,b)}return b},batchChanges:function(a){try{this.suspendCheckChange++;a()}catch(b){throw b}finally{this.suspendCheckChange--}this.checkChange()},isFileUpload:function(){return false},extractFileInput:function(){return null},markInvalid:Ext.emptyFn,clearInvalid:Ext.emptyFn});Ext.define("Ext.form.field.Base",{extend:"Ext.Component",mixins:{labelable:"Ext.form.Labelable",field:"Ext.form.field.Field"},alias:"widget.field",alternateClassName:["Ext.form.Field","Ext.form.BaseField"],requires:["Ext.util.DelayedTask","Ext.XTemplate","Ext.layout.component.field.Field"],fieldSubTpl:['<input id="{id}" type="{type}" {inputAttrTpl}',' size="1"','<tpl if="name"> name="{name}"</tpl>','<tpl if="value"> value="{[Ext.util.Format.htmlEncode(values.value)]}"</tpl>','<tpl if="placeholder"> placeholder="{placeholder}"</tpl>','{%if (values.maxLength !== undefined){%} maxlength="{maxLength}"{%}%}','<tpl if="readOnly"> readonly="readonly"</tpl>','<tpl if="disabled"> disabled="disabled"</tpl>','<tpl if="tabIdx"> tabIndex="{tabIdx}"</tpl>','<tpl if="fieldStyle"> style="{fieldStyle}"</tpl>',' class="{fieldCls} {typeCls} {editableCls}" autocomplete="off"/>',{disableFormats:true}],subTplInsertions:["inputAttrTpl"],inputType:"text",invalidText:"The value in this field is invalid",fieldCls:Ext.baseCSSPrefix+"form-field",focusCls:"form-focus",dirtyCls:Ext.baseCSSPrefix+"form-dirty",checkChangeEvents:Ext.isIE&&(!document.documentMode||document.documentMode<9)?["change","propertychange"]:["change","input","textInput","keyup","dragdrop"],checkChangeBuffer:50,componentLayout:"field",readOnly:false,readOnlyCls:Ext.baseCSSPrefix+"form-readonly",validateOnBlur:true,hasFocus:false,baseCls:Ext.baseCSSPrefix+"field",maskOnDisable:false,initComponent:function(){var a=this;a.callParent();a.subTplData=a.subTplData||{};a.addEvents("specialkey","writeablechange");a.initLabelable();a.initField();if(!a.name){a.name=a.getInputId()}},beforeRender:function(){var a=this;a.callParent(arguments);a.beforeLabelableRender(arguments);if(a.readOnly){a.addCls(a.readOnlyCls)}},getInputId:function(){return this.inputId||(this.inputId=this.id+"-inputEl")},getSubTplData:function(){var c=this,b=c.inputType,a=c.getInputId(),d;d=Ext.apply({id:a,cmpId:c.id,name:c.name||a,disabled:c.disabled,readOnly:c.readOnly,value:c.getRawValue(),type:b,fieldCls:c.fieldCls,fieldStyle:c.getFieldStyle(),tabIdx:c.tabIndex,typeCls:Ext.baseCSSPrefix+"form-"+(b==="password"?"text":b)},c.subTplData);c.getInsertionRenderData(d,c.subTplInsertions);return d},afterFirstLayout:function(){this.callParent();var a=this.inputEl;if(a){a.selectable()}},applyRenderSelectors:function(){var a=this;a.callParent();a.inputEl=a.el.getById(a.getInputId())},getSubTplMarkup:function(){return this.getTpl("fieldSubTpl").apply(this.getSubTplData())},initRenderTpl:function(){var a=this;if(!a.hasOwnProperty("renderTpl")){a.renderTpl=a.getTpl("labelableRenderTpl")}return a.callParent()},initRenderData:function(){return Ext.applyIf(this.callParent(),this.getLabelableRenderData())},setFieldStyle:function(a){var b=this,c=b.inputEl;if(c){c.applyStyles(a)}b.fieldStyle=a},getFieldStyle:function(){return"width:100%;"+(Ext.isObject(this.fieldStyle)?Ext.DomHelper.generateStyles(this.fieldStyle):this.fieldStyle||"")},onRender:function(){var a=this;a.callParent(arguments);a.onLabelableRender();a.renderActiveError()},getFocusEl:function(){return this.inputEl},isFileUpload:function(){return this.inputType==="file"},extractFileInput:function(){var b=this,a=b.isFileUpload()?b.inputEl.dom:null,c;if(a){c=a.cloneNode(true);a.parentNode.replaceChild(c,a);b.inputEl=Ext.get(c)}return a},getSubmitData:function(){var a=this,b=null,c;if(!a.disabled&&a.submitValue&&!a.isFileUpload()){c=a.getSubmitValue();if(c!==null){b={};b[a.getName()]=c}}return b},getSubmitValue:function(){return this.processRawValue(this.getRawValue())},getRawValue:function(){var b=this,a=(b.inputEl?b.inputEl.getValue():Ext.value(b.rawValue,""));b.rawValue=a;return a},setRawValue:function(b){var a=this;b=Ext.value(a.transformRawValue(b),"");a.rawValue=b;if(a.inputEl){a.inputEl.dom.value=b}return b},transformRawValue:function(a){return a},valueToRaw:function(a){return""+Ext.value(a,"")},rawToValue:function(a){return a},processRawValue:function(a){return a},getValue:function(){var a=this,b=a.rawToValue(a.processRawValue(a.getRawValue()));a.value=b;return b},setValue:function(b){var a=this;a.setRawValue(a.valueToRaw(b));return a.mixins.field.setValue.call(a,b)},onBoxReady:function(){var a=this;a.callParent();if(a.setReadOnlyOnBoxReady){a.setReadOnly(a.readOnly)}},onDisable:function(){var a=this,b=a.inputEl;a.callParent();if(b){b.dom.disabled=true;if(a.hasActiveError()){a.clearInvalid();a.needsValidateOnEnable=true}}},onEnable:function(){var a=this,b=a.inputEl;a.callParent();if(b){b.dom.disabled=false;if(a.needsValidateOnEnable){delete a.needsValidateOnEnable;a.forceValidation=true;a.isValid();delete a.forceValidation}}},setReadOnly:function(c){var a=this,b=a.inputEl;c=!!c;a[c?"addCls":"removeCls"](a.readOnlyCls);a.readOnly=c;if(b){b.dom.readOnly=c}else{if(a.rendering){a.setReadOnlyOnBoxReady=true}}a.fireEvent("writeablechange",a,c)},fireKey:function(a){if(a.isSpecialKey()){this.fireEvent("specialkey",this,new Ext.EventObjectImpl(a))}},initEvents:function(){var g=this,i=g.inputEl,b,j,c=g.checkChangeEvents,h,a=c.length,d;if(g.inEditor){g.onBlur=Ext.Function.createBuffered(g.onBlur,10)}if(i){g.mon(i,Ext.EventManager.getKeyEvent(),g.fireKey,g);b=new Ext.util.DelayedTask(g.checkChange,g);g.onChangeEvent=j=function(){b.delay(g.checkChangeBuffer)};for(h=0;h<a;h++){d=c[h];if(d==="propertychange"){g.usesPropertychange=true}g.mon(i,d,j)}}g.callParent()},doComponentLayout:function(){var c=this,d=c.inputEl,a=c.usesPropertychange,b="propertychange",e=c.onChangeEvent;if(a){c.mun(d,b,e)}c.callParent(arguments);if(a){c.mon(d,b,e)}},onDirtyChange:function(a){this[a?"addCls":"removeCls"](this.dirtyCls)},isValid:function(){var b=this,a=b.disabled,c=b.forceValidation||!a;return c?b.validateValue(b.processRawValue(b.getRawValue())):a},validateValue:function(b){var a=this,d=a.getErrors(b),c=Ext.isEmpty(d);if(!a.preventMark){if(c){a.clearInvalid()}else{a.markInvalid(d)}}return c},markInvalid:function(c){var b=this,a=b.getActiveError();b.setActiveErrors(Ext.Array.from(c));if(a!==b.getActiveError()){b.updateLayout()}},clearInvalid:function(){var b=this,a=b.hasActiveError();b.unsetActiveError();if(a){b.updateLayout()}},renderActiveError:function(){var b=this,a=b.hasActiveError();if(b.inputEl){b.inputEl[a?"addCls":"removeCls"](b.invalidCls+"-field")}b.mixins.labelable.renderActiveError.call(b)},getActionEl:function(){return this.inputEl||this.el}});Ext.define("Ext.form.field.VTypes",(function(){var c=/^[a-zA-Z_]+$/,d=/^[a-zA-Z0-9_]+$/,b=/^(\w+)([\-+.][\w]+)*@(\w[\-\w]*\.){1,5}([A-Za-z]){2,6}$/,a=/(((^https?)|(^ftp)):\/\/([\-\w]+\.)+\w{2,3}(\/[%\-\w]+(\.\w{2,})?)*(([\w\-\.\?\\\/+@&#;`~=%!]*)(\.\w{2,})?)*\/?)/i;return{singleton:true,alternateClassName:"Ext.form.VTypes",email:function(e){return b.test(e)},emailText:'This field should be an e-mail address in the format "user@example.com"',emailMask:/[a-z0-9_\.\-@\+]/i,url:function(e){return a.test(e)},urlText:'This field should be a URL in the format "http://www.example.com"',alpha:function(e){return c.test(e)},alphaText:"This field should only contain letters and _",alphaMask:/[a-z_]/i,alphanum:function(e){return d.test(e)},alphanumText:"This field should only contain letters, numbers and _",alphanumMask:/[a-z0-9_]/i}}()));Ext.define("Ext.form.field.Text",{extend:"Ext.form.field.Base",alias:"widget.textfield",requires:["Ext.form.field.VTypes","Ext.layout.component.field.Text"],alternateClassName:["Ext.form.TextField","Ext.form.Text"],size:20,growMin:30,growMax:800,growAppend:"W",allowBlank:true,minLength:0,maxLength:Number.MAX_VALUE,minLengthText:"The minimum length for this field is {0}",maxLengthText:"The maximum length for this field is {0}",blankText:"This field is required",regexText:"",emptyCls:Ext.baseCSSPrefix+"form-empty-field",requiredCls:Ext.baseCSSPrefix+"form-required-field",componentLayout:"textfield",valueContainsPlaceholder:false,initComponent:function(){var a=this;a.callParent();a.addEvents("autosize","keydown","keyup","keypress");a.addStateEvents("change");a.setGrowSizePolicy()},setGrowSizePolicy:function(){if(this.grow){this.shrinkWrap|=1}},initEvents:function(){var b=this,a=b.inputEl;b.callParent();if(b.selectOnFocus||b.emptyText){b.mon(a,"mousedown",b.onMouseDown,b)}if(b.maskRe||(b.vtype&&b.disableKeyFilter!==true&&(b.maskRe=Ext.form.field.VTypes[b.vtype+"Mask"]))){b.mon(a,"keypress",b.filterKeys,b)}if(b.enableKeyEvents){b.mon(a,{scope:b,keyup:b.onKeyUp,keydown:b.onKeyDown,keypress:b.onKeyPress})}},isEqual:function(b,a){return this.isEqualAsString(b,a)},onChange:function(){this.callParent();this.autoSize()},getSubTplData:function(){var b=this,c=b.getRawValue(),e=b.emptyText&&c.length<1,a=b.maxLength,d;if(b.enforceMaxLength){if(a===Number.MAX_VALUE){a=undefined}}else{a=undefined}if(e){if(Ext.supports.Placeholder){d=b.emptyText}else{c=b.emptyText;b.valueContainsPlaceholder=true}}return Ext.apply(b.callParent(),{maxLength:a,readOnly:b.readOnly,placeholder:d,value:c,fieldCls:b.fieldCls+((e&&(d||c))?" "+b.emptyCls:"")+(b.allowBlank?"":" "+b.requiredCls)})},afterRender:function(){this.autoSize();this.callParent()},onMouseDown:function(b){var a=this;if(!a.hasFocus){a.mon(a.inputEl,"mouseup",Ext.emptyFn,a,{single:true,preventDefault:true})}},processRawValue:function(b){var a=this,d=a.stripCharsRe,c;if(d){c=b.replace(d,"");if(c!==b){a.setRawValue(c);b=c}}return b},onDisable:function(){this.callParent();if(Ext.isIE){this.inputEl.dom.unselectable="on"}},onEnable:function(){this.callParent();if(Ext.isIE){this.inputEl.dom.unselectable=""}},onKeyDown:function(a){this.fireEvent("keydown",this,a)},onKeyUp:function(a){this.fireEvent("keyup",this,a)},onKeyPress:function(a){this.fireEvent("keypress",this,a)},reset:function(){this.callParent();this.applyEmptyText()},applyEmptyText:function(){var b=this,a=b.emptyText,c;if(b.rendered&&a){c=b.getRawValue().length<1&&!b.hasFocus;if(Ext.supports.Placeholder){b.inputEl.dom.placeholder=a}else{if(c){b.setRawValue(a);b.valueContainsPlaceholder=true}}if(c){b.inputEl.addCls(b.emptyCls)}b.autoSize()}},afterFirstLayout:function(){this.callParent();if(Ext.isIE&&this.disabled){var a=this.inputEl;if(a){a.dom.unselectable="on"}}},preFocus:function(){var b=this,c=b.inputEl,a=b.emptyText,d;b.callParent(arguments);if((a&&!Ext.supports.Placeholder)&&(c.dom.value===b.emptyText&&b.valueContainsPlaceholder)){b.setRawValue("");d=true;c.removeCls(b.emptyCls);b.valueContainsPlaceholder=false}else{if(Ext.supports.Placeholder){b.inputEl.removeCls(b.emptyCls)}}if(b.selectOnFocus||d){c.dom.select()}},onFocus:function(){var a=this;a.callParent(arguments);if(a.emptyText){a.autoSize()}},postBlur:function(){this.callParent(arguments);this.applyEmptyText()},filterKeys:function(c){if(c.ctrlKey&&!c.altKey){return}var b=c.getKey(),a=String.fromCharCode(c.getCharCode());if((Ext.isGecko||Ext.isOpera)&&(c.isNavKeyPress()||b===c.BACKSPACE||(b===c.DELETE&&c.button===-1))){return}if((!Ext.isGecko&&!Ext.isOpera)&&c.isSpecialKey()&&!a){return}if(!this.maskRe.test(a)){c.stopEvent()}},getState:function(){return this.addPropertyToState(this.callParent(),"value")},applyState:function(a){this.callParent(arguments);if(a.hasOwnProperty("value")){this.setValue(a.value)}},getRawValue:function(){var b=this,a=b.callParent();if(a===b.emptyText&&b.valueContainsPlaceholder){a=""}return a},setValue:function(b){var a=this,c=a.inputEl;if(c&&a.emptyText&&!Ext.isEmpty(b)){c.removeCls(a.emptyCls);a.valueContainsPlaceholder=false}a.callParent(arguments);a.applyEmptyText();return a},getErrors:function(l){var g=this,k=g.callParent(arguments),a=g.validator,d=g.emptyText,c=g.allowBlank,e=g.vtype,h=Ext.form.field.VTypes,i=g.regex,j=Ext.String.format,b;l=l||g.processRawValue(g.getRawValue());if(Ext.isFunction(a)){b=a.call(g,l);if(b!==true){k.push(b)}}if(l.length<1||(l===g.emptyText&&g.valueContainsPlaceholder)){if(!c){k.push(g.blankText)}return k}if(l.length<g.minLength){k.push(j(g.minLengthText,g.minLength))}if(l.length>g.maxLength){k.push(j(g.maxLengthText,g.maxLength))}if(e){if(!h[e](l,g)){k.push(g.vtypeText||h[e+"Text"])}}if(i&&!i.test(l)){k.push(g.regexText||g.invalidText)}return k},selectText:function(i,a){var h=this,c=h.getRawValue(),d=true,g=h.inputEl.dom,e,b;if(c.length>0){i=i===e?0:i;a=a===e?c.length:a;if(g.setSelectionRange){g.setSelectionRange(i,a)}else{if(g.createTextRange){b=g.createTextRange();b.moveStart("character",i);b.moveEnd("character",a-c.length);b.select()}}d=Ext.isGecko||Ext.isOpera}if(d){h.focus()}},autoSize:function(){var a=this;if(a.grow&&a.rendered){a.autoSizing=true;a.updateLayout()}},afterComponentLayout:function(){var b=this,a;b.callParent(arguments);if(b.autoSizing){a=b.inputEl.getWidth();if(a!==b.lastInputWidth){b.fireEvent("autosize",b,a);b.lastInputWidth=a;delete b.autoSizing}}}});Ext.define("Ext.layout.component.field.TextArea",{extend:"Ext.layout.component.field.Text",alias:"layout.textareafield",type:"textareafield",canGrowWidth:false,naturalSizingProp:"cols",beginLayout:function(a){this.callParent(arguments);a.target.inputEl.setStyle("height","")},measureContentHeight:function(b){var e=this,a=e.owner,k=e.callParent(arguments),c,i,h,g,d,j;if(a.grow&&!b.state.growHandled){c=b.inputContext;i=a.inputEl;d=i.getWidth(true);h=Ext.util.Format.htmlEncode(i.dom.value)||" ";h+=a.growAppend;h=h.replace(/\n/g,"<br/>");j=Ext.util.TextMetrics.measure(i,h,d).height+c.getBorderInfo().height+c.getPaddingInfo().height;j=Ext.Number.constrain(j,a.growMin,a.growMax);c.setHeight(j);b.state.growHandled=true;c.domBlock(e,"height");k=NaN}return k}});Ext.define("Ext.form.field.TextArea",{extend:"Ext.form.field.Text",alias:["widget.textareafield","widget.textarea"],alternateClassName:"Ext.form.TextArea",requires:["Ext.XTemplate","Ext.layout.component.field.TextArea","Ext.util.DelayedTask"],fieldSubTpl:['<textarea id="{id}" {inputAttrTpl}','<tpl if="name"> name="{name}"</tpl>','<tpl if="rows"> rows="{rows}" </tpl>','<tpl if="cols"> cols="{cols}" </tpl>','<tpl if="placeholder"> placeholder="{placeholder}"</tpl>','<tpl if="size"> size="{size}"</tpl>','<tpl if="maxLength !== undefined"> maxlength="{maxLength}"</tpl>','<tpl if="readOnly"> readonly="readonly"</tpl>','<tpl if="disabled"> disabled="disabled"</tpl>','<tpl if="tabIdx"> tabIndex="{tabIdx}"</tpl>',' class="{fieldCls} {typeCls}" ','<tpl if="fieldStyle"> style="{fieldStyle}"</tpl>',' autocomplete="off">\n','<tpl if="value">{[Ext.util.Format.htmlEncode(values.value)]}</tpl>',"</textarea>",{disableFormats:true}],growMin:60,growMax:1000,growAppend:"\n-",cols:20,rows:4,enterIsSpecial:false,preventScrollbars:false,componentLayout:"textareafield",setGrowSizePolicy:Ext.emptyFn,returnRe:/\r/g,getSubTplData:function(){var c=this,b=c.getFieldStyle(),a=c.callParent();if(c.grow){if(c.preventScrollbars){a.fieldStyle=(b||"")+";overflow:hidden;height:"+c.growMin+"px"}}Ext.applyIf(a,{cols:c.cols,rows:c.rows});return a},afterRender:function(){var a=this;a.callParent(arguments);a.needsMaxCheck=a.enforceMaxLength&&a.maxLength!==Number.MAX_VALUE&&!Ext.supports.TextAreaMaxLength;if(a.needsMaxCheck){a.inputEl.on("paste",a.onPaste,a)}},transformRawValue:function(a){return this.stripReturns(a)},transformOriginalValue:function(a){return this.stripReturns(a)},valueToRaw:function(a){a=this.stripReturns(a);return this.callParent([a])},stripReturns:function(a){if(a){a=a.replace(this.returnRe,"")}return a},onPaste:function(b){var a=this;if(!a.pasteTask){a.pasteTask=new Ext.util.DelayedTask(a.pasteCheck,a)}a.pasteTask.delay(1)},pasteCheck:function(){var b=this,c=b.getValue(),a=b.maxLength;if(c.length>a){c=c.substr(0,a);b.setValue(c)}},fireKey:function(d){var b=this,a=d.getKey(),c;if(d.isSpecialKey()&&(b.enterIsSpecial||(a!==d.ENTER||d.hasModifier()))){b.fireEvent("specialkey",b,d)}if(b.needsMaxCheck&&a!==d.BACKSPACE&&a!==d.DELETE&&!d.isNavKeyPress()&&!b.isCutCopyPasteSelectAll(d,a)){c=b.getValue();if(c.length>=b.maxLength){d.stopEvent()}}},isCutCopyPasteSelectAll:function(b,a){if(b.CTRL){return a===b.A||a===b.C||a===b.V||a===b.X}return false},autoSize:function(){var b=this,a;if(b.grow&&b.rendered){b.updateLayout();a=b.inputEl.getHeight();if(a!==b.lastInputHeight){b.fireEvent("autosize",b,a);b.lastInputHeight=a}}},initAria:function(){this.callParent(arguments);this.getActionEl().dom.setAttribute("aria-multiline",true)},beforeDestroy:function(){var a=this.pasteTask;if(a){a.delay()}this.callParent()}});Ext.define("Ext.form.field.Display",{extend:"Ext.form.field.Base",alias:"widget.displayfield",requires:["Ext.util.Format","Ext.XTemplate"],alternateClassName:["Ext.form.DisplayField","Ext.form.Display"],fieldSubTpl:['<div id="{id}"','<tpl if="fieldStyle"> style="{fieldStyle}"</tpl>',' class="{fieldCls}">{value}</div>',{compiled:true,disableFormats:true}],fieldCls:Ext.baseCSSPrefix+"form-display-field",htmlEncode:false,validateOnChange:false,initEvents:Ext.emptyFn,submitValue:false,isDirty:function(){return false},isValid:function(){return true},validate:function(){return true},getRawValue:function(){return this.rawValue},setRawValue:function(b){var a=this,c;b=Ext.value(b,"");a.rawValue=b;if(a.rendered){a.inputEl.dom.innerHTML=a.getDisplayValue();a.updateLayout()}return b},getDisplayValue:function(){var a=this,b=this.getRawValue(),c;if(a.renderer){c=a.renderer.call(a.scope||a,b,a)}else{c=a.htmlEncode?Ext.util.Format.htmlEncode(b):b}return c},getSubTplData:function(){var a=this.callParent(arguments);a.value=this.getDisplayValue();return a}});Ext.define("Ext.layout.container.Anchor",{alias:"layout.anchor",extend:"Ext.layout.container.Container",alternateClassName:"Ext.layout.AnchorLayout",type:"anchor",manageOverflow:2,renderTpl:["{%this.renderBody(out,values);this.renderPadder(out,values)%}"],defaultAnchor:"100%",parseAnchorRE:/^(r|right|b|bottom)$/i,beginLayout:function(c){var j=this,a=0,g,k,e,d,b,h;j.callParent(arguments);e=c.childItems;b=e.length;for(d=0;d<b;++d){k=e[d];g=k.target.anchorSpec;if(g){if(k.widthModel.calculated&&g.right){a|=1}if(k.heightModel.calculated&&g.bottom){a|=2}if(a==3){break}}}c.anchorDimensions=a;if(!Ext.supports.RightMargin&&!j.rightMarginCleanerFn){h=c.targetContext.el;j.rightMarginCleanerFn=Ext.Element.getRightMarginFixCleaner(h);h.addCls(Ext.baseCSSPrefix+"inline-children")}},calculate:function(b){var a=this,c=a.getContainerSize(b);if(b.anchorDimensions!==b.state.calculatedAnchors){a.calculateAnchors(b,c)}if(b.hasDomProp("containerChildrenDone")){if(!c.gotAll){a.done=false}a.calculateContentSize(b,b.anchorDimensions);if(a.done){a.calculateOverflow(b,c,b.anchorDimensions);return}}a.done=false},calculateAnchors:function(h,a){var p=this,l=h.childItems,g=l.length,o=a.gotHeight,j=a.gotWidth,e=a.height,c=a.width,b=h.state,q=(j?1:0)|(o?2:0),m,s,n,r,k,d;b.calculatedAnchors=(b.calculatedAnchors||0)|q;for(k=0;k<g;k++){s=l[k];n=s.getMarginInfo();m=s.target.anchorSpec;if(j&&s.widthModel.calculated){d=m.right(c)-n.width;d=p.adjustWidthAnchor(d,s);s.setWidth(d)}if(o&&s.heightModel.calculated){r=m.bottom(e)-n.height;r=p.adjustHeightAnchor(r,s);s.setHeight(r)}}},finishedLayout:function(b){var a=this.rightMarginCleanerFn;if(a){delete this.rightMarginCleanerFn;b.targetContext.el.removeCls(Ext.baseCSSPrefix+"inline-children");a()}},anchorFactory:{offset:function(a){return function(b){return b+a}},ratio:function(a){return function(b){return Math.floor(b*a)}},standard:function(a){return function(b){return b-a}}},parseAnchor:function(c,g,b){if(c&&c!="none"){var d=this.anchorFactory,e;if(this.parseAnchorRE.test(c)){return d.standard(b-g)}if(c.indexOf("%")!=-1){return d.ratio(parseFloat(c.replace("%",""))*0.01)}e=parseInt(c,10);if(!isNaN(e)){return d.offset(e)}}return null},adjustWidthAnchor:function(b,a){return b},adjustHeightAnchor:function(b,a){return b},configureItem:function(g){var e=this,a=e.owner,d=g.anchor,b,c,h;e.callParent(arguments);if(!g.anchor&&g.items&&!Ext.isNumber(g.width)&&!(Ext.isIE6&&Ext.isStrict)){g.anchor=d=e.defaultAnchor}if(a.anchorSize){if(typeof a.anchorSize=="number"){c=a.anchorSize}else{c=a.anchorSize.width;h=a.anchorSize.height}}else{c=a.initialConfig.width;h=a.initialConfig.height}if(d){b=d.split(" ");g.anchorSpec={right:e.parseAnchor(b[0],g.initialConfig.width,c),bottom:e.parseAnchor(b[1],g.initialConfig.height,h)}}},sizePolicy:{"":{setsWidth:0,setsHeight:0},b:{setsWidth:0,setsHeight:1},r:{"":{setsWidth:1,setsHeight:0},b:{setsWidth:1,setsHeight:1}}},getItemSizePolicy:function(c){var e=c.anchorSpec,a="",d=this.sizePolicy,b;if(e){b=this.owner.getSizeModel();if(e.right&&!b.width.shrinkWrap){d=d.r}if(e.bottom&&!b.height.shrinkWrap){a="b"}}return d[a]}});Ext.define("Ext.window.MessageBox",{extend:"Ext.window.Window",requires:["Ext.toolbar.Toolbar","Ext.form.field.Text","Ext.form.field.TextArea","Ext.form.field.Display","Ext.button.Button","Ext.layout.container.Anchor","Ext.layout.container.HBox","Ext.ProgressBar"],alias:"widget.messagebox",OK:1,YES:2,NO:4,CANCEL:8,OKCANCEL:9,YESNO:6,YESNOCANCEL:14,INFO:Ext.baseCSSPrefix+"message-box-info",WARNING:Ext.baseCSSPrefix+"message-box-warning",QUESTION:Ext.baseCSSPrefix+"message-box-question",ERROR:Ext.baseCSSPrefix+"message-box-error",hideMode:"offsets",closeAction:"hide",resizable:false,title:" ",width:600,height:500,minWidth:250,maxWidth:600,minHeight:110,maxHeight:500,constrain:true,cls:Ext.baseCSSPrefix+"message-box",layout:{type:"vbox",align:"stretch"},defaultTextHeight:75,minProgressWidth:250,minPromptWidth:250,buttonText:{ok:"OK",yes:"Yes",no:"No",cancel:"Cancel"},buttonIds:["ok","yes","no","cancel"],titleText:{confirm:"Confirm",prompt:"Prompt",wait:"Loading...",alert:"Attention"},iconHeight:35,makeButton:function(a){var b=this.buttonIds[a];return new Ext.button.Button({handler:this.btnCallback,itemId:b,scope:this,text:this.buttonText[b],minWidth:75})},btnCallback:function(a){var b=this,c,d;if(b.cfg.prompt||b.cfg.multiline){if(b.cfg.multiline){d=b.textArea}else{d=b.textField}c=d.getValue();d.reset()}a.blur();b.hide();b.userCallback(a.itemId,c,b.cfg)},hide:function(){var a=this;a.dd.endDrag();a.progressBar.reset();a.removeCls(a.cfg.cls);a.callParent(arguments)},initComponent:function(){var e=this,a=e.id,c,b,d;e.title=" ";e.topContainer=new Ext.container.Container({layout:"hbox",style:{padding:"10px",overflow:"hidden"},items:[e.iconComponent=new Ext.Component({cls:e.baseCls+"-icon",width:50,height:e.iconHeight}),e.promptContainer=new Ext.container.Container({flex:1,layout:{type:"anchor"},items:[e.msg=new Ext.form.field.Display({id:a+"-displayfield",cls:e.baseCls+"-text"}),e.textField=new Ext.form.field.Text({id:a+"-testfield",anchor:"100%",enableKeyEvents:true,listeners:{keydown:e.onPromptKey,scope:e}}),e.textArea=new Ext.form.field.TextArea({id:a+"-textarea",anchor:"100%",height:75})]})]});e.progressBar=new Ext.ProgressBar({id:a+"-progressbar",margins:"0 10 0 10"});e.items=[e.topContainer,e.progressBar];e.msgButtons=[];for(c=0;c<4;c++){b=e.makeButton(c);e.msgButtons[b.itemId]=b;e.msgButtons.push(b)}e.bottomTb=new Ext.toolbar.Toolbar({id:a+"-toolbar",ui:"footer",dock:"bottom",layout:{pack:"center"},items:[e.msgButtons[0],e.msgButtons[1],e.msgButtons[2],e.msgButtons[3]]});e.dockedItems=[e.bottomTb];d=e.bottomTb.getLayout();d.finishedLayout=Ext.Function.createInterceptor(d.finishedLayout,function(g){e.tbWidth=g.getProp("contentWidth")});e.on("close",e.onClose,e);e.callParent()},onClose:function(){var a=this.header.child("[type=close]");a.itemId="cancel";this.btnCallback(a);delete a.itemId},onPromptKey:function(a,c){var b=this,d;if(c.keyCode===Ext.EventObject.RETURN||c.keyCode===10){if(b.msgButtons.ok.isVisible()){d=true;b.msgButtons.ok.handler.call(b,b.msgButtons.ok)}else{if(b.msgButtons.yes.isVisible()){b.msgButtons.yes.handler.call(b,b.msgButtons.yes);d=true}}if(d){b.textField.blur()}}},reconfigure:function(a){var d=this,c=0,h=true,g=d.maxWidth,e=d.buttonText,b;d.updateButtonText();a=a||{};d.cfg=a;if(a.width){g=a.width}delete d.defaultFocus;d.animateTarget=a.animateTarget||undefined;d.modal=a.modal!==false;if(a.title){d.setTitle(a.title||" ")}if(Ext.isObject(a.buttons)){d.buttonText=a.buttons;c=0}else{d.buttonText=a.buttonText||d.buttonText;c=Ext.isNumber(a.buttons)?a.buttons:0}c=c|d.updateButtonText();d.buttonText=e;Ext.suspendLayouts();d.hidden=false;if(!d.rendered){d.width=g;d.render(Ext.getBody())}else{d.setSize(g,d.maxHeight)}d.closable=a.closable&&!a.wait;d.header.child("[type=close]").setVisible(a.closable!==false);if(!a.title&&!d.closable){d.header.hide()}else{d.header.show()}d.liveDrag=!a.proxyDrag;d.userCallback=Ext.Function.bind(a.callback||a.fn||Ext.emptyFn,a.scope||Ext.global);d.setIcon(a.icon);if(a.msg){d.msg.setValue(a.msg);d.msg.show()}else{d.msg.hide()}Ext.resumeLayouts(true);Ext.suspendLayouts();if(a.prompt||a.multiline){d.multiline=a.multiline;if(a.multiline){d.textArea.setValue(a.value);d.textArea.setHeight(a.defaultTextHeight||d.defaultTextHeight);d.textArea.show();d.textField.hide();d.defaultFocus=d.textArea}else{d.textField.setValue(a.value);d.textArea.hide();d.textField.show();d.defaultFocus=d.textField}}else{d.textArea.hide();d.textField.hide()}if(a.progress||a.wait){d.progressBar.show();d.updateProgress(0,a.progressText);if(a.wait===true){d.progressBar.wait(a.waitConfig)}}else{d.progressBar.hide()}for(b=0;b<4;b++){if(c&Math.pow(2,b)){if(!d.defaultFocus){d.defaultFocus=d.msgButtons[b]}d.msgButtons[b].show();h=false}else{d.msgButtons[b].hide()}}if(h){d.bottomTb.hide()}else{d.bottomTb.show()}Ext.resumeLayouts(true)},updateButtonText:function(){var d=this,c=d.buttonText,b=0,e,a;for(e in c){if(c.hasOwnProperty(e)){a=d.msgButtons[e];if(a){if(d.cfg&&d.cfg.buttonText){b=b|Math.pow(2,Ext.Array.indexOf(d.buttonIds,e))}if(a.text!=c[e]){a.setText(c[e])}}}}return b},show:function(a){var b=this;b.reconfigure(a);b.addCls(a.cls);b.doAutoSize();b.hidden=true;b.callParent();return b},onShow:function(){this.callParent(arguments);this.center()},doAutoSize:function(){var d=this,e=d.header.rendered&&d.header.isVisible(),c=d.bottomTb.rendered&&d.bottomTb.isVisible(),b,a;if(!Ext.isDefined(d.frameWidth)){d.frameWidth=d.el.getWidth()-d.body.getWidth()}d.minWidth=d.cfg.minWidth||Ext.getClass(this).prototype.minWidth;b=Math.max(e?d.header.getMinWidth():0,d.cfg.width||d.msg.getWidth()+d.iconComponent.getWidth()+25,(c?d.tbWidth:0));a=(e?d.header.getHeight():0)+d.topContainer.getHeight()+d.progressBar.getHeight()+(c?d.bottomTb.getHeight()+d.bottomTb.el.getMargin("tb"):0);d.setSize(b+d.frameWidth,a+d.frameWidth);return d},updateText:function(a){this.msg.setValue(a);return this.doAutoSize(true)},setIcon:function(a){var b=this;b.iconComponent.removeCls(b.messageIconCls);if(a){b.iconComponent.show();b.iconComponent.addCls(Ext.baseCSSPrefix+"dlg-icon");b.iconComponent.addCls(b.messageIconCls=a)}else{b.iconComponent.removeCls(Ext.baseCSSPrefix+"dlg-icon");b.iconComponent.hide()}return b},updateProgress:function(b,a,c){this.progressBar.updateProgress(b,a);if(c){this.updateText(c)}return this},onEsc:function(){if(this.closable!==false){this.callParent(arguments)}},confirm:function(a,d,c,b){if(Ext.isString(a)){a={title:a,icon:this.QUESTION,msg:d,buttons:this.YESNO,callback:c,scope:b}}return this.show(a)},prompt:function(b,g,d,c,a,e){if(Ext.isString(b)){b={prompt:true,title:b,minWidth:this.minPromptWidth,msg:g,buttons:this.OKCANCEL,callback:d,scope:c,multiline:a,value:e}}return this.show(b)},wait:function(a,c,b){if(Ext.isString(a)){a={title:c,msg:a,closable:false,wait:true,modal:true,minWidth:this.minProgressWidth,waitConfig:b}}return this.show(a)},alert:function(a,d,c,b){if(Ext.isString(a)){a={title:a,msg:d,buttons:this.OK,fn:c,scope:b,minWidth:this.minWidth}}return this.show(a)},progress:function(a,c,b){if(Ext.isString(a)){a={title:a,msg:c,progress:true,progressText:b}}return this.show(a)}},function(){Ext.MessageBox=Ext.Msg=new this()});Ext.define("Ext.form.Basic",{extend:"Ext.util.Observable",alternateClassName:"Ext.form.BasicForm",requires:["Ext.util.MixedCollection","Ext.form.action.Load","Ext.form.action.Submit","Ext.window.MessageBox","Ext.data.Errors","Ext.util.DelayedTask"],constructor:function(a,b){var e=this,g=e.onItemAddOrRemove,d,c;e.owner=a;e.mon(a,{add:g,remove:g,scope:e});Ext.apply(e,b);if(Ext.isString(e.paramOrder)){e.paramOrder=e.paramOrder.split(/[\s,|]/)}if(e.api){d=e.api=Ext.apply({},e.api);for(c in d){if(d.hasOwnProperty(c)){d[c]=Ext.direct.Manager.parseMethod(d[c])}}}e.checkValidityTask=new Ext.util.DelayedTask(e.checkValidity,e);e.addEvents("beforeaction","actionfailed","actioncomplete","validitychange","dirtychange");e.callParent()},initialize:function(){var a=this;a.initialized=true;a.onValidityChange(!a.hasInvalidField())},timeout:30,paramsAsHash:false,waitTitle:"Please Wait...",trackResetOnLoad:false,wasDirty:false,destroy:function(){this.clearListeners();this.checkValidityTask.cancel()},onItemAddOrRemove:function(c,g){var d=this,e=!!g.ownerCt,b=g.isContainer;function a(h){d[e?"mon":"mun"](h,{validitychange:d.checkValidity,dirtychange:d.checkDirty,scope:d,buffer:100});delete d._fields}if(g.isFormField){a(g)}else{if(b){if(g.isDestroyed||g.destroying){delete d._fields}else{Ext.Array.forEach(g.query("[isFormField]"),a)}}}delete this._boundItems;if(d.initialized){d.checkValidityTask.delay(10)}},getFields:function(){var a=this._fields;if(!a){a=this._fields=new Ext.util.MixedCollection();a.addAll(this.owner.query("[isFormField]"))}return a},getBoundItems:function(){var a=this._boundItems;if(!a||a.getCount()===0){a=this._boundItems=new Ext.util.MixedCollection();a.addAll(this.owner.query("[formBind]"))}return a},hasInvalidField:function(){return !!this.getFields().findBy(function(c){var a=c.preventMark,b;c.preventMark=true;b=c.isValid();c.preventMark=a;return !b})},isValid:function(){var a=this,b;Ext.suspendLayouts();b=a.getFields().filterBy(function(c){return !c.validate()});Ext.resumeLayouts(true);return b.length<1},checkValidity:function(){var b=this,a=!b.hasInvalidField();if(a!==b.wasValid){b.onValidityChange(a);b.fireEvent("validitychange",b,a);b.wasValid=a}},onValidityChange:function(g){var d=this.getBoundItems(),b,c,a,e;if(d){b=d.items;a=b.length;for(c=0;c<a;c++){e=b[c];if(e.disabled===g){e.setDisabled(!g)}}}},isDirty:function(){return !!this.getFields().findBy(function(a){return a.isDirty()})},checkDirty:function(){var a=this.isDirty();if(a!==this.wasDirty){this.fireEvent("dirtychange",this,a);this.wasDirty=a}},hasUpload:function(){return !!this.getFields().findBy(function(a){return a.isFileUpload()})},doAction:function(b,a){if(Ext.isString(b)){b=Ext.ClassManager.instantiateByAlias("formaction."+b,Ext.apply({},a,{form:this}))}if(this.fireEvent("beforeaction",this,b)!==false){this.beforeAction(b);Ext.defer(b.run,100,b)}return this},submit:function(a){a=a||{};var b=this,c;if(a.standardSubmit||b.standardSubmit){c="standardsubmit"}else{c=b.api?"directsubmit":"submit"}return b.doAction(c,a)},load:function(a){return this.doAction(this.api?"directload":"load",a)},updateRecord:function(c){c=c||this._record;var b=c.fields.items,d=this.getFieldValues(),h={},g=0,a=b.length,e;for(;g<a;++g){e=b[g].name;if(d.hasOwnProperty(e)){h[e]=d[e]}}c.beginEdit();c.set(h);c.endEdit();return this},loadRecord:function(a){this._record=a;return this.setValues(a.data)},getRecord:function(){return this._record},beforeAction:function(e){var b=e.waitMsg,d=Ext.baseCSSPrefix+"mask-loading",a=this.getFields().items,c,i=a.length,g,h;for(c=0;c<i;c++){g=a[c];if(g.isFormField&&g.syncValue){g.syncValue()}}if(b){h=this.waitMsgTarget;if(h===true){this.owner.el.mask(b,d)}else{if(h){h=this.waitMsgTarget=Ext.get(h);h.mask(b,d)}else{Ext.MessageBox.wait(b,e.waitTitle||this.waitTitle)}}}},afterAction:function(b,d){if(b.waitMsg){var a=Ext.MessageBox,c=this.waitMsgTarget;if(c===true){this.owner.el.unmask()}else{if(c){c.unmask()}else{a.suspendEvents();a.hide();a.resumeEvents()}}}if(d){if(b.reset){this.reset()}Ext.callback(b.success,b.scope||b,[this,b]);this.fireEvent("actioncomplete",this,b)}else{Ext.callback(b.failure,b.scope||b,[this,b]);this.fireEvent("actionfailed",this,b)}},findField:function(a){return this.getFields().findBy(function(b){return b.id===a||b.getName()===a})},markInvalid:function(j){var d=this,h,a,b,g,c;function i(e,l){var k=d.findField(e);if(k){k.markInvalid(l)}}if(Ext.isArray(j)){a=j.length;for(h=0;h<a;h++){b=j[h];i(b.id,b.msg)}}else{if(j instanceof Ext.data.Errors){a=j.items.length;for(h=0;h<a;h++){b=j.items[h];i(b.field,b.message)}}else{for(c in j){if(j.hasOwnProperty(c)){g=j[c];i(c,g,j)}}}}return this},setValues:function(b){var d=this,a,c,h,g;function e(i,k){var j=d.findField(i);if(j){j.setValue(k);if(d.trackResetOnLoad){j.resetOriginalValue()}}}if(Ext.isArray(b)){c=b.length;for(a=0;a<c;a++){h=b[a];e(h.id,h.value)}}else{Ext.iterate(b,e)}return this},getValues:function(i,j,n,l){var m={},g=this.getFields().items,h,o=g.length,e=Ext.isArray,k,d,c,b,a;for(h=0;h<o;h++){k=g[h];if(!j||k.isDirty()){d=k[l?"getModelData":"getSubmitData"](n);if(Ext.isObject(d)){for(a in d){if(d.hasOwnProperty(a)){c=d[a];if(n&&c===""){c=k.emptyText||""}if(m.hasOwnProperty(a)){b=m[a];if(!e(b)){b=m[a]=[b]}if(e(c)){m[a]=m[a]=b.concat(c)}else{b.push(c)}}else{m[a]=c}}}}}}if(i){m=Ext.Object.toQueryString(m)}return m},getFieldValues:function(a){return this.getValues(false,a,false,true)},clearInvalid:function(){Ext.suspendLayouts();var b=this,a=b.getFields().items,c,d=a.length;for(c=0;c<d;c++){a[c].clearInvalid()}Ext.resumeLayouts(true);return b},reset:function(){Ext.suspendLayouts();var b=this,a=b.getFields().items,c,d=a.length;for(c=0;c<d;c++){a[c].reset()}Ext.resumeLayouts(true);return b},applyToFields:function(c){var a=this.getFields().items,b,d=a.length;for(b=0;b<d;b++){Ext.apply(a[b],c)}return this},applyIfToFields:function(c){var a=this.getFields().items,b,d=a.length;for(b=0;b<d;b++){Ext.applyIf(a[b],c)}return this}});Ext.define("Ext.layout.container.CheckboxGroup",{extend:"Ext.layout.container.Container",alias:["layout.checkboxgroup"],autoFlex:true,type:"checkboxgroup",childEls:["innerCt"],renderTpl:['<table id="{ownerId}-innerCt" role="presentation" style="{tableStyle}"><tbody><tr>','<tpl for="columns">','<td class="{parent.colCls}" valign="top" style="{style}">',"{% this.renderColumn(out,parent,xindex-1) %}","</td>","</tpl>","</tr></tbody></table>"],lastOwnerItemsGeneration:null,beginLayout:function(b){var k=this,e,d,h,a,j,g=0,m=0,l=k.autoFlex,c=k.innerCt.dom.style;k.callParent(arguments);e=k.columnNodes;b.innerCtContext=b.getEl("innerCt",k);if(!b.widthModel.shrinkWrap){d=e.length;if(k.columnsArray){for(h=0;h<d;h++){a=k.owner.columns[h];if(a<1){g+=a;m++}}for(h=0;h<d;h++){a=k.owner.columns[h];if(a<1){j=((a/g)*100)+"%"}else{j=a+"px"}e[h].style.width=j}}else{for(h=0;h<d;h++){j=l?(1/d*100)+"%":"";e[h].style.width=j;m++}}if(!m){c.tableLayout="fixed";c.width=""}else{if(m<d){c.tableLayout="fixed";c.width="100%"}else{c.tableLayout="auto";if(l){c.width="100%"}else{c.width=""}}}}else{c.tableLayout="auto";c.width=""}},cacheElements:function(){var a=this;a.callParent();a.rowEl=a.innerCt.down("tr");a.columnNodes=a.rowEl.dom.childNodes},calculate:function(h){var e=this,c,b,a,i,d,g;if(!h.getDomProp("containerChildrenDone")){e.done=false}else{c=h.innerCtContext;b=h.widthModel.shrinkWrap;a=h.heightModel.shrinkWrap;i=a||b;d=c.el.dom;g=i&&c.getPaddingInfo();if(b){h.setContentWidth(d.offsetWidth+g.width,true)}if(a){h.setContentHeight(d.offsetHeight+g.height,true)}}},doRenderColumn:function(d,l,g){var i=l.$layout,c=i.owner,e=l.columnCount,h=c.items.items,b=h.length,m,a,j,k,n;if(c.vertical){j=Math.ceil(b/e);a=g*j;b=Math.min(b,a+j);k=1}else{a=g;k=e}for(;a<b;a+=k){m=h[a];i.configureItem(m);n=m.getRenderTree();Ext.DomHelper.generateMarkup(n,d)}},getColumnCount:function(){var b=this,a=b.owner,c=a.columns;if(b.columnsArray){return c.length}if(Ext.isNumber(c)){return c}return a.items.length},getItemSizePolicy:function(a){return this.autoSizePolicy},getRenderData:function(){var k=this,g=k.callParent(),b=k.owner,h,d=k.getColumnCount(),a,c,j,l=k.autoFlex,e=0,m=0;if(k.columnsArray){for(h=0;h<d;h++){a=k.owner.columns[h];if(a<1){e+=a;m++}}}g.colCls=b.groupCls;g.columnCount=d;g.columns=[];for(h=0;h<d;h++){c=(g.columns[h]={});if(k.columnsArray){a=k.owner.columns[h];if(a<1){j=((a/e)*100)+"%"}else{j=a+"px"}c.style="width:"+j}else{c.style="width:"+(1/d*100)+"%";m++}}g.tableStyle=!m?"table-layout:fixed;":(m<d)?"table-layout:fixed;width:100%":(l)?"table-layout:auto;width:100%":"table-layout:auto;";return g},initLayout:function(){var b=this,a=b.owner;b.columnsArray=Ext.isArray(a.columns);b.autoColumns=!a.columns||a.columns==="auto";b.vertical=a.vertical;b.callParent()},isValidParent:function(){return true},setupRenderTpl:function(a){this.callParent(arguments);a.renderColumn=this.doRenderColumn},renderChildren:function(){var a=this,b=a.owner.items.generation;if(a.lastOwnerItemsGeneration!==b){a.lastOwnerItemsGeneration=b;a.renderItems(a.getLayoutItems())}},renderItems:function(e){var g=this,a=e.length,b,k,j,d,h,c;if(a){Ext.suspendLayouts();if(g.autoColumns){g.addMissingColumns(a)}d=g.columnNodes.length;j=Math.ceil(a/d);for(b=0;b<a;b++){k=e[b];h=g.getRenderRowIndex(b,j,d);c=g.getRenderColumnIndex(b,j,d);if(!k.rendered){g.renderItem(k,h,c)}else{if(!g.isItemAtPosition(k,h,c)){g.moveItem(k,h,c)}}}if(g.autoColumns){g.removeExceedingColumns(a)}Ext.resumeLayouts(true)}},isItemAtPosition:function(b,c,a){return b.el.dom===this.getNodeAt(c,a)},getRenderColumnIndex:function(b,a,c){if(this.vertical){return Math.floor(b/a)}else{return b%c}},getRenderRowIndex:function(b,a,d){var c=this;if(c.vertical){return b%a}else{return Math.floor(b/d)}},getNodeAt:function(b,a){return this.columnNodes[a].childNodes[b]},addMissingColumns:function(a){var g=this,c=g.columnNodes.length,e,h,b,d;if(c<a){e=a-c;h=g.rowEl;b=g.owner.groupCls;for(d=0;d<e;d++){h.createChild({cls:b,tag:"td",vAlign:"top"})}}},removeExceedingColumns:function(a){var e=this,b=e.columnNodes.length,d,g,c;if(b>a){d=b-a;g=e.rowEl;for(c=0;c<d;c++){g.last().remove()}}},renderItem:function(c,d,a){var b=this;b.configureItem(c);c.render(Ext.get(b.columnNodes[a]),d);b.afterRenderItem(c)},moveItem:function(d,g,b){var c=this,a=c.columnNodes[b],e=a.childNodes[g];a.insertBefore(d.el.dom,e||null)}});Ext.define("Ext.layout.component.field.FieldContainer",{extend:"Ext.layout.component.field.Field",alias:"layout.fieldcontainer",type:"fieldcontainer",waitForOuterHeightInDom:true,waitForOuterWidthInDom:true,beginLayout:function(a){this.callParent(arguments);a.hasRawContent=true;a.target.bodyEl.setStyle("height","")},measureContentHeight:function(a){return a.hasDomProp("containerLayoutDone")?this.callParent(arguments):NaN},measureContentWidth:function(a){return a.hasDomProp("containerLayoutDone")?this.callParent(arguments):NaN},publishInnerWidth:function(b,a){var c=b.bodyCellContext;c.setWidth(c.el.getWidth(),false)},publishInnerHeight:function(b,a){var c=b.bodyCellContext;c.setHeight(a-this.measureLabelErrorHeight(b))}});Ext.define("Ext.form.FieldAncestor",{initFieldAncestor:function(){var a=this,b=a.onFieldAncestorSubtreeChange;a.addEvents("fieldvaliditychange","fielderrorchange");a.on("add",b,a);a.on("remove",b,a);a.initFieldDefaults()},initFieldDefaults:function(){if(!this.fieldDefaults){this.fieldDefaults={}}},onFieldAncestorSubtreeChange:function(b,e){var c=this,d=!!e.ownerCt;function a(g){var h=g.isFieldLabelable,i=g.isFormField;if(h||i){if(h){c["onLabelable"+(d?"Added":"Removed")](g)}if(i){c["onField"+(d?"Added":"Removed")](g)}}else{if(g.isContainer){Ext.Array.forEach(g.getRefItems(),a)}}}a(e)},onLabelableAdded:function(a){var b=this;b.mon(a,"errorchange",b.handleFieldErrorChange,b,{buffer:10});a.setFieldDefaults(b.fieldDefaults)},onFieldAdded:function(b){var a=this;a.mon(b,"validitychange",a.handleFieldValidityChange,a)},onLabelableRemoved:function(a){var b=this;b.mun(a,"errorchange",b.handleFieldErrorChange,b)},onFieldRemoved:function(b){var a=this;a.mun(b,"validitychange",a.handleFieldValidityChange,a)},handleFieldValidityChange:function(c,b){var a=this;a.fireEvent("fieldvaliditychange",a,c,b);a.onFieldValidityChange(c,b)},handleFieldErrorChange:function(b,a){var c=this;c.fireEvent("fielderrorchange",c,b,a);c.onFieldErrorChange(b,a)},onFieldValidityChange:Ext.emptyFn,onFieldErrorChange:Ext.emptyFn});Ext.define("Ext.form.FieldContainer",{extend:"Ext.container.Container",mixins:{labelable:"Ext.form.Labelable",fieldAncestor:"Ext.form.FieldAncestor"},requires:"Ext.layout.component.field.FieldContainer",alias:"widget.fieldcontainer",componentLayout:"fieldcontainer",componentCls:Ext.baseCSSPrefix+"form-fieldcontainer",combineLabels:false,labelConnector:", ",combineErrors:false,maskOnDisable:false,fieldSubTpl:"{%this.renderContainer(out,values)%}",initComponent:function(){var a=this;a.initLabelable();a.initFieldAncestor();a.callParent()},beforeRender:function(){this.callParent(arguments);this.beforeLabelableRender(arguments)},onLabelableAdded:function(a){var b=this;b.mixins.fieldAncestor.onLabelableAdded.call(this,a);b.updateLabel()},onLabelableRemoved:function(a){var b=this;b.mixins.fieldAncestor.onLabelableRemoved.call(this,a);b.updateLabel()},initRenderTpl:function(){var a=this;if(!a.hasOwnProperty("renderTpl")){a.renderTpl=a.getTpl("labelableRenderTpl")}return a.callParent()},initRenderData:function(){return Ext.applyIf(this.callParent(),this.getLabelableRenderData())},getFieldLabel:function(){var a=this.fieldLabel||"";if(!a&&this.combineLabels){a=Ext.Array.map(this.query("[isFieldLabelable]"),function(b){return b.getFieldLabel()}).join(this.labelConnector)}return a},getSubTplData:function(){var a=this.initRenderData();Ext.apply(a,this.subTplData);return a},getSubTplMarkup:function(){var c=this,a=c.getTpl("fieldSubTpl"),b;if(!a.renderContent){c.setupRenderTpl(a)}b=a.apply(c.getSubTplData());return b},updateLabel:function(){var b=this,a=b.labelEl;if(a){b.setFieldLabel(b.getFieldLabel())}},onFieldErrorChange:function(e,b){if(this.combineErrors){var d=this,g=d.getActiveError(),c=Ext.Array.filter(d.query("[isFormField]"),function(h){return h.hasActiveError()}),a=d.getCombinedErrors(c);if(a){d.setActiveErrors(a)}else{d.unsetActiveError()}if(g!==d.getActiveError()){d.doComponentLayout()}}},getCombinedErrors:function(e){var k=[],c,l=e.length,i,d,j,b,g,h;for(c=0;c<l;c++){i=e[c];d=i.getActiveErrors();b=d.length;for(j=0;j<b;j++){g=d[j];h=i.getFieldLabel();k.push((h?h+": ":"")+g)}}return k},getTargetEl:function(){return this.bodyEl||this.callParent()}});Ext.define("Ext.form.CheckboxGroup",{extend:"Ext.form.FieldContainer",mixins:{field:"Ext.form.field.Field"},alias:"widget.checkboxgroup",requires:["Ext.layout.container.CheckboxGroup","Ext.form.field.Base"],columns:"auto",vertical:false,allowBlank:true,blankText:"You must select at least one item in this group",defaultType:"checkboxfield",groupCls:Ext.baseCSSPrefix+"form-check-group",fieldBodyCls:Ext.baseCSSPrefix+"form-checkboxgroup-body",layout:"checkboxgroup",initComponent:function(){var a=this;a.callParent();a.initField()},initValue:function(){var b=this,a=b.value;b.originalValue=b.lastValue=a||b.getValue();if(a){b.setValue(a)}},onFieldAdded:function(b){var a=this;if(b.isCheckbox){a.mon(b,"change",a.checkChange,a)}a.callParent(arguments)},onFieldRemoved:function(b){var a=this;if(b.isCheckbox){a.mun(b,"change",a.checkChange,a)}a.callParent(arguments)},isEqual:function(b,a){var c=Ext.Object.toQueryString;return c(b)===c(a)},getErrors:function(){var a=[];if(!this.allowBlank&&Ext.isEmpty(this.getChecked())){a.push(this.blankText)}return a},getBoxes:function(a){return this.query("[isCheckbox]"+(a||""))},eachBox:function(b,a){Ext.Array.forEach(this.getBoxes(),b,a||this)},getChecked:function(){return this.getBoxes("[checked]")},isDirty:function(){var c=this.getBoxes(),a,d=c.length;for(a=0;a<d;a++){if(c[a].isDirty()){return true}}},setReadOnly:function(e){var c=this.getBoxes(),a,d=c.length;for(a=0;a<d;a++){c[a].setReadOnly(e)}this.readOnly=e},reset:function(){var c=this,b=c.hasActiveError(),a=c.preventMark;c.preventMark=true;c.batchChanges(function(){var e=c.getBoxes(),d,g=e.length;for(d=0;d<g;d++){e[d].reset()}});c.preventMark=a;c.unsetActiveError();if(b){c.updateLayout()}},resetOriginalValue:function(){var d=this,c=d.getBoxes(),a,e=c.length;for(a=0;a<e;a++){c[a].resetOriginalValue()}d.originalValue=d.getValue();d.checkDirty()},setValue:function(h){var g=this,d=g.getBoxes(),a,j=d.length,e,c,i;g.batchChanges(function(){for(a=0;a<j;a++){e=d[a];c=e.getName();i=false;if(h&&h.hasOwnProperty(c)){if(Ext.isArray(h[c])){i=Ext.Array.contains(h[c],e.inputValue)}else{i=h[c]}}e.setValue(i)}});return g},getValue:function(){var d={},g=this.getBoxes(),c,j=g.length,h,e,a,i;for(c=0;c<j;c++){h=g[c];e=h.getName();a=h.inputValue;if(h.getValue()){if(d.hasOwnProperty(e)){i=d[e];if(!Ext.isArray(i)){i=d[e]=[i]}i.push(a)}else{d[e]=a}}}return d},getSubmitData:function(){return null},getModelData:function(){return null},validate:function(){var a=this,d,c,b;if(a.disabled){c=true}else{d=a.getErrors();c=Ext.isEmpty(d);b=!a.hasActiveError();if(c){a.unsetActiveError()}else{a.setActiveError(d)}}if(c!==b){a.fireEvent("validitychange",a,c);a.updateLayout()}return c}},function(){this.borrow(Ext.form.field.Base,["markInvalid","clearInvalid"])});Ext.define("Ext.form.CheckboxManager",{extend:"Ext.util.MixedCollection",singleton:true,getByName:function(a){return this.filterBy(function(b){return b.name==a})},getWithValue:function(a,b){return this.filterBy(function(c){return c.name==a&&c.inputValue==b})},getChecked:function(a){return this.filterBy(function(b){return b.name==a&&b.checked})}});Ext.define("Ext.layout.component.FieldSet",{extend:"Ext.layout.component.Body",alias:["layout.fieldset"],type:"fieldset",beforeLayoutCycle:function(a){if(a.target.collapsed){a.heightModel=this.sizeModels.shrinkWrap}},beginLayoutCycle:function(b){var c=b.target,a;this.callParent(arguments);if(c.collapsed){b.setContentHeight(0);if(b.widthModel.shrinkWrap){a=c.lastComponentSize;b.setContentWidth((a&&a.contentWidth)||100)}}},calculateOwnerHeightFromContentHeight:function(d,c){var a=d.getBorderInfo(),b=d.target.legend;return d.getProp("contentHeight")+d.getPaddingInfo().height+(b?b.getHeight():a.top)+a.bottom},publishInnerHeight:function(c,a){var b=c.target.legend;if(b){a-=b.getHeight()}this.callParent([c,a])},getLayoutItems:function(){var a=this.owner.legend;if(a){return[a]}return[]}});Ext.define("Ext.form.FieldSet",{extend:"Ext.container.Container",alias:"widget.fieldset",uses:["Ext.form.field.Checkbox","Ext.panel.Tool","Ext.layout.container.Anchor","Ext.layout.component.FieldSet"],collapsed:false,toggleOnTitleClick:true,baseCls:Ext.baseCSSPrefix+"fieldset",layout:"anchor",border:1,componentLayout:"fieldset",autoEl:"fieldset",childEls:["body"],renderTpl:["{%this.renderLegend(out,values);%}",'<div id="{id}-body" class="{baseCls}-body">',"{%this.renderContainer(out,values);%}","</div>"],stateEvents:["collapse","expand"],maskOnDisable:false,beforeDestroy:function(){var b=this,a=b.legend;if(a){delete a.ownerCt;a.destroy();b.legend=null}b.callParent()},initComponent:function(){var b=this,a=b.baseCls;b.callParent();b.addEvents("beforeexpand","beforecollapse","expand","collapse");if(b.collapsed){b.addCls(a+"-collapsed");b.collapse()}if(b.title){b.addCls(a+"-with-title")}if(b.title||b.checkboxToggle||b.collapsible){b.addCls(a+"-with-legend");b.legend=Ext.widget(b.createLegendCt())}},initRenderData:function(){var a=this.callParent();a.baseCls=this.baseCls;return a},getState:function(){var a=this.callParent();a=this.addPropertyToState(a,"collapsed");return a},afterCollapse:Ext.emptyFn,afterExpand:Ext.emptyFn,collapsedHorizontal:function(){return true},collapsedVertical:function(){return true},createLegendCt:function(){var c=this,a=[],b={xtype:"container",baseCls:c.baseCls+"-header",id:c.id+"-legend",autoEl:"legend",items:a,ownerCt:c,ownerLayout:c.componentLayout};if(c.checkboxToggle){a.push(c.createCheckboxCmp())}else{if(c.collapsible){a.push(c.createToggleCmp())}}a.push(c.createTitleCmp());return b},createTitleCmp:function(){var b=this,a={xtype:"component",html:b.title,cls:b.baseCls+"-header-text",id:b.id+"-legendTitle"};if(b.collapsible&&b.toggleOnTitleClick){a.listeners={el:{scope:b,click:b.toggle}};a.cls+=" "+b.baseCls+"-header-text-collapsible"}return(b.titleCmp=Ext.widget(a))},createCheckboxCmp:function(){var a=this,b="-checkbox";a.checkboxCmp=Ext.widget({xtype:"checkbox",hideEmptyLabel:true,name:a.checkboxName||a.id+b,cls:a.baseCls+"-header"+b,id:a.id+"-legendChk",checked:!a.collapsed,listeners:{change:a.onCheckChange,scope:a}});return a.checkboxCmp},createToggleCmp:function(){var a=this;a.toggleCmp=Ext.widget({xtype:"tool",type:"toggle",handler:a.toggle,id:a.id+"-legendToggle",scope:a});return a.toggleCmp},doRenderLegend:function(b,e){var d=e.$comp,c=d.legend,a;if(c){c.ownerLayout.configureItem(c);a=c.getRenderTree();Ext.DomHelper.generateMarkup(a,b)}},finishRender:function(){var a=this.legend;this.callParent();if(a){a.finishRender()}},getCollapsed:function(){return this.collapsed?"top":false},getCollapsedDockedItems:function(){var a=this.legend;return a?[a]:[]},setTitle:function(c){var b=this,a=b.legend;b.title=c;if(b.rendered){if(!b.legend){b.legend=a=Ext.widget(b.createLegendCt());a.ownerLayout.configureItem(a);a.render(b.el,0)}b.titleCmp.update(c)}return b},getTargetEl:function(){return this.body||this.frameBody||this.el},getContentTarget:function(){return this.body},expand:function(){return this.setExpanded(true)},collapse:function(){return this.setExpanded(false)},setExpanded:function(b){var c=this,d=c.checkboxCmp,a=b?"expand":"collapse";if(!c.rendered||c.fireEvent("before"+a,c)!==false){b=!!b;if(d){d.setValue(b)}if(b){c.removeCls(c.baseCls+"-collapsed")}else{c.addCls(c.baseCls+"-collapsed")}c.collapsed=!b;if(c.rendered){c.updateLayout({isRoot:false});c.fireEvent(a,c)}}return c},getRefItems:function(a){var c=this.callParent(arguments),b=this.legend;if(b){c.unshift(b);if(a){c.unshift.apply(c,b.getRefItems(true))}}return c},toggle:function(){this.setExpanded(!!this.collapsed)},onCheckChange:function(b,a){this.setExpanded(a)},setupRenderTpl:function(a){this.callParent(arguments);a.renderLegend=this.doRenderLegend}});Ext.define("Ext.form.Label",{extend:"Ext.Component",alias:"widget.label",requires:["Ext.util.Format"],autoEl:"label",maskOnDisable:false,getElConfig:function(){var a=this;a.html=a.text?Ext.util.Format.htmlEncode(a.text):(a.html||"");return Ext.apply(a.callParent(),{htmlFor:a.forId||""})},setText:function(c,b){var a=this;b=b!==false;if(b){a.text=c;delete a.html}else{a.html=c;delete a.text}if(a.rendered){a.el.dom.innerHTML=b!==false?Ext.util.Format.htmlEncode(c):c;a.updateLayout()}return a}});Ext.define("Ext.form.Panel",{extend:"Ext.panel.Panel",mixins:{fieldAncestor:"Ext.form.FieldAncestor"},alias:"widget.form",alternateClassName:["Ext.FormPanel","Ext.form.FormPanel"],requires:["Ext.form.Basic","Ext.util.TaskRunner"],layout:"anchor",ariaRole:"form",basicFormConfigs:["api","baseParams","errorReader","method","paramOrder","paramsAsHash","reader","standardSubmit","timeout","trackResetOnLoad","url","waitMsgTarget","waitTitle"],initComponent:function(){var a=this;if(a.frame){a.border=false}a.initFieldAncestor();a.callParent();a.relayEvents(a.form,["beforeaction","actionfailed","actioncomplete","validitychange","dirtychange"]);if(a.pollForChanges){a.startPolling(a.pollInterval||500)}},initItems:function(){var a=this;a.form=a.createForm();a.callParent()},afterFirstLayout:function(){this.callParent();this.form.initialize()},createForm:function(){var b={},d=this.basicFormConfigs,a=d.length,c=0,e;for(;c<a;++c){e=d[c];b[e]=this[e]}return new Ext.form.Basic(this,b)},getForm:function(){return this.form},loadRecord:function(a){return this.getForm().loadRecord(a)},getRecord:function(){return this.getForm().getRecord()},getValues:function(d,b,c,a){return this.getForm().getValues(d,b,c,a)},beforeDestroy:function(){this.stopPolling();this.form.destroy();this.callParent()},load:function(a){this.form.load(a)},submit:function(a){this.form.submit(a)},startPolling:function(b){this.stopPolling();var a=new Ext.util.TaskRunner(b);a.start({interval:0,run:this.checkChange,scope:this});this.pollTask=a},stopPolling:function(){var a=this.pollTask;if(a){a.stopAll();delete this.pollTask}},checkChange:function(){var a=this.form.getFields().items,b,d=a.length,c;for(b=0;b<d;b++){a[b].checkChange()}}});Ext.define("Ext.form.RadioGroup",{extend:"Ext.form.CheckboxGroup",alias:"widget.radiogroup",allowBlank:true,blankText:"You must select one item in this group",defaultType:"radiofield",groupCls:Ext.baseCSSPrefix+"form-radio-group",getBoxes:function(a){return this.query("[isRadio]"+(a||""))},checkChange:function(){var b=this.getValue(),a=Ext.Object.getKeys(b)[0];if(Ext.isArray(b[a])){return}this.callParent(arguments)},setValue:function(d){var j,g,e,h,c,a,b;if(Ext.isObject(d)){for(b in d){if(d.hasOwnProperty(b)){j=d[b];g=this.items.first();e=g?g.getFormId():null;h=Ext.form.RadioManager.getWithValue(b,j,e).items;a=h.length;for(c=0;c<a;++c){h[c].setValue(true)}}}}return this}});Ext.define("Ext.form.RadioManager",{extend:"Ext.util.MixedCollection",singleton:true,getByName:function(a,b){return this.filterBy(function(c){return c.name==a&&c.getFormId()==b})},getWithValue:function(a,b,c){return this.filterBy(function(d){return d.name==a&&d.inputValue==b&&d.getFormId()==c})},getChecked:function(a,b){return this.findBy(function(c){return c.name==a&&c.checked&&c.getFormId()==b})}});Ext.define("Ext.form.action.DirectLoad",{extend:"Ext.form.action.Load",requires:["Ext.direct.Manager"],alternateClassName:"Ext.form.Action.DirectLoad",alias:"formaction.directload",type:"directload",run:function(){var d=this,c=d.form,b=c.api.load,e=b.directCfg.method,a=e.getArgs(d.getParams(),c.paramOrder,c.paramsAsHash);a.push(d.onComplete,d);b.apply(window,a)},processResponse:function(a){return(this.result=a)},onComplete:function(b,a){if(b){this.onSuccess(b)}else{this.onFailure(null)}}});Ext.define("Ext.form.action.DirectSubmit",{extend:"Ext.form.action.Submit",requires:["Ext.direct.Manager"],alternateClassName:"Ext.form.Action.DirectSubmit",alias:"formaction.directsubmit",type:"directsubmit",doSubmit:function(){var b=this,c=Ext.Function.bind(b.onComplete,b),a=b.buildForm();b.form.api.submit(a,c,b);Ext.removeNode(a)},processResponse:function(a){return(this.result=a)},onComplete:function(b,a){if(b){this.onSuccess(b)}else{this.onFailure(null)}}});Ext.define("Ext.form.action.StandardSubmit",{extend:"Ext.form.action.Submit",alias:"formaction.standardsubmit",doSubmit:function(){var a=this.buildForm();a.submit();Ext.removeNode(a)}});Ext.define("Ext.form.field.Checkbox",{extend:"Ext.form.field.Base",alias:["widget.checkboxfield","widget.checkbox"],alternateClassName:"Ext.form.Checkbox",requires:["Ext.XTemplate","Ext.form.CheckboxManager"],componentLayout:"field",childEls:["boxLabelEl"],fieldSubTpl:["<tpl if=\"boxLabel && boxLabelAlign == 'before'\">","{beforeBoxLabelTpl}",'<label id="{cmpId}-boxLabelEl" {boxLabelAttrTpl} class="{boxLabelCls} {boxLabelCls}-{boxLabelAlign}" for="{id}">',"{beforeBoxLabelTextTpl}","{boxLabel}","{afterBoxLabelTextTpl}","</label>","{afterBoxLabelTpl}","</tpl>",'<input type="button" id="{id}" {inputAttrTpl}','<tpl if="tabIdx"> tabIndex="{tabIdx}"</tpl>','<tpl if="disabled"> disabled="disabled"</tpl>','<tpl if="fieldStyle"> style="{fieldStyle}"</tpl>',' class="{fieldCls} {typeCls}" autocomplete="off" hidefocus="true" />',"<tpl if=\"boxLabel && boxLabelAlign == 'after'\">","{beforeBoxLabelTpl}",'<label id="{cmpId}-boxLabelEl" {boxLabelAttrTpl} class="{boxLabelCls} {boxLabelCls}-{boxLabelAlign}" for="{id}">',"{beforeBoxLabelTextTpl}","{boxLabel}","{afterBoxLabelTextTpl}","</label>","{afterBoxLabelTpl}","</tpl>",{disableFormats:true,compiled:true}],subTplInsertions:["beforeBoxLabelTpl","afterBoxLabelTpl","beforeBoxLabelTextTpl","afterBoxLabelTextTpl","boxLabelAttrTpl","inputAttrTpl"],isCheckbox:true,focusCls:"form-cb-focus",fieldBodyCls:Ext.baseCSSPrefix+"form-cb-wrap",checked:false,checkedCls:Ext.baseCSSPrefix+"form-cb-checked",boxLabelCls:Ext.baseCSSPrefix+"form-cb-label",boxLabelAlign:"after",inputValue:"on",checkChangeEvents:[],inputType:"checkbox",onRe:/^on$/i,initComponent:function(){this.callParent(arguments);this.getManager().add(this)},initValue:function(){var b=this,a=!!b.checked;b.originalValue=b.lastValue=a;b.setValue(a)},getElConfig:function(){var a=this;if(a.isChecked(a.rawValue,a.inputValue)){a.addCls(a.checkedCls)}return a.callParent()},getFieldStyle:function(){return Ext.isObject(this.fieldStyle)?Ext.DomHelper.generateStyles(this.fieldStyle):this.fieldStyle||""},getSubTplData:function(){var a=this;return Ext.apply(a.callParent(),{disabled:a.readOnly||a.disabled,boxLabel:a.boxLabel,boxLabelCls:a.boxLabelCls,boxLabelAlign:a.boxLabelAlign})},initEvents:function(){var a=this;a.callParent();a.mon(a.inputEl,"click",a.onBoxClick,a)},onBoxClick:function(b){var a=this;if(!a.disabled&&!a.readOnly){this.setValue(!this.checked)}},getRawValue:function(){return this.checked},getValue:function(){return this.checked},getSubmitValue:function(){var a=this.uncheckedValue,b=Ext.isDefined(a)?a:null;return this.checked?this.inputValue:b},isChecked:function(b,a){return(b===true||b==="true"||b==="1"||b===1||(((Ext.isString(b)||Ext.isNumber(b))&&a)?b==a:this.onRe.test(b)))},setRawValue:function(c){var b=this,d=b.inputEl,a=b.isChecked(c,b.inputValue);if(d){b[a?"addCls":"removeCls"](b.checkedCls)}b.checked=b.rawValue=a;return a},setValue:function(g){var e=this,c,b,a,d;if(Ext.isArray(g)){c=e.getManager().getByName(e.name,e.getFormId()).items;a=c.length;for(b=0;b<a;++b){d=c[b];d.setValue(Ext.Array.contains(g,d.inputValue))}}else{e.callParent(arguments)}return e},valueToRaw:function(a){return a},onChange:function(b,a){var d=this,c=d.handler;if(c){c.call(d.scope||d,d,b)}d.callParent(arguments)},resetOriginalValue:function(b){var g=this,d,e,a,c;if(!b){d=g.getManager().getByName(g.name,g.getFormId()).items;a=d.length;for(c=0;c<a;++c){e=d[c];if(e!==g){d[c].resetOriginalValue(true)}}}g.callParent()},beforeDestroy:function(){this.callParent();this.getManager().removeAtKey(this.id)},getManager:function(){return Ext.form.CheckboxManager},onEnable:function(){var a=this,b=a.inputEl;a.callParent();if(b){b.dom.disabled=a.readOnly}},setReadOnly:function(c){var a=this,b=a.inputEl;if(b){b.dom.disabled=!!c||a.disabled}a.callParent(arguments)},getFormId:function(){var b=this,a;if(!b.formId){a=b.up("form");if(a){b.formId=a.id}}return b.formId}});Ext.define("Ext.layout.component.field.Trigger",{alias:"layout.triggerfield",extend:"Ext.layout.component.field.Field",type:"triggerfield",beginLayout:function(d){var c=this,a=c.owner,b;d.triggerWrap=d.getEl("triggerWrap");c.callParent(arguments);b=a.getTriggerStateFlags();if(b!=a.lastTriggerStateFlags){a.lastTriggerStateFlags=b;c.updateEditState()}},beginLayoutFixed:function(g,c,h){var d=this,a=g.target,e=d.ieInputWidthAdjustment||0,i="100%",b=a.triggerWrap;d.callParent(arguments);a.inputCell.setStyle("width","100%");if(e){a.inputCell.setStyle("padding-right",e+"px");if(h==="px"){if(a.inputWidth){i=a.inputWidth-a.getTriggerWidth()}else{i=c-e-a.getTriggerWidth()}i+="px"}}a.inputEl.setStyle("width",i);i=a.inputWidth;if(i){b.setStyle("width",i+(e)+"px")}else{b.setStyle("width",c+h)}b.setStyle("table-layout","fixed")},beginLayoutShrinkWrap:function(d){var a=d.target,g="",e=a.inputWidth,b=a.triggerWrap,c=this.ieInputWidthAdjustment||0;this.callParent(arguments);if(e){b.setStyle("width",e+"px");e=(e-a.getTriggerWidth())+"px";a.inputEl.setStyle("width",e);a.inputCell.setStyle("width",e)}else{a.inputCell.setStyle("width",g);a.inputEl.setStyle("width",g);b.setStyle("width",g);b.setStyle("table-layout","auto")}},getTextWidth:function(){var b=this,a=b.owner,d=a.inputEl,c;c=(d.dom.value||(a.hasFocus?"":a.emptyText)||"")+a.growAppend;return d.getTextWidth(c)},measureContentWidth:function(h){var g=this,b=g.owner,e=g.callParent(arguments),i=h.inputContext,d,a,c;if(b.grow&&!h.state.growHandled){d=g.getTextWidth()+h.inputContext.getFrameInfo().width;a=b.growMax;c=Math.min(a,e);a=Math.max(b.growMin,a,c);d=Ext.Number.constrain(d,b.growMin,a);i.setWidth(d);h.state.growHandled=true;i.domBlock(g,"width");e=NaN}return e},updateEditState:function(){var c=this,a=c.owner,e=a.inputEl,d=Ext.baseCSSPrefix+"trigger-noedit",b,g;if(c.owner.readOnly){e.addCls(d);g=true;b=false}else{if(c.owner.editable){e.removeCls(d);g=false}else{e.addCls(d);g=true}b=!c.owner.hideTrigger}a.triggerCell.setDisplayed(b);e.dom.readOnly=g}});Ext.define("Ext.layout.component.field.ComboBox",{extend:"Ext.layout.component.field.Trigger",alias:"layout.combobox",requires:["Ext.util.TextMetrics"],type:"combobox",startingWidth:null,getTextWidth:function(){var h=this,b=h.owner,l=b.store,j=b.displayField,d=l.data.length,k="",e=0,c=0,g,m,a;for(;e<d;e++){m=l.getAt(e).data[j];g=m.length;if(g>c){c=g;k=m}}a=Math.max(h.callParent(arguments),b.inputEl.getTextWidth(k+b.growAppend));if(!h.startingWidth||b.removingRecords){h.startingWidth=a;if(a<b.growMin){b.defaultListConfig.minWidth=b.growMin}b.removingRecords=false}return(a<h.startingWidth)?h.startingWidth:a}});Ext.define("Ext.form.field.Trigger",{extend:"Ext.form.field.Text",alias:["widget.triggerfield","widget.trigger"],requires:["Ext.DomHelper","Ext.util.ClickRepeater","Ext.layout.component.field.Trigger"],alternateClassName:["Ext.form.TriggerField","Ext.form.TwinTriggerField","Ext.form.Trigger"],childEls:[{name:"triggerCell",select:"."+Ext.baseCSSPrefix+"trigger-cell"},{name:"triggerEl",select:"."+Ext.baseCSSPrefix+"form-trigger"},"triggerWrap","inputCell"],triggerBaseCls:Ext.baseCSSPrefix+"form-trigger",triggerWrapCls:Ext.baseCSSPrefix+"form-trigger-wrap",triggerNoEditCls:Ext.baseCSSPrefix+"trigger-noedit",hideTrigger:false,editable:true,readOnly:false,repeatTriggerClick:false,autoSize:Ext.emptyFn,monitorTab:true,mimicing:false,triggerIndexRe:/trigger-index-(\d+)/,componentLayout:"triggerfield",initComponent:function(){this.wrapFocusCls=this.triggerWrapCls+"-focus";this.callParent(arguments)},getSubTplMarkup:function(){var a=this,b=a.callParent(arguments);return'<table id="'+a.id+'-triggerWrap" class="'+Ext.baseCSSPrefix+'form-trigger-wrap" cellpadding="0" cellspacing="0"><tbody><tr><td id="'+a.id+'-inputCell" class="'+Ext.baseCSSPrefix+'form-trigger-input-cell">'+b+"</td>"+a.getTriggerMarkup()+"</tr></tbody></table>"},getSubTplData:function(){var b=this,c=b.callParent(),d=b.readOnly===true,a=b.editable!==false;return Ext.apply(c,{editableCls:(d||!a)?" "+b.triggerNoEditCls:"",readOnly:!a||d})},getLabelableRenderData:function(){var b=this,c=b.triggerWrapCls,a=b.callParent(arguments);return Ext.applyIf(a,{triggerWrapCls:c,triggerMarkup:b.getTriggerMarkup()})},getTriggerMarkup:function(){var c=this,b=0,d=(c.readOnly||c.hideTrigger),g,e=c.triggerBaseCls,a=[];if(!c.trigger1Cls){c.trigger1Cls=c.triggerCls}for(b=0;(g=c["trigger"+(b+1)+"Cls"])||b<1;b++){a.push({tag:"td",valign:"top",cls:Ext.baseCSSPrefix+"trigger-cell",style:"width:"+c.triggerWidth+(d?"px;display:none":"px"),cn:{cls:[Ext.baseCSSPrefix+"trigger-index-"+b,e,g].join(" "),role:"button"}})}a[b-1].cn.cls+=" "+e+"-last";return Ext.DomHelper.markup(a)},disableCheck:function(){return !this.disabled},beforeRender:function(){var a=this,b=a.triggerBaseCls,c;if(!a.triggerWidth){c=Ext.resetElement.createChild({style:"position: absolute;",cls:Ext.baseCSSPrefix+"form-trigger"});Ext.form.field.Trigger.prototype.triggerWidth=c.getWidth();c.remove()}a.callParent();if(b!=Ext.baseCSSPrefix+"form-trigger"){a.addChildEls({name:"triggerEl",select:"."+b})}a.lastTriggerStateFlags=a.getTriggerStateFlags()},onRender:function(){var a=this;a.callParent(arguments);a.doc=Ext.getDoc();a.initTrigger();a.triggerEl.unselectable()},getTriggerWidth:function(){var b=this,a=0;if(b.triggerWrap&&!b.hideTrigger&&!b.readOnly){a=b.triggerEl.getCount()*b.triggerWidth}return a},setHideTrigger:function(a){if(a!=this.hideTrigger){this.hideTrigger=a;this.updateLayout()}},setEditable:function(a){if(a!=this.editable){this.editable=a;this.updateLayout()}},setReadOnly:function(a){if(a!=this.readOnly){this.readOnly=a;this.updateLayout()}},initTrigger:function(){var h=this,i=h.triggerWrap,k=h.triggerEl,a=h.disableCheck,d,c,b,g,j;if(h.repeatTriggerClick){h.triggerRepeater=new Ext.util.ClickRepeater(i,{preventDefault:true,handler:h.onTriggerWrapClick,listeners:{mouseup:h.onTriggerWrapMouseup,scope:h},scope:h})}else{h.mon(i,{click:h.onTriggerWrapClick,mouseup:h.onTriggerWrapMouseup,scope:h})}k.setVisibilityMode(Ext.Element.DISPLAY);k.addClsOnOver(h.triggerBaseCls+"-over",a,h);d=k.elements;c=d.length;for(g=0;g<c;g++){b=d[g];j=g+1;b.addClsOnOver(h["trigger"+(j)+"Cls"]+"-over",a,h);b.addClsOnClick(h["trigger"+(j)+"Cls"]+"-click",a,h)}k.addClsOnClick(h.triggerBaseCls+"-click",a,h)},onDestroy:function(){var a=this;Ext.destroyMembers(a,"triggerRepeater","triggerWrap","triggerEl");delete a.doc;a.callParent()},onFocus:function(){var a=this;a.callParent(arguments);if(!a.mimicing){a.bodyEl.addCls(a.wrapFocusCls);a.mimicing=true;a.mon(a.doc,"mousedown",a.mimicBlur,a,{delay:10});if(a.monitorTab){a.on("specialkey",a.checkTab,a)}}},checkTab:function(a,b){if(!this.ignoreMonitorTab&&b.getKey()==b.TAB){this.triggerBlur()}},getTriggerStateFlags:function(){var a=this,b=0;if(a.readOnly){b+=1}if(a.editable){b+=2}if(a.hideTrigger){b+=4}return b},onBlur:Ext.emptyFn,mimicBlur:function(a){if(!this.isDestroyed&&!this.bodyEl.contains(a.target)&&this.validateBlur(a)){this.triggerBlur(a)}},triggerBlur:function(b){var a=this;a.mimicing=false;a.mun(a.doc,"mousedown",a.mimicBlur,a);if(a.monitorTab&&a.inputEl){a.un("specialkey",a.checkTab,a)}Ext.form.field.Trigger.superclass.onBlur.call(a,b);if(a.bodyEl){a.bodyEl.removeCls(a.wrapFocusCls)}},validateBlur:function(a){return true},onTriggerWrapClick:function(){var d=this,e,b,a,c;c=arguments[d.triggerRepeater?1:0];if(c&&!d.readOnly&&!d.disabled){e=c.getTarget("."+d.triggerBaseCls,null);b=e&&e.className.match(d.triggerIndexRe);if(b){a=d["onTrigger"+(parseInt(b[1],10)+1)+"Click"]||d.onTriggerClick;if(a){a.call(d,c)}}}},onTriggerWrapMouseup:Ext.emptyFn,onTriggerClick:Ext.emptyFn});Ext.define("Ext.form.field.Picker",{extend:"Ext.form.field.Trigger",alias:"widget.pickerfield",alternateClassName:"Ext.form.Picker",requires:["Ext.util.KeyNav"],matchFieldWidth:true,pickerAlign:"tl-bl?",openCls:Ext.baseCSSPrefix+"pickerfield-open",editable:true,initComponent:function(){this.callParent();this.addEvents("expand","collapse","select")},initEvents:function(){var a=this;a.callParent();a.keyNav=new Ext.util.KeyNav(a.inputEl,{down:a.onDownArrow,esc:{handler:a.onEsc,scope:a,defaultEventAction:false},scope:a,forceKeyDown:true});if(!a.editable){a.mon(a.inputEl,"click",a.onTriggerClick,a)}if(Ext.isGecko){a.inputEl.dom.setAttribute("autocomplete","off")}},onEsc:function(b){var a=this;if(a.isExpanded){a.collapse();b.stopEvent()}else{if(a.up("window")){a.blur()}else{if((!Ext.FocusManager||!Ext.FocusManager.enabled)){b.stopEvent()}}}},onDownArrow:function(a){if(!this.isExpanded){this.onTriggerClick()}},expand:function(){var c=this,a,b,d;if(c.rendered&&!c.isExpanded&&!c.isDestroyed){a=c.bodyEl;b=c.getPicker();d=c.collapseIf;b.show();c.isExpanded=true;c.alignPicker();a.addCls(c.openCls);c.mon(Ext.getDoc(),{mousewheel:d,mousedown:d,scope:c});Ext.EventManager.onWindowResize(c.alignPicker,c);c.fireEvent("expand",c);c.onExpand()}},onExpand:Ext.emptyFn,alignPicker:function(){var b=this,a=b.getPicker();if(b.isExpanded){if(b.matchFieldWidth){a.setWidth(b.bodyEl.getWidth())}if(a.isFloating()){b.doAlign()}}},doAlign:function(){var d=this,c=d.picker,a="-above",b;d.picker.alignTo(d.inputEl,d.pickerAlign,d.pickerOffset);b=c.el.getY()<d.inputEl.getY();d.bodyEl[b?"addCls":"removeCls"](d.openCls+a);c[b?"addCls":"removeCls"](c.baseCls+a)},collapse:function(){if(this.isExpanded&&!this.isDestroyed){var d=this,c=d.openCls,b=d.picker,e=Ext.getDoc(),g=d.collapseIf,a="-above";b.hide();d.isExpanded=false;d.bodyEl.removeCls([c,c+a]);b.el.removeCls(b.baseCls+a);e.un("mousewheel",g,d);e.un("mousedown",g,d);Ext.EventManager.removeResizeListener(d.alignPicker,d);d.fireEvent("collapse",d);d.onCollapse()}},onCollapse:Ext.emptyFn,collapseIf:function(b){var a=this;if(!a.isDestroyed&&!b.within(a.bodyEl,false,true)&&!b.within(a.picker.el,false,true)&&!a.isEventWithinPickerLoadMask(b)){a.collapse()}},getPicker:function(){var a=this;return a.picker||(a.picker=a.createPicker())},createPicker:Ext.emptyFn,onTriggerClick:function(){var a=this;if(!a.readOnly&&!a.disabled){if(a.isExpanded){a.collapse()}else{a.expand()}a.inputEl.focus()}},mimicBlur:function(c){var b=this,a=b.picker;if(!a||!c.within(a.el,false,true)&&!b.isEventWithinPickerLoadMask(c)){b.callParent(arguments)}},onDestroy:function(){var b=this,a=b.picker;Ext.EventManager.removeResizeListener(b.alignPicker,b);Ext.destroy(b.keyNav);if(a){delete a.pickerField;a.destroy()}b.callParent()},isEventWithinPickerLoadMask:function(b){var a=this.picker.loadMask;return a?b.within(a.maskEl,false,true)||b.within(a.el,false,true):false}});Ext.define("Ext.layout.component.BoundList",{extend:"Ext.layout.component.Auto",alias:"layout.boundlist",type:"component",beginLayout:function(d){var c=this,a=c.owner,b=a.pagingToolbar;c.callParent(arguments);if(a.floating){d.savedXY=a.el.getXY();a.el.setXY([-9999,-9999])}if(b){d.toolbarContext=d.context.getCmp(b)}d.listContext=d.getEl("listEl")},beginLayoutCycle:function(b){var a=this.owner;this.callParent(arguments);if(b.heightModel.auto){a.el.setHeight("auto");a.listEl.setHeight("auto")}},getLayoutItems:function(){var a=this.owner.pagingToolbar;return a?[a]:[]},isValidParent:function(){return true},finishedLayout:function(a){var b=a.savedXY;this.callParent(arguments);if(b){this.owner.el.setXY(b)}},measureContentWidth:function(a){return this.owner.listEl.getWidth()},measureContentHeight:function(a){return this.owner.listEl.getHeight()},publishInnerHeight:function(c,a){var b=c.toolbarContext,d=0;if(b){d=b.getProp("height")}if(d===undefined){this.done=false}else{c.listContext.setHeight(a-c.getFrameInfo().height-d)}},calculateOwnerHeightFromContentHeight:function(c){var a=this.callParent(arguments),b=c.toolbarContext;if(b){a+=b.getProp("height")}return a}});Ext.define("Ext.selection.Model",{extend:"Ext.util.Observable",alternateClassName:"Ext.AbstractSelectionModel",requires:["Ext.data.StoreManager"],mixins:{bindable:"Ext.util.Bindable"},allowDeselect:false,selected:null,pruneRemoved:true,constructor:function(a){var b=this;a=a||{};Ext.apply(b,a);b.addEvents("selectionchange","focuschange");b.modes={SINGLE:true,SIMPLE:true,MULTI:true};b.setSelectionMode(a.mode||b.mode);b.selected=new Ext.util.MixedCollection();b.callParent(arguments)},bindStore:function(a,b){var c=this;c.mixins.bindable.bindStore.apply(c,arguments);if(c.store&&!b){c.refresh()}},getStoreListeners:function(){var a=this;return{add:a.onStoreAdd,clear:a.onStoreClear,remove:a.onStoreRemove,update:a.onStoreUpdate}},selectAll:function(b){var e=this,d=e.store.getRange(),c=0,a=d.length,g=e.getSelection().length;e.bulkChange=true;for(;c<a;c++){e.doSelect(d[c],true,b)}delete e.bulkChange;e.maybeFireSelectionChange(e.getSelection().length!==g)},deselectAll:function(b){var e=this,d=e.getSelection(),c=0,a=d.length,g=e.getSelection().length;e.bulkChange=true;for(;c<a;c++){e.doDeselect(d[c],b)}delete e.bulkChange;e.maybeFireSelectionChange(e.getSelection().length!==g)},selectWithEvent:function(a,d,c){var b=this;switch(b.selectionMode){case"MULTI":if(d.ctrlKey&&b.isSelected(a)){b.doDeselect(a,false)}else{if(d.shiftKey&&b.lastFocused){b.selectRange(b.lastFocused,a,d.ctrlKey)}else{if(d.ctrlKey){b.doSelect(a,true,false)}else{if(b.isSelected(a)&&!d.shiftKey&&!d.ctrlKey&&b.selected.getCount()>1){b.doSelect(a,c,false)}else{b.doSelect(a,false)}}}}break;case"SIMPLE":if(b.isSelected(a)){b.doDeselect(a)}else{b.doSelect(a,true)}break;case"SINGLE":if(b.allowDeselect&&b.isSelected(a)){b.doDeselect(a)}else{b.doSelect(a,false)}break}},selectRange:function(l,e,m,c){var j=this,k=j.store,d=0,h,g,a,b=[];if(j.isLocked()){return}if(!m){j.deselectAll(true)}if(!Ext.isNumber(l)){l=k.indexOf(l)}if(!Ext.isNumber(e)){e=k.indexOf(e)}if(l>e){g=e;e=l;l=g}for(h=l;h<=e;h++){if(j.isSelected(k.getAt(h))){d++}}if(!c){a=-1}else{a=(c=="up")?l:e}for(h=l;h<=e;h++){if(d==(e-l+1)){if(h!=a){j.doDeselect(h,true)}}else{b.push(k.getAt(h))}}j.doMultiSelect(b,true)},select:function(b,c,a){if(Ext.isDefined(b)){this.doSelect(b,c,a)}},deselect:function(b,a){this.doDeselect(b,a)},doSelect:function(c,e,b){var d=this,a;if(d.locked||!d.store){return}if(typeof c==="number"){c=[d.store.getAt(c)]}if(d.selectionMode=="SINGLE"&&c){a=c.length?c[0]:c;d.doSingleSelect(a,b)}else{d.doMultiSelect(c,e,b)}},doMultiSelect:function(a,l,k){var h=this,b=h.selected,j=false,d=0,g,e;if(h.locked){return}a=!Ext.isArray(a)?[a]:a;g=a.length;if(!l&&b.getCount()>0){if(h.doDeselect(h.getSelection(),k)===false){return}}function c(){b.add(e);j=true}for(;d<g;d++){e=a[d];if(l&&h.isSelected(e)){continue}h.lastSelected=e;h.onSelectChange(e,true,k,c)}if(!h.preventFocus){h.setLastFocused(e,k)}h.maybeFireSelectionChange(j&&!k)},doDeselect:function(a,k){var j=this,b=j.selected,d=0,h,e,l=0,g=0;if(j.locked||!j.store){return false}if(typeof a==="number"){a=[j.store.getAt(a)]}else{if(!Ext.isArray(a)){a=[a]}}function c(){++g;b.remove(e)}h=a.length;for(;d<h;d++){e=a[d];if(j.isSelected(e)){if(j.lastSelected==e){j.lastSelected=b.last()}++l;j.onSelectChange(e,false,k,c)}}j.maybeFireSelectionChange(g>0&&!k);return g===l},doSingleSelect:function(a,b){var d=this,g=false,c=d.selected;if(d.locked){return}if(d.isSelected(a)){return}function e(){d.bulkChange=true;if(c.getCount()>0&&d.doDeselect(d.lastSelected,b)===false){delete d.bulkChange;return false}delete d.bulkChange;c.add(a);d.lastSelected=a;g=true}d.onSelectChange(a,true,b,e);if(g){if(!b){d.setLastFocused(a)}d.maybeFireSelectionChange(!b)}},setLastFocused:function(c,b){var d=this,a=d.lastFocused;d.lastFocused=c;if(c!==a){d.onLastFocusChanged(a,c,b)}},isFocused:function(a){return a===this.getLastFocused()},maybeFireSelectionChange:function(a){var b=this;if(a&&!b.bulkChange){b.fireEvent("selectionchange",b,b.getSelection())}},getLastSelected:function(){return this.lastSelected},getLastFocused:function(){return this.lastFocused},getSelection:function(){return this.selected.getRange()},getSelectionMode:function(){return this.selectionMode},setSelectionMode:function(a){a=a?a.toUpperCase():"SINGLE";this.selectionMode=this.modes[a]?a:"SINGLE"},isLocked:function(){return this.locked},setLocked:function(a){this.locked=!!a},isSelected:function(a){a=Ext.isNumber(a)?this.store.getAt(a):a;return this.selected.indexOf(a)!==-1},hasSelection:function(){return this.selected.getCount()>0},refresh:function(){var e=this,j=e.store,c=[],a=e.getSelection(),d=a.length,h,g,b=0,k=e.getLastFocused();if(!j){return}for(;b<d;b++){h=a[b];if(!e.pruneRemoved||j.indexOf(h)!==-1){c.push(h)}}if(e.selected.getCount()!=c.length){g=true}e.clearSelections();if(j.indexOf(k)!==-1){e.setLastFocused(k,true)}if(c.length){e.doSelect(c,false,true)}e.maybeFireSelectionChange(g)},clearSelections:function(){this.selected.clear();this.lastSelected=null;this.setLastFocused(null)},onStoreAdd:Ext.emptyFn,onStoreClear:function(){if(this.selected.getCount>0){this.clearSelections();this.maybeFireSelectionChange(true)}},onStoreRemove:function(b,a,c){var e=this,d=e.selected;if(e.locked||!e.pruneRemoved){return}if(d.remove(a)){if(e.lastSelected==a){e.lastSelected=null}if(e.getLastFocused()==a){e.setLastFocused(null)}e.maybeFireSelectionChange(true)}},getCount:function(){return this.selected.getCount()},destroy:Ext.emptyFn,onStoreUpdate:Ext.emptyFn,onStoreLoad:Ext.emptyFn,onSelectChange:Ext.emptyFn,onLastFocusChanged:function(b,a){this.fireEvent("focuschange",this,b,a)},onEditorKey:Ext.emptyFn,bindComponent:Ext.emptyFn,beforeViewRender:Ext.emptyFn});Ext.define("Ext.selection.DataViewModel",{extend:"Ext.selection.Model",requires:["Ext.util.KeyNav"],deselectOnContainerClick:true,enableKeyNav:true,constructor:function(a){this.addEvents("beforedeselect","beforeselect","deselect","select");this.callParent(arguments)},bindComponent:function(a){var b=this,c={refresh:b.refresh,scope:b};b.view=a;b.bindStore(a.getStore());c[a.triggerEvent]=b.onItemClick;c[a.triggerCtEvent]=b.onContainerClick;a.on(c);if(b.enableKeyNav){b.initKeyNav(a)}},onItemClick:function(b,a,d,c,g){this.selectWithEvent(a,g)},onContainerClick:function(){if(this.deselectOnContainerClick){this.deselectAll()}},initKeyNav:function(a){var b=this;if(!a.rendered){a.on({render:Ext.Function.bind(b.initKeyNav,b,[a]),single:true});return}a.el.set({tabIndex:-1});b.keyNav=new Ext.util.KeyNav({target:a.el,ignoreInputFields:true,down:Ext.pass(b.onNavKey,[1],b),right:Ext.pass(b.onNavKey,[1],b),left:Ext.pass(b.onNavKey,[-1],b),up:Ext.pass(b.onNavKey,[-1],b),scope:b})},onNavKey:function(g){g=g||1;var e=this,b=e.view,d=e.getSelection()[0],c=e.view.store.getCount(),a;if(d){a=b.indexOf(b.getNode(d))+g}else{a=0}if(a<0){a=c-1}else{if(a>=c){a=0}}e.select(a)},onSelectChange:function(b,e,d,h){var g=this,a=g.view,c=e?"select":"deselect";if((d||g.fireEvent("before"+c,g,b))!==false&&h()!==false){if(a){if(e){a.onItemSelect(b)}else{a.onItemDeselect(b)}}if(!d){g.fireEvent(c,g,b)}}},destroy:function(){Ext.destroy(this.keyNav);this.callParent()}});Ext.define("Ext.view.AbstractView",{extend:"Ext.Component",requires:["Ext.LoadMask","Ext.data.StoreManager","Ext.CompositeElementLite","Ext.DomQuery","Ext.selection.DataViewModel"],mixins:{bindable:"Ext.util.Bindable"},inheritableStatics:{getRecord:function(a){return this.getBoundView(a).getRecord(a)},getBoundView:function(a){return Ext.getCmp(a.boundView)}},deferInitialRefresh:true,itemCls:Ext.baseCSSPrefix+"dataview-item",loadingText:"Loading...",loadMask:true,loadingUseMsg:true,selectedItemCls:Ext.baseCSSPrefix+"item-selected",emptyText:"",deferEmptyText:true,trackOver:false,blockRefresh:false,preserveScrollOnRefresh:false,last:false,triggerEvent:"itemclick",triggerCtEvent:"containerclick",addCmpEvents:function(){},initComponent:function(){var c=this,a=Ext.isDefined,d=c.itemTpl,b={};if(d){if(Ext.isArray(d)){d=d.join("")}else{if(Ext.isObject(d)){b=Ext.apply(b,d.initialConfig);d=d.html}}if(!c.itemSelector){c.itemSelector="."+c.itemCls}d=Ext.String.format('<tpl for="."><div class="{0}">{1}</div></tpl>',c.itemCls,d);c.tpl=new Ext.XTemplate(d,b)}c.callParent();if(Ext.isString(c.tpl)||Ext.isArray(c.tpl)){c.tpl=new Ext.XTemplate(c.tpl)}c.addEvents("beforerefresh","refresh","viewready","itemupdate","itemadd","itemremove");c.addCmpEvents();c.store=Ext.data.StoreManager.lookup(c.store||"ext-empty-store");c.bindStore(c.store,true);c.all=new Ext.CompositeElementLite();c.scrollState={top:0,left:0};c.on({scroll:c.onViewScroll,element:"el",scope:c})},onRender:function(){var c=this,b=c.loadMask,a={msg:c.loadingText,msgCls:c.loadingCls,useMsg:c.loadingUseMsg,store:c.getMaskStore()};c.callParent(arguments);if(b){if(Ext.isObject(b)){a=Ext.apply(a,b)}c.loadMask=new Ext.LoadMask(c,a);c.loadMask.on({scope:c,beforeshow:c.onMaskBeforeShow,hide:c.onMaskHide})}},finishRender:function(){var a=this;a.callParent(arguments);if(!a.up("[collapsed],[hidden]")){a.doFirstRefresh(a.store)}},onBoxReady:function(){var a=this;a.callParent(arguments);if(!a.firstRefreshDone){a.doFirstRefresh(a.store)}},getMaskStore:function(){return this.store},onMaskBeforeShow:function(){var b=this,a=b.loadingHeight;b.getSelectionModel().deselectAll();b.all.clear();if(a&&a>b.getHeight()){b.hasLoadingHeight=true;b.oldMinHeight=b.minHeight;b.minHeight=a;b.updateLayout()}},onMaskHide:function(){var a=this;if(!a.destroying&&a.hasLoadingHeight){a.minHeight=a.oldMinHeight;a.updateLayout();delete a.hasLoadingHeight}},beforeRender:function(){this.callParent(arguments);this.getSelectionModel().beforeViewRender(this)},afterRender:function(){this.callParent(arguments);this.getSelectionModel().bindComponent(this)},getSelectionModel:function(){var a=this,b="SINGLE";if(!a.selModel){a.selModel={}}if(a.simpleSelect){b="SIMPLE"}else{if(a.multiSelect){b="MULTI"}}Ext.applyIf(a.selModel,{allowDeselect:a.allowDeselect,mode:b});if(!a.selModel.events){a.selModel=new Ext.selection.DataViewModel(a.selModel)}if(!a.selModel.hasRelaySetup){a.relayEvents(a.selModel,["selectionchange","beforeselect","beforedeselect","select","deselect","focuschange"]);a.selModel.hasRelaySetup=true}if(a.disableSelection){a.selModel.locked=true}return a.selModel},refresh:function(){var c=this,h,b,e,d,g,a;if(!c.rendered||c.isDestroyed){return}if(!c.hasListeners.beforerefresh||c.fireEvent("beforerefresh",c)!==false){h=c.getTargetEl();a=c.store.getRange();g=h.dom;if(!c.preserveScrollOnRefresh){b=g.parentNode;e=g.style.display;g.style.display="none";d=g.nextSibling;b.removeChild(g)}if(c.refreshCounter){c.clearViewEl()}else{c.fixedNodes=h.dom.childNodes.length;c.refreshCounter=1}c.tpl.append(h,c.collectData(a,0));if(a.length<1){if(!c.deferEmptyText||c.hasSkippedEmptyText){Ext.core.DomHelper.insertHtml("beforeEnd",h.dom,c.emptyText)}c.all.clear()}else{c.all.fill(Ext.query(c.getItemSelector(),h.dom));c.updateIndexes(0)}c.selModel.refresh();c.hasSkippedEmptyText=true;if(!c.preserveScrollOnRefresh){b.insertBefore(g,d);g.style.display=e}this.refreshSize();c.fireEvent("refresh",c);if(!c.viewReady){c.viewReady=true;c.fireEvent("viewready",c)}}},refreshSize:function(){var a=this.getSizeModel();if(a.height.shrinkWrap||a.width.shrinkWrap){this.updateLayout()}},clearViewEl:function(){var b=this,a=b.getTargetEl();if(b.fixedNodes){while(a.dom.childNodes[b.fixedNodes]){a.dom.removeChild(a.dom.childNodes[b.fixedNodes])}}else{a.update("")}b.refreshCounter++},onViewScroll:Ext.emptyFn,saveScrollState:function(){if(this.rendered){var b=this.el.dom,a=this.scrollState;a.left=b.scrollLeft;a.top=b.scrollTop}},restoreScrollState:function(){if(this.rendered){var b=this.el.dom,a=this.scrollState;b.scrollLeft=a.left;b.scrollTop=a.top}},prepareData:function(e,d,c){var b,a;if(c){b=c.getAssociatedData();for(a in b){if(b.hasOwnProperty(a)){e[a]=b[a]}}}return e},collectData:function(c,g){var e=[],d=0,a=c.length,b;for(;d<a;d++){b=c[d];e[d]=this.prepareData(b.data,g+d,b)}return e},bufferRender:function(a,b){var c=this,d=c.renderBuffer||(c.renderBuffer=document.createElement("div"));c.tpl.overwrite(d,c.collectData(a,b));return Ext.query(c.getItemSelector(),d)},onUpdate:function(e,a){var d=this,b,c;if(d.viewReady){b=d.store.indexOf(a);if(b>-1){c=d.bufferRender([a],b)[0];if(d.getNode(a)){d.all.replaceElement(b,c,true);d.updateIndexes(b,b);d.selModel.refresh();if(d.hasListeners.itemupdate){d.fireEvent("itemupdate",a,b,c)}return c}}}},onAdd:function(e,b,c){var d=this,a;if(d.rendered){if(d.all.getCount()===0){d.refresh();return}a=d.bufferRender(b,c);d.doAdd(a,b,c);d.selModel.refresh();d.updateIndexes(c);d.refreshSize();if(d.hasListeners.itemadd){d.fireEvent("itemadd",b,c,a)}}},doAdd:function(b,a,c){var d=this.all,e=d.getCount();if(e===0){this.clearViewEl();this.getTargetEl().appendChild(b)}else{if(c<e){if(c===0){d.item(c).insertSibling(b,"before",true)}else{d.item(c-1).insertSibling(b,"after",true)}}else{d.last().insertSibling(b,"after",true)}}Ext.Array.insert(d.elements,c,b)},onRemove:function(d,a,b){var c=this;if(c.all.getCount()){if(c.store.getCount()===0){c.refresh()}else{c.doRemove(a,b);if(c.selModel.refreshOnRemove){c.selModel.refresh()}c.updateIndexes(b)}this.refreshSize();if(c.hasListeners.itemremove){c.fireEvent("itemremove",a,b)}}},doRemove:function(a,b){this.all.removeElement(b,true)},refreshNode:function(a){this.onUpdate(this.store,this.store.getAt(a))},updateIndexes:function(e,d){var c=this.all.elements,a=this.store.getRange(),b;e=e||0;d=d||((d===0)?0:(c.length-1));for(b=e;b<=d;b++){c[b].viewIndex=b;c[b].viewRecordId=a[b].internalId;if(!c[b].boundView){c[b].boundView=this.id}}},getStore:function(){return this.store},bindStore:function(a,b){var c=this;c.mixins.bindable.bindStore.apply(c,arguments);if(!b){c.getSelectionModel().bindStore(c.store)}if(c.componentLayoutCounter){c.doFirstRefresh(a)}},doFirstRefresh:function(a){var b=this;b.firstRefreshDone=true;if(a&&!a.loading){if(b.deferInitialRefresh){b.applyFirstRefresh()}else{b.refresh()}}},applyFirstRefresh:function(){var a=this;if(a.isDestroyed){return}if(a.up("[isCollapsingOrExpanding]")){Ext.Function.defer(a.applyFirstRefresh,100,a)}else{Ext.Function.defer(function(){if(!a.isDestroyed){a.refresh()}},1)}},onUnbindStore:function(a){this.setMaskBind(null)},onBindStore:function(a){this.setMaskBind(a)},setMaskBind:function(b){var a=this.loadMask;if(a&&a.bindStore){a.bindStore(b)}},getStoreListeners:function(){var a=this;return{refresh:a.onDataRefresh,add:a.onAdd,remove:a.onRemove,update:a.onUpdate,clear:a.refresh}},onDataRefresh:function(){var a=this,b=!a.firstRefreshDone&&(!a.rendered||a.up("[collapsed],[isCollapsingOrExpanding],[hidden]"));if(b){a.deferInitialRefresh=false}else{if(a.blockRefresh!==true){a.firstRefreshDone=true;a.refresh.apply(a,arguments)}}},findItemByChild:function(a){return Ext.fly(a).findParent(this.getItemSelector(),this.getTargetEl())},findTargetByEvent:function(a){return a.getTarget(this.getItemSelector(),this.getTargetEl())},getSelectedNodes:function(){var b=[],a=this.selModel.getSelection(),d=a.length,c=0;for(;c<d;c++){b.push(this.getNode(a[c]))}return b},getRecords:function(c){var b=[],d=0,a=c.length,e=this.store.data;for(;d<a;d++){b[b.length]=e.getByKey(c[d].viewRecordId)}return b},getRecord:function(a){return this.store.data.getByKey(Ext.getDom(a).viewRecordId)},isSelected:function(b){var a=this.getRecord(b);return this.selModel.isSelected(a)},select:function(b,c,a){this.selModel.select(b,c,a)},deselect:function(b,a){this.selModel.deselect(b,a)},getNode:function(a){if((!a&&a!==0)||!this.rendered){return null}if(Ext.isString(a)){return document.getElementById(a)}if(Ext.isNumber(a)){return this.all.elements[a]}if(a.isModel){return this.getNodeByRecord(a)}return a},getNodeByRecord:function(a){var c=this.all.elements,d=c.length,b=0;for(;b<d;b++){if(c[b].viewRecordId===a.internalId){return c[b]}}return null},getNodes:function(c,a){var b=this.all.elements;if(a===undefined){a=b.length}else{a++}return this.all.elements.slice(c||0,a)},indexOf:function(a){a=this.getNode(a);if(!a&&a!==0){return -1}if(Ext.isNumber(a.viewIndex)){return a.viewIndex}return this.all.indexOf(a)},onDestroy:function(){var a=this;a.all.clear();a.callParent();a.bindStore(null);a.selModel.destroy()},onItemSelect:function(a){var b=this.getNode(a);if(b){Ext.fly(b).addCls(this.selectedItemCls)}},onItemDeselect:function(a){var b=this.getNode(a);if(b){Ext.fly(b).removeCls(this.selectedItemCls)}},getItemSelector:function(){return this.itemSelector}},function(){Ext.deprecate("extjs","4.0",function(){Ext.view.AbstractView.override({getSelectionCount:function(){if(Ext.global.console){Ext.global.console.warn("DataView: getSelectionCount will be removed, please interact with the Ext.selection.DataViewModel")}return this.selModel.getSelection().length},getSelectedRecords:function(){if(Ext.global.console){Ext.global.console.warn("DataView: getSelectedRecords will be removed, please interact with the Ext.selection.DataViewModel")}return this.selModel.getSelection()},select:function(a,b,d){if(Ext.global.console){Ext.global.console.warn("DataView: select will be removed, please access select through a DataView's SelectionModel, ie: view.getSelectionModel().select()")}var c=this.getSelectionModel();return c.select.apply(c,arguments)},clearSelections:function(){if(Ext.global.console){Ext.global.console.warn("DataView: clearSelections will be removed, please access deselectAll through DataView's SelectionModel, ie: view.getSelectionModel().deselectAll()")}var a=this.getSelectionModel();return a.deselectAll()}})})});Ext.define("Ext.view.View",{extend:"Ext.view.AbstractView",alternateClassName:"Ext.DataView",alias:"widget.dataview",deferHighlight:(Ext.isIE6||Ext.isIE7)?100:0,inputTagRe:/^textarea$|^input$/i,inheritableStatics:{EventMap:{mousedown:"MouseDown",mouseup:"MouseUp",click:"Click",dblclick:"DblClick",contextmenu:"ContextMenu",mouseover:"MouseOver",mouseout:"MouseOut",mouseenter:"MouseEnter",mouseleave:"MouseLeave",keydown:"KeyDown",focus:"Focus"}},initComponent:function(){var a=this;a.callParent();if(a.deferHighlight){a.setHighlightedItem=Ext.Function.createBuffered(a.setHighlightedItem,a.deferHighlight,a)}},addCmpEvents:function(){this.addEvents("beforeitemmousedown","beforeitemmouseup","beforeitemmouseenter","beforeitemmouseleave","beforeitemclick","beforeitemdblclick","beforeitemcontextmenu","beforeitemkeydown","itemmousedown","itemmouseup","itemmouseenter","itemmouseleave","itemclick","itemdblclick","itemcontextmenu","itemkeydown","beforecontainermousedown","beforecontainermouseup","beforecontainermouseover","beforecontainermouseout","beforecontainerclick","beforecontainerdblclick","beforecontainercontextmenu","beforecontainerkeydown","containermouseup","containermouseover","containermouseout","containerclick","containerdblclick","containercontextmenu","containerkeydown","selectionchange","beforeselect","beforedeselect","select","deselect","focuschange","highlightitem","unhighlightitem")},getFocusEl:function(){return this.getTargetEl()},afterRender:function(){var a=this;a.callParent();a.mon(a.getTargetEl(),{scope:a,freezeEvent:true,click:a.handleEvent,mousedown:a.handleEvent,mouseup:a.handleEvent,dblclick:a.handleEvent,contextmenu:a.handleEvent,mouseover:a.handleEvent,mouseout:a.handleEvent,keydown:a.handleEvent})},handleEvent:function(c){var b=this,a=c.type=="keydown"&&c.getKey();if(b.processUIEvent(c)!==false){b.processSpecialEvent(c)}if(a===c.SPACE){if(!b.inputTagRe.test(c.getTarget().tagName)){c.stopEvent()}}},processItemEvent:Ext.emptyFn,processContainerEvent:Ext.emptyFn,processSpecialEvent:Ext.emptyFn,stillOverItem:function(b,a){var c;if(a&&typeof(a.offsetParent)==="object"){c=(b.type=="mouseout")?b.getRelatedTarget():b.getTarget();return Ext.fly(a).contains(c)}return false},processUIEvent:function(h){var i=this,k=h.getTarget(i.getItemSelector(),i.getTargetEl()),a=this.statics().EventMap,g,c,j=h.type,d=i.mouseOverItem,b;if(!k){if(j=="mouseover"&&i.stillOverItem(h,d)){k=d}if(j=="keydown"){c=i.getSelectionModel().getLastSelected();if(c){k=i.getNode(c)}}}if(k){g=i.indexOf(k);if(!c){c=i.getRecord(k)}if(!c||i.processItemEvent(c,k,g,h)===false){return false}b=i.isNewItemEvent(k,h);if(b===false){return false}if((i["onBeforeItem"+a[b]](c,k,g,h)===false)||(i.fireEvent("beforeitem"+b,i,c,k,g,h)===false)||(i["onItem"+a[b]](c,k,g,h)===false)){return false}i.fireEvent("item"+b,i,c,k,g,h)}else{if((i.processContainerEvent(h)===false)||(i["onBeforeContainer"+a[j]](h)===false)||(i.fireEvent("beforecontainer"+j,i,h)===false)||(i["onContainer"+a[j]](h)===false)){return false}i.fireEvent("container"+j,i,h)}return true},isNewItemEvent:function(d,g){var c=this,a=c.mouseOverItem,b=g.type;switch(b){case"mouseover":if(d===a){return false}c.mouseOverItem=d;return"mouseenter";case"mouseout":if(c.stillOverItem(g,a)){return false}c.mouseOverItem=null;return"mouseleave"}return b},onItemMouseEnter:function(a,c,b,d){if(this.trackOver){this.highlightItem(c)}},onItemMouseLeave:function(a,c,b,d){if(this.trackOver){this.clearHighlight()}},onItemMouseDown:Ext.emptyFn,onItemMouseUp:Ext.emptyFn,onItemFocus:Ext.emptyFn,onItemClick:Ext.emptyFn,onItemDblClick:Ext.emptyFn,onItemContextMenu:Ext.emptyFn,onItemKeyDown:Ext.emptyFn,onBeforeItemMouseDown:Ext.emptyFn,onBeforeItemMouseUp:Ext.emptyFn,onBeforeItemFocus:Ext.emptyFn,onBeforeItemMouseEnter:Ext.emptyFn,onBeforeItemMouseLeave:Ext.emptyFn,onBeforeItemClick:Ext.emptyFn,onBeforeItemDblClick:Ext.emptyFn,onBeforeItemContextMenu:Ext.emptyFn,onBeforeItemKeyDown:Ext.emptyFn,onContainerMouseDown:Ext.emptyFn,onContainerMouseUp:Ext.emptyFn,onContainerMouseOver:Ext.emptyFn,onContainerMouseOut:Ext.emptyFn,onContainerClick:Ext.emptyFn,onContainerDblClick:Ext.emptyFn,onContainerContextMenu:Ext.emptyFn,onContainerKeyDown:Ext.emptyFn,onBeforeContainerMouseDown:Ext.emptyFn,onBeforeContainerMouseUp:Ext.emptyFn,onBeforeContainerMouseOver:Ext.emptyFn,onBeforeContainerMouseOut:Ext.emptyFn,onBeforeContainerClick:Ext.emptyFn,onBeforeContainerDblClick:Ext.emptyFn,onBeforeContainerContextMenu:Ext.emptyFn,onBeforeContainerKeyDown:Ext.emptyFn,setHighlightedItem:function(c){var b=this,a=b.highlightedItem;if(a!=c){if(a){Ext.fly(a).removeCls(b.overItemCls);b.fireEvent("unhighlightitem",b,a)}b.highlightedItem=c;if(c){Ext.fly(c).addCls(b.overItemCls);b.fireEvent("highlightitem",b,c)}}},highlightItem:function(a){this.setHighlightedItem(a)},clearHighlight:function(){this.setHighlightedItem(undefined)},onUpdate:function(b,a){var g=this,e,c,d;if(g.viewReady){e=g.getNode(a);c=g.callParent(arguments);d=g.highlightedItem;if(d&&d===e){delete g.highlightedItem;if(c){g.highlightItem(c)}}}},refresh:function(){this.clearHighlight();this.callParent(arguments)}});Ext.define("Ext.toolbar.TextItem",{extend:"Ext.toolbar.Item",requires:["Ext.XTemplate"],alias:"widget.tbtext",alternateClassName:"Ext.Toolbar.TextItem",text:"",renderTpl:"{text}",baseCls:Ext.baseCSSPrefix+"toolbar-text",beforeRender:function(){var a=this;a.callParent();Ext.apply(a.renderData,{text:a.text})},setText:function(b){var a=this;if(a.rendered){a.el.update(b);a.updateLayout()}else{this.text=b}}});Ext.define("Ext.form.field.Spinner",{extend:"Ext.form.field.Trigger",alias:"widget.spinnerfield",alternateClassName:"Ext.form.Spinner",requires:["Ext.util.KeyNav"],trigger1Cls:Ext.baseCSSPrefix+"form-spinner-up",trigger2Cls:Ext.baseCSSPrefix+"form-spinner-down",spinUpEnabled:true,spinDownEnabled:true,keyNavEnabled:true,mouseWheelEnabled:true,repeatTriggerClick:true,onSpinUp:Ext.emptyFn,onSpinDown:Ext.emptyFn,triggerTpl:'<td style="{triggerStyle}"><div class="'+Ext.baseCSSPrefix+"trigger-index-0 "+Ext.baseCSSPrefix+"form-trigger "+Ext.baseCSSPrefix+'form-spinner-up" role="button"></div><div class="'+Ext.baseCSSPrefix+"trigger-index-1 "+Ext.baseCSSPrefix+"form-trigger "+Ext.baseCSSPrefix+'form-spinner-down" role="button"></div></td></tr>',initComponent:function(){this.callParent();this.addEvents("spin","spinup","spindown")},onRender:function(){var b=this,a;b.callParent(arguments);a=b.triggerEl;b.spinUpEl=a.item(0);b.spinDownEl=a.item(1);b.triggerCell=b.spinUpEl.parent();b.setSpinUpEnabled(b.spinUpEnabled);b.setSpinDownEnabled(b.spinDownEnabled);if(b.keyNavEnabled){b.spinnerKeyNav=new Ext.util.KeyNav(b.inputEl,{scope:b,up:b.spinUp,down:b.spinDown})}if(b.mouseWheelEnabled){b.mon(b.bodyEl,"mousewheel",b.onMouseWheel,b)}},getSubTplMarkup:function(){var a=this,b=Ext.form.field.Base.prototype.getSubTplMarkup.apply(a,arguments);return'<table id="'+a.id+'-triggerWrap" class="'+Ext.baseCSSPrefix+'form-trigger-wrap" cellpadding="0" cellspacing="0"><tbody><tr><td id="'+a.id+'-inputCell" class="'+Ext.baseCSSPrefix+'form-trigger-input-cell">'+b+"</td>"+a.getTriggerMarkup()+"</tbody></table>"},getTriggerMarkup:function(){var a=this,b=(a.readOnly||a.hideTrigger);return a.getTpl("triggerTpl").apply({triggerStyle:"width:"+a.triggerWidth+(b?"px;display:none":"px")})},getTriggerWidth:function(){var b=this,a=0;if(b.triggerWrap&&!b.hideTrigger&&!b.readOnly){a=b.triggerWidth}return a},onTrigger1Click:function(){this.spinUp()},onTrigger2Click:function(){this.spinDown()},onTriggerWrapMouseup:function(){this.inputEl.focus()},spinUp:function(){var a=this;if(a.spinUpEnabled&&!a.disabled){a.fireEvent("spin",a,"up");a.fireEvent("spinup",a);a.onSpinUp()}},spinDown:function(){var a=this;if(a.spinDownEnabled&&!a.disabled){a.fireEvent("spin",a,"down");a.fireEvent("spindown",a);a.onSpinDown()}},setSpinUpEnabled:function(a){var b=this,c=b.spinUpEnabled;b.spinUpEnabled=a;if(c!==a&&b.rendered){b.spinUpEl[a?"removeCls":"addCls"](b.trigger1Cls+"-disabled")}},setSpinDownEnabled:function(a){var b=this,c=b.spinDownEnabled;b.spinDownEnabled=a;if(c!==a&&b.rendered){b.spinDownEl[a?"removeCls":"addCls"](b.trigger2Cls+"-disabled")}},onMouseWheel:function(b){var a=this,c;if(a.hasFocus){c=b.getWheelDelta();if(c>0){a.spinUp()}else{if(c<0){a.spinDown()}}b.stopEvent()}},onDestroy:function(){Ext.destroyMembers(this,"spinnerKeyNav","spinUpEl","spinDownEl");this.callParent()}});Ext.define("Ext.form.field.Number",{extend:"Ext.form.field.Spinner",alias:"widget.numberfield",alternateClassName:["Ext.form.NumberField","Ext.form.Number"],allowDecimals:true,decimalSeparator:".",submitLocaleSeparator:true,decimalPrecision:2,minValue:Number.NEGATIVE_INFINITY,maxValue:Number.MAX_VALUE,step:1,minText:"The minimum value for this field is {0}",maxText:"The maximum value for this field is {0}",nanText:"{0} is not a valid number",negativeText:"The value cannot be negative",baseChars:"0123456789",autoStripChars:false,initComponent:function(){var a=this,b;a.callParent();a.setMinValue(a.minValue);a.setMaxValue(a.maxValue);if(a.disableKeyFilter!==true){b=a.baseChars+"";if(a.allowDecimals){b+=a.decimalSeparator}if(a.minValue<0){b+="-"}b=Ext.String.escapeRegex(b);a.maskRe=new RegExp("["+b+"]");if(a.autoStripChars){a.stripCharsRe=new RegExp("[^"+b+"]","gi")}}},getErrors:function(c){var b=this,e=b.callParent(arguments),d=Ext.String.format,a;c=Ext.isDefined(c)?c:this.processRawValue(this.getRawValue());if(c.length<1){return e}c=String(c).replace(b.decimalSeparator,".");if(isNaN(c)){e.push(d(b.nanText,c))}a=b.parseValue(c);if(b.minValue===0&&a<0){e.push(this.negativeText)}else{if(a<b.minValue){e.push(d(b.minText,b.minValue))}}if(a>b.maxValue){e.push(d(b.maxText,b.maxValue))}return e},rawToValue:function(b){var a=this.fixPrecision(this.parseValue(b));if(a===null){a=b||null}return a},valueToRaw:function(c){var b=this,a=b.decimalSeparator;c=b.parseValue(c);c=b.fixPrecision(c);c=Ext.isNumber(c)?c:parseFloat(String(c).replace(a,"."));c=isNaN(c)?"":String(c).replace(".",a);return c},getSubmitValue:function(){var a=this,b=a.callParent();if(!a.submitLocaleSeparator){b=b.replace(a.decimalSeparator,".")}return b},onChange:function(){this.toggleSpinners();this.callParent(arguments)},toggleSpinners:function(){var b=this,c=b.getValue(),a=c===null;b.setSpinUpEnabled(a||c<b.maxValue);b.setSpinDownEnabled(a||c>b.minValue)},setMinValue:function(a){this.minValue=Ext.Number.from(a,Number.NEGATIVE_INFINITY);this.toggleSpinners()},setMaxValue:function(a){this.maxValue=Ext.Number.from(a,Number.MAX_VALUE);this.toggleSpinners()},parseValue:function(a){a=parseFloat(String(a).replace(this.decimalSeparator,"."));return isNaN(a)?null:a},fixPrecision:function(d){var c=this,b=isNaN(d),a=c.decimalPrecision;if(b||!d){return b?"":d}else{if(!c.allowDecimals||a<=0){a=0}}return parseFloat(Ext.Number.toFixed(parseFloat(d),a))},beforeBlur:function(){var b=this,a=b.parseValue(b.getRawValue());if(!Ext.isEmpty(a)){b.setValue(a)}},onSpinUp:function(){var a=this;if(!a.readOnly){a.setValue(Ext.Number.constrain(a.getValue()+a.step,a.minValue,a.maxValue))}},onSpinDown:function(){var a=this;if(!a.readOnly){a.setValue(Ext.Number.constrain(a.getValue()-a.step,a.minValue,a.maxValue))}}});Ext.define("Ext.toolbar.Paging",{extend:"Ext.toolbar.Toolbar",alias:"widget.pagingtoolbar",alternateClassName:"Ext.PagingToolbar",requires:["Ext.toolbar.TextItem","Ext.form.field.Number"],mixins:{bindable:"Ext.util.Bindable"},displayInfo:false,prependButtons:false,displayMsg:"Displaying {0} - {1} of {2}",emptyMsg:"No data to display",beforePageText:"Page",afterPageText:"of {0}",firstText:"First Page",prevText:"Previous Page",nextText:"Next Page",lastText:"Last Page",refreshText:"Refresh",inputItemWidth:30,getPagingItems:function(){var a=this;return[{itemId:"first",tooltip:a.firstText,overflowText:a.firstText,iconCls:Ext.baseCSSPrefix+"tbar-page-first",disabled:true,handler:a.moveFirst,scope:a},{itemId:"prev",tooltip:a.prevText,overflowText:a.prevText,iconCls:Ext.baseCSSPrefix+"tbar-page-prev",disabled:true,handler:a.movePrevious,scope:a},"-",a.beforePageText,{xtype:"numberfield",itemId:"inputItem",name:"inputItem",cls:Ext.baseCSSPrefix+"tbar-page-number",allowDecimals:false,minValue:1,hideTrigger:true,enableKeyEvents:true,keyNavEnabled:false,selectOnFocus:true,submitValue:false,isFormField:false,width:a.inputItemWidth,margins:"-1 2 3 2",listeners:{scope:a,keydown:a.onPagingKeyDown,blur:a.onPagingBlur}},{xtype:"tbtext",itemId:"afterTextItem",text:Ext.String.format(a.afterPageText,1)},"-",{itemId:"next",tooltip:a.nextText,overflowText:a.nextText,iconCls:Ext.baseCSSPrefix+"tbar-page-next",disabled:true,handler:a.moveNext,scope:a},{itemId:"last",tooltip:a.lastText,overflowText:a.lastText,iconCls:Ext.baseCSSPrefix+"tbar-page-last",disabled:true,handler:a.moveLast,scope:a},"-",{itemId:"refresh",tooltip:a.refreshText,overflowText:a.refreshText,iconCls:Ext.baseCSSPrefix+"tbar-loading",handler:a.doRefresh,scope:a}]},initComponent:function(){var b=this,c=b.getPagingItems(),a=b.items||b.buttons||[];if(b.prependButtons){b.items=a.concat(c)}else{b.items=c.concat(a)}delete b.buttons;if(b.displayInfo){b.items.push("->");b.items.push({xtype:"tbtext",itemId:"displayItem"})}b.callParent();b.addEvents("change","beforechange");b.on("beforerender",b.onLoad,b,{single:true});b.bindStore(b.store||"ext-empty-store",true)},updateInfo:function(){var e=this,c=e.child("#displayItem"),a=e.store,b=e.getPageData(),d,g;if(c){d=a.getCount();if(d===0){g=e.emptyMsg}else{g=Ext.String.format(e.displayMsg,b.fromRecord,b.toRecord,b.total)}c.setText(g)}},onLoad:function(){var g=this,d,b,c,a,e,h;e=g.store.getCount();h=e===0;if(!h){d=g.getPageData();b=d.currentPage;c=d.pageCount;a=Ext.String.format(g.afterPageText,isNaN(c)?1:c)}else{b=0;c=0;a=Ext.String.format(g.afterPageText,0)}Ext.suspendLayouts();g.child("#afterTextItem").setText(a);g.child("#inputItem").setDisabled(h).setValue(b);g.child("#first").setDisabled(b===1||h);g.child("#prev").setDisabled(b===1||h);g.child("#next").setDisabled(b===c||h);g.child("#last").setDisabled(b===c||h);g.child("#refresh").enable();g.updateInfo();Ext.resumeLayouts(true);if(g.rendered){g.fireEvent("change",g,d)}},getPageData:function(){var b=this.store,a=b.getTotalCount();return{total:a,currentPage:b.currentPage,pageCount:Math.ceil(a/b.pageSize),fromRecord:((b.currentPage-1)*b.pageSize)+1,toRecord:Math.min(b.currentPage*b.pageSize,a)}},onLoadError:function(){if(!this.rendered){return}this.child("#refresh").enable()},readPageFromInput:function(b){var a=this.child("#inputItem").getValue(),c=parseInt(a,10);if(!a||isNaN(c)){this.child("#inputItem").setValue(b.currentPage);return false}return c},onPagingFocus:function(){this.child("#inputItem").select()},onPagingBlur:function(b){var a=this.getPageData().currentPage;this.child("#inputItem").setValue(a)},onPagingKeyDown:function(i,h){var d=this,b=h.getKey(),c=d.getPageData(),a=h.shiftKey?10:1,g;if(b==h.RETURN){h.stopEvent();g=d.readPageFromInput(c);if(g!==false){g=Math.min(Math.max(1,g),c.pageCount);if(d.fireEvent("beforechange",d,g)!==false){d.store.loadPage(g)}}}else{if(b==h.HOME||b==h.END){h.stopEvent();g=b==h.HOME?1:c.pageCount;i.setValue(g)}else{if(b==h.UP||b==h.PAGE_UP||b==h.DOWN||b==h.PAGE_DOWN){h.stopEvent();g=d.readPageFromInput(c);if(g){if(b==h.DOWN||b==h.PAGE_DOWN){a*=-1}g+=a;if(g>=1&&g<=c.pageCount){i.setValue(g)}}}}}},beforeLoad:function(){if(this.rendered&&this.refresh){this.refresh.disable()}},moveFirst:function(){if(this.fireEvent("beforechange",this,1)!==false){this.store.loadPage(1)}},movePrevious:function(){var b=this,a=b.store.currentPage-1;if(a>0){if(b.fireEvent("beforechange",b,a)!==false){b.store.previousPage()}}},moveNext:function(){var c=this,b=c.getPageData().pageCount,a=c.store.currentPage+1;if(a<=b){if(c.fireEvent("beforechange",c,a)!==false){c.store.nextPage()}}},moveLast:function(){var b=this,a=b.getPageData().pageCount;if(b.fireEvent("beforechange",b,a)!==false){b.store.loadPage(a)}},doRefresh:function(){var a=this,b=a.store.currentPage;if(a.fireEvent("beforechange",a,b)!==false){a.store.loadPage(b)}},getStoreListeners:function(){return{beforeload:this.beforeLoad,load:this.onLoad,exception:this.onLoadError}},unbind:function(a){this.bindStore(null)},bind:function(a){this.bindStore(a)},onDestroy:function(){this.unbind();this.callParent()}});Ext.define("Ext.view.BoundList",{extend:"Ext.view.View",alias:"widget.boundlist",alternateClassName:"Ext.BoundList",requires:["Ext.layout.component.BoundList","Ext.toolbar.Paging"],pageSize:0,baseCls:Ext.baseCSSPrefix+"boundlist",itemCls:Ext.baseCSSPrefix+"boundlist-item",listItemCls:"",shadow:false,trackOver:true,refreshed:0,deferInitialRefresh:false,componentLayout:"boundlist",childEls:["listEl"],renderTpl:['<div id="{id}-listEl" class="{baseCls}-list-ct" style="overflow:auto"></div>',"{%","var me=values.$comp, pagingToolbar=me.pagingToolbar;","if (pagingToolbar) {","pagingToolbar.ownerLayout = me.componentLayout;","Ext.DomHelper.generateMarkup(pagingToolbar.getRenderTree(), out);","}","%}",{disableFormats:true}],initComponent:function(){var b=this,a=b.baseCls,c=b.itemCls;b.selectedItemCls=a+"-selected";b.overItemCls=a+"-item-over";b.itemSelector="."+c;if(b.floating){b.addCls(a+"-floating")}if(!b.tpl){b.tpl=new Ext.XTemplate('<ul><tpl for=".">','<li role="option" class="'+c+'">'+b.getInnerTpl(b.displayField)+"</li>","</tpl></ul>")}else{if(Ext.isString(b.tpl)){b.tpl=new Ext.XTemplate(b.tpl)}}if(b.pageSize){b.pagingToolbar=b.createPagingToolbar()}b.callParent()},beforeRender:function(){var a=this;a.callParent(arguments);if(a.up("menu")){a.addCls(Ext.baseCSSPrefix+"menu")}},getBubbleTarget:function(){return this.pickerField},getRefItems:function(){return this.pagingToolbar?[this.pagingToolbar]:[]},createPagingToolbar:function(){return Ext.widget("pagingtoolbar",{id:this.id+"-paging-toolbar",pageSize:this.pageSize,store:this.store,border:false,ownerCt:this,ownerLayout:this.getComponentLayout()})},finishRenderChildren:function(){var a=this.pagingToolbar;this.callParent(arguments);if(a){a.finishRender()}},refresh:function(){var b=this,a=b.pagingToolbar;b.callParent();if(b.rendered&&a&&a.rendered&&!b.preserveScrollOnRefresh){b.el.appendChild(a.el)}},bindStore:function(a,b){var c=this.pagingToolbar;this.callParent(arguments);if(c){c.bindStore(this.store,b)}},getTargetEl:function(){return this.listEl||this.el},getInnerTpl:function(a){return"{"+a+"}"},onDestroy:function(){Ext.destroyMembers(this,"pagingToolbar","listEl");this.callParent()}});Ext.define("Ext.view.BoundListKeyNav",{extend:"Ext.util.KeyNav",requires:"Ext.view.BoundList",constructor:function(b,a){var c=this;c.boundList=a.boundList;c.callParent([b,Ext.apply({},a,c.defaultHandlers)])},defaultHandlers:{up:function(){var e=this,b=e.boundList,d=b.all,g=b.highlightedItem,c=g?b.indexOf(g):-1,a=c>0?c-1:d.getCount()-1;e.highlightAt(a)},down:function(){var e=this,b=e.boundList,d=b.all,g=b.highlightedItem,c=g?b.indexOf(g):-1,a=c<d.getCount()-1?c+1:0;e.highlightAt(a)},pageup:function(){},pagedown:function(){},home:function(){this.highlightAt(0)},end:function(){var a=this;a.highlightAt(a.boundList.all.getCount()-1)},enter:function(a){this.selectHighlighted(a)}},highlightAt:function(b){var a=this.boundList,c=a.all.item(b);if(c){c=c.dom;a.highlightItem(c);a.getTargetEl().scrollChildIntoView(c,false)}},selectHighlighted:function(g){var d=this,b=d.boundList,c=b.highlightedItem,a=b.getSelectionModel();if(c){a.selectWithEvent(b.getRecord(c),g)}}});Ext.define("Ext.form.field.ComboBox",{extend:"Ext.form.field.Picker",requires:["Ext.util.DelayedTask","Ext.EventObject","Ext.view.BoundList","Ext.view.BoundListKeyNav","Ext.data.StoreManager","Ext.layout.component.field.ComboBox"],alternateClassName:"Ext.form.ComboBox",alias:["widget.combobox","widget.combo"],mixins:{bindable:"Ext.util.Bindable"},componentLayout:"combobox",triggerCls:Ext.baseCSSPrefix+"form-arrow-trigger",hiddenName:"",hiddenDataCls:Ext.baseCSSPrefix+"hide-display "+Ext.baseCSSPrefix+"form-data-hidden",fieldSubTpl:['<div class="{hiddenDataCls}" role="presentation"></div>','<input id="{id}" type="{type}" {inputAttrTpl} class="{fieldCls} {typeCls}" autocomplete="off"','<tpl if="value"> value="{[Ext.util.Format.htmlEncode(values.value)]}"</tpl>','<tpl if="name"> name="{name}"</tpl>','<tpl if="placeholder"> placeholder="{placeholder}"</tpl>','<tpl if="size"> size="{size}"</tpl>','<tpl if="maxLength !== undefined"> maxlength="{maxLength}"</tpl>','<tpl if="readOnly"> readonly="readonly"</tpl>','<tpl if="disabled"> disabled="disabled"</tpl>','<tpl if="tabIdx"> tabIndex="{tabIdx}"</tpl>','<tpl if="fieldStyle"> style="{fieldStyle}"</tpl>',"/>",{compiled:true,disableFormats:true}],getSubTplData:function(){var a=this;Ext.applyIf(a.subTplData,{hiddenDataCls:a.hiddenDataCls});return a.callParent(arguments)},afterRender:function(){var a=this;a.callParent(arguments);a.setHiddenValue(a.value)},multiSelect:false,delimiter:", ",displayField:"text",triggerAction:"all",allQuery:"",queryParam:"query",queryMode:"remote",queryCaching:true,pageSize:0,autoSelect:true,typeAhead:false,typeAheadDelay:250,selectOnTab:true,forceSelection:false,growToLongestValue:true,defaultListConfig:{loadingHeight:70,minWidth:70,maxHeight:300,shadow:"sides"},ignoreSelection:0,removingRecords:null,resizeComboToGrow:function(){var a=this;return a.grow&&a.growToLongestValue},initComponent:function(){var e=this,c=Ext.isDefined,b=e.store,d=e.transform,a,g;Ext.applyIf(e.renderSelectors,{hiddenDataEl:"."+e.hiddenDataCls.split(" ").join(".")});this.addEvents("beforequery","select","beforeselect","beforedeselect");if(d){a=Ext.getDom(d);if(a){if(!e.store){b=Ext.Array.map(Ext.Array.from(a.options),function(h){return[h.value,h.text]})}if(!e.name){e.name=a.name}if(!("value" in e)){e.value=a.value}}}e.bindStore(b||"ext-empty-store",true);b=e.store;if(b.autoCreated){e.queryMode="local";e.valueField=e.displayField="field1";if(!b.expanded){e.displayField="field2"}}if(!c(e.valueField)){e.valueField=e.displayField}g=e.queryMode==="local";if(!c(e.queryDelay)){e.queryDelay=g?10:500}if(!c(e.minChars)){e.minChars=g?0:4}if(!e.displayTpl){e.displayTpl=new Ext.XTemplate('<tpl for=".">{[typeof values === "string" ? values : values["'+e.displayField+'"]]}<tpl if="xindex < xcount">'+e.delimiter+"</tpl></tpl>")}else{if(Ext.isString(e.displayTpl)){e.displayTpl=new Ext.XTemplate(e.displayTpl)}}e.callParent();e.doQueryTask=new Ext.util.DelayedTask(e.doRawQuery,e);if(e.store.getCount()>0){e.setValue(e.value)}if(a){e.render(a.parentNode,a);Ext.removeNode(a);delete e.renderTo}},getStore:function(){return this.store},beforeBlur:function(){this.doQueryTask.cancel();this.assertValue()},assertValue:function(){var a=this,b=a.getRawValue(),c;if(a.forceSelection){if(a.multiSelect){if(b!==a.getDisplayValue()){a.setValue(a.lastSelection)}}else{c=a.findRecordByDisplay(b);if(c){a.select(c)}else{a.setValue(a.lastSelection)}}}a.collapse()},onTypeAhead:function(){var e=this,d=e.displayField,b=e.store.findRecord(d,e.getRawValue()),c=e.getPicker(),g,a,h;if(b){g=b.get(d);a=g.length;h=e.getRawValue().length;c.highlightItem(c.getNode(b));if(h!==0&&h!==a){e.setRawValue(g);e.selectText(h,g.length)}}},resetToDefault:Ext.emptyFn,beforeReset:function(){this.callParent();this.clearFilter()},onUnbindStore:function(a){var b=this.picker;if(!a&&b){b.bindStore(null)}this.clearFilter()},onBindStore:function(a,c){var b=this.picker;if(!c){this.resetToDefault()}if(b){b.bindStore(a)}},getStoreListeners:function(){var a=this;return{beforeload:a.onBeforeLoad,clear:a.onClear,datachanged:a.onDataChanged,load:a.onLoad,exception:a.onException,remove:a.onRemove}},onBeforeLoad:function(){++this.ignoreSelection},onDataChanged:function(){var a=this;if(a.resizeComboToGrow()){a.updateLayout()}},onClear:function(){var a=this;if(a.resizeComboToGrow()){a.removingRecords=true;a.onDataChanged()}},onRemove:function(){var a=this;if(a.resizeComboToGrow()){a.removingRecords=true}},onException:function(){if(this.ignoreSelection>0){--this.ignoreSelection}this.collapse()},onLoad:function(){var a=this,b=a.value;if(a.ignoreSelection>0){--a.ignoreSelection}if(a.rawQuery){a.rawQuery=false;a.syncSelection();if(a.picker&&!a.picker.getSelectionModel().hasSelection()){a.doAutoSelect()}}else{if(a.value||a.value===0){a.setValue(a.value)}else{if(a.store.getCount()){a.doAutoSelect()}else{a.setValue(a.value)}}}},doRawQuery:function(){this.doQuery(this.getRawValue(),false,true)},doQuery:function(i,d,g){i=i||"";var e=this,b={query:i,forceAll:d,combo:e,cancel:false},a=e.store,h=e.queryMode==="local",c;if(e.fireEvent("beforequery",b)===false||b.cancel){return false}i=b.query;d=b.forceAll;if(d||(i.length>=e.minChars)){e.expand();if(!e.queryCaching||e.lastQuery!==i){e.lastQuery=i;if(h){a.suspendEvents();c=e.clearFilter();if(i||!d){e.activeFilter=new Ext.util.Filter({root:"data",property:e.displayField,value:i});a.filter(e.activeFilter);c=true}else{delete e.activeFilter}a.resumeEvents();if(e.rendered&&c){e.getPicker().refresh()}}else{e.rawQuery=g;if(e.pageSize){e.loadPage(1)}else{a.load({params:e.getParams(i)})}}}if(e.getRawValue()!==e.getDisplayValue()){e.ignoreSelection++;e.picker.getSelectionModel().deselectAll();e.ignoreSelection--}if(h){e.doAutoSelect()}if(e.typeAhead){e.doTypeAhead()}}return true},clearFilter:function(){var a=this.store,c=this.activeFilter,d=a.filters,b;if(c){if(d.getCount()>1){d.remove(c);b=d.getRange()}a.clearFilter(true);if(b){a.filter(b)}}return !!c},loadPage:function(a){this.store.loadPage(a,{params:this.getParams(this.lastQuery)})},onPageChange:function(b,a){this.loadPage(a);return false},getParams:function(c){var b={},a=this.queryParam;if(a){b[a]=c}return b},doAutoSelect:function(){var b=this,a=b.picker,c,d;if(a&&b.autoSelect&&b.store.getCount()>0){c=a.getSelectionModel().lastSelected;d=a.getNode(c||0);if(d){a.highlightItem(d);a.listEl.scrollChildIntoView(d,false)}}},doTypeAhead:function(){if(!this.typeAheadTask){this.typeAheadTask=new Ext.util.DelayedTask(this.onTypeAhead,this)}if(this.lastKey!=Ext.EventObject.BACKSPACE&&this.lastKey!=Ext.EventObject.DELETE){this.typeAheadTask.delay(this.typeAheadDelay)}},onTriggerClick:function(){var a=this;if(!a.readOnly&&!a.disabled){if(a.isExpanded){a.collapse()}else{a.onFocus({});if(a.triggerAction==="all"){a.doQuery(a.allQuery,true)}else{a.doQuery(a.getRawValue(),false,true)}}a.inputEl.focus()}},onKeyUp:function(d,b){var c=this,a=d.getKey();if(!c.readOnly&&!c.disabled&&c.editable){c.lastKey=a;if(!d.isSpecialKey()||a==d.BACKSPACE||a==d.DELETE){c.doQueryTask.delay(c.queryDelay)}}if(c.enableKeyEvents){c.callParent(arguments)}},initEvents:function(){var a=this;a.callParent();if(!a.enableKeyEvents){a.mon(a.inputEl,"keyup",a.onKeyUp,a)}},onDestroy:function(){this.bindStore(null);this.callParent()},onAdded:function(){var a=this;a.callParent(arguments);if(a.picker){a.picker.ownerCt=a.up("[floating]");a.picker.registerWithOwnerCt()}},createPicker:function(){var c=this,b,a=Ext.apply({xtype:"boundlist",pickerField:c,selModel:{mode:c.multiSelect?"SIMPLE":"SINGLE"},floating:true,hidden:true,store:c.store,displayField:c.displayField,focusOnToFront:false,pageSize:c.pageSize,tpl:c.tpl},c.listConfig,c.defaultListConfig);b=c.picker=Ext.widget(a);if(c.pageSize){b.pagingToolbar.on("beforechange",c.onPageChange,c)}c.mon(b,{itemclick:c.onItemClick,refresh:c.onListRefresh,scope:c});c.mon(b.getSelectionModel(),{beforeselect:c.onBeforeSelect,beforedeselect:c.onBeforeDeselect,selectionchange:c.onListSelectionChange,scope:c});return b},alignPicker:function(){var b=this,a=b.getPicker(),e=b.getPosition()[1]-Ext.getBody().getScroll().top,d=Ext.Element.getViewHeight()-e-b.getHeight(),c=Math.max(e,d);if(a.height){delete a.height;a.updateLayout()}if(a.getHeight()>c-5){a.setHeight(c-5)}b.callParent()},onListRefresh:function(){this.alignPicker();this.syncSelection()},onItemClick:function(c,a){var e=this,d=e.picker.getSelectionModel().getSelection(),b=e.valueField;if(!e.multiSelect&&d.length){if(a.get(b)===d[0].get(b)){e.displayTplData=[a.data];e.setRawValue(e.getDisplayValue());e.collapse()}}},onBeforeSelect:function(b,a){return this.fireEvent("beforeselect",this,a,a.index)},onBeforeDeselect:function(b,a){return this.fireEvent("beforedeselect",this,a,a.index)},onListSelectionChange:function(b,d){var a=this,e=a.multiSelect,c=d.length>0;if(!a.ignoreSelection&&a.isExpanded){if(!e){Ext.defer(a.collapse,1,a)}if(e||c){a.setValue(d,false)}if(c){a.fireEvent("select",a,d)}a.inputEl.focus()}},onExpand:function(){var d=this,a=d.listKeyNav,c=d.selectOnTab,b=d.getPicker();if(a){a.enable()}else{a=d.listKeyNav=new Ext.view.BoundListKeyNav(this.inputEl,{boundList:b,forceKeyDown:true,tab:function(g){if(c){this.selectHighlighted(g);d.triggerBlur()}return true}})}if(c){d.ignoreMonitorTab=true}Ext.defer(a.enable,1,a);d.inputEl.focus()},onCollapse:function(){var b=this,a=b.listKeyNav;if(a){a.disable();b.ignoreMonitorTab=false}},select:function(a){this.setValue(a,true)},findRecord:function(d,c){var b=this.store,a=b.findExact(d,c);return a!==-1?b.getAt(a):false},findRecordByValue:function(a){return this.findRecord(this.valueField,a)},findRecordByDisplay:function(a){return this.findRecord(this.displayField,a)},setValue:function(m,e){var k=this,c=k.valueNotFoundText,n=k.inputEl,g,j,h,a,l=[],b=[],d=[];if(k.store.loading){k.value=m;k.setHiddenValue(k.value);return k}m=Ext.Array.from(m);for(g=0,j=m.length;g<j;g++){h=m[g];if(!h||!h.isModel){h=k.findRecordByValue(h)}if(h){l.push(h);b.push(h.data);d.push(h.get(k.valueField))}else{if(!k.forceSelection){d.push(m[g]);a={};a[k.displayField]=m[g];b.push(a)}else{if(Ext.isDefined(c)){b.push(c)}}}}k.setHiddenValue(d);k.value=k.multiSelect?d:d[0];if(!Ext.isDefined(k.value)){k.value=null}k.displayTplData=b;k.lastSelection=k.valueModels=l;if(n&&k.emptyText&&!Ext.isEmpty(m)){n.removeCls(k.emptyCls)}k.setRawValue(k.getDisplayValue());k.checkChange();if(e!==false){k.syncSelection()}k.applyEmptyText();return k},setHiddenValue:function(j){var e=this,a=e.hiddenName,d,b,k,h,g,c;if(!e.hiddenDataEl||!a){return}j=Ext.Array.from(j);b=e.hiddenDataEl.dom;k=b.childNodes;h=k[0];g=j.length;c=k.length;if(!h&&g>0){e.hiddenDataEl.update(Ext.DomHelper.markup({tag:"input",type:"hidden",name:a}));c=1;h=b.firstChild}while(c>g){b.removeChild(k[0]);--c}while(c<g){b.appendChild(h.cloneNode(true));++c}for(d=0;d<g;d++){k[d].value=j[d]}},getDisplayValue:function(){return this.displayTpl.apply(this.displayTplData)},getValue:function(){var b=this,a=b.picker,d=b.getRawValue(),c=b.value;if(b.getDisplayValue()!==d){c=d;b.value=b.displayTplData=b.valueModels=null;if(a){b.ignoreSelection++;a.getSelectionModel().deselectAll();b.ignoreSelection--}}return c},getSubmitValue:function(){return this.getValue()},isEqual:function(e,d){var b=Ext.Array.from,c,a;e=b(e);d=b(d);a=e.length;if(a!==d.length){return false}for(c=0;c<a;c++){if(d[c]!==e[c]){return false}}return true},clearValue:function(){this.setValue([])},syncSelection:function(){var h=this,d=h.picker,g,c,b=h.valueModels||[],e=b.length,a,i;if(d){g=[];for(a=0;a<e;a++){i=b[a];if(i&&i.isModel&&h.store.indexOf(i)>=0){g.push(i)}}h.ignoreSelection++;c=d.getSelectionModel();c.deselectAll();if(g.length){c.select(g)}h.ignoreSelection--}},onEditorTab:function(b){var a=this.listKeyNav;if(this.selectOnTab&&a){a.selectHighlighted(b)}}});Ext.define("Ext.picker.Month",{extend:"Ext.Component",requires:["Ext.XTemplate","Ext.util.ClickRepeater","Ext.Date","Ext.button.Button"],alias:"widget.monthpicker",alternateClassName:"Ext.MonthPicker",childEls:["bodyEl","prevEl","nextEl","buttonsEl","monthEl","yearEl"],renderTpl:['<div id="{id}-bodyEl" class="{baseCls}-body">','<div id="{id}-monthEl" class="{baseCls}-months">','<tpl for="months">','<div class="{parent.baseCls}-item {parent.baseCls}-month"><a style="{parent.monthStyle}" href="#" hidefocus="on">{.}</a></div>',"</tpl>","</div>",'<div id="{id}-yearEl" class="{baseCls}-years">','<div class="{baseCls}-yearnav">','<button id="{id}-prevEl" class="{baseCls}-yearnav-prev"></button>','<button id="{id}-nextEl" class="{baseCls}-yearnav-next"></button>',"</div>",'<tpl for="years">','<div class="{parent.baseCls}-item {parent.baseCls}-year"><a href="#" hidefocus="on">{.}</a></div>',"</tpl>","</div>",'<div class="'+Ext.baseCSSPrefix+'clear"></div>',"</div>",'<tpl if="showButtons">','<div id="{id}-buttonsEl" class="{baseCls}-buttons">{%',"var me=values.$comp, okBtn=me.okBtn, cancelBtn=me.cancelBtn;","okBtn.ownerLayout = cancelBtn.ownerLayout = me.componentLayout;","okBtn.ownerCt = cancelBtn.ownerCt = me;","Ext.DomHelper.generateMarkup(okBtn.getRenderTree(), out);","Ext.DomHelper.generateMarkup(cancelBtn.getRenderTree(), out);","%}</div>","</tpl>"],okText:"OK",cancelText:"Cancel",baseCls:Ext.baseCSSPrefix+"monthpicker",showButtons:true,width:178,measureWidth:35,measureMaxHeight:20,smallCls:Ext.baseCSSPrefix+"monthpicker-small",totalYears:10,yearOffset:5,monthOffset:6,initComponent:function(){var a=this;a.selectedCls=a.baseCls+"-selected";a.addEvents("cancelclick","monthclick","monthdblclick","okclick","select","yearclick","yeardblclick");if(a.small){a.addCls(a.smallCls)}a.setValue(a.value);a.activeYear=a.getYear(new Date().getFullYear()-4,-4);if(a.showButtons){a.okBtn=new Ext.button.Button({text:a.okText,handler:a.onOkClick,scope:a});a.cancelBtn=new Ext.button.Button({text:a.cancelText,handler:a.onCancelClick,scope:a})}this.callParent()},beforeRender:function(){var g=this,c=0,b=[],a=Ext.Date.getShortMonthName,e=g.monthOffset,h=g.monthMargin,d="";g.callParent();for(;c<e;++c){b.push(a(c),a(c+e))}if(Ext.isDefined(h)){d="margin: 0 "+h+"px;"}Ext.apply(g.renderData,{months:b,years:g.getYears(),showButtons:g.showButtons,monthStyle:d})},afterRender:function(){var b=this,a=b.bodyEl,c=b.buttonsEl;b.callParent();b.mon(a,"click",b.onBodyClick,b);b.mon(a,"dblclick",b.onBodyClick,b);b.years=a.select("."+b.baseCls+"-year a");b.months=a.select("."+b.baseCls+"-month a");b.backRepeater=new Ext.util.ClickRepeater(b.prevEl,{handler:Ext.Function.bind(b.adjustYear,b,[-b.totalYears])});b.prevEl.addClsOnOver(b.baseCls+"-yearnav-prev-over");b.nextRepeater=new Ext.util.ClickRepeater(b.nextEl,{handler:Ext.Function.bind(b.adjustYear,b,[b.totalYears])});b.nextEl.addClsOnOver(b.baseCls+"-yearnav-next-over");b.updateBody();if(!Ext.isDefined(b.monthMargin)){Ext.picker.Month.prototype.monthMargin=b.calculateMonthMargin()}},calculateMonthMargin:function(){var d=this,b=d.monthEl,a=d.months,e=a.first(),c=e.getMargin("l");while(c&&d.getLargest()>d.measureMaxHeight){--c;a.setStyle("margin","0 "+c+"px")}return c},getLargest:function(a){var b=0;this.months.each(function(d){var c=d.getHeight();if(c>b){b=c}});return b},setValue:function(d){var c=this,e=c.activeYear,g=c.monthOffset,b,a;if(!d){c.value=[null,null]}else{if(Ext.isDate(d)){c.value=[d.getMonth(),d.getFullYear()]}else{c.value=[d[0],d[1]]}}if(c.rendered){b=c.value[1];if(b!==null){if((b<e||b>e+c.yearOffset)){c.activeYear=b-c.yearOffset+1}}c.updateBody()}return c},getValue:function(){return this.value},hasSelection:function(){var a=this.value;return a[0]!==null&&a[1]!==null},getYears:function(){var d=this,e=d.yearOffset,g=d.activeYear,a=g+e,c=g,b=[];for(;c<a;++c){b.push(c,c+e)}return b},updateBody:function(){var i=this,e=i.years,b=i.months,m=i.getYears(),n=i.selectedCls,k=i.getYear(null),g=i.value[0],l=i.monthOffset,h,d,j,a,c;if(i.rendered){e.removeCls(n);b.removeCls(n);d=e.elements;a=d.length;for(j=0;j<a;j++){c=Ext.fly(d[j]);h=m[j];c.dom.innerHTML=h;if(h==k){c.dom.className=n}}if(g!==null){if(g<l){g=g*2}else{g=(g-l)*2+1}b.item(g).addCls(n)}}},getYear:function(a,c){var b=this.value[1];c=c||0;return b===null?a:b+c},onBodyClick:function(d,b){var c=this,a=d.type=="dblclick";if(d.getTarget("."+c.baseCls+"-month")){d.stopEvent();c.onMonthClick(b,a)}else{if(d.getTarget("."+c.baseCls+"-year")){d.stopEvent();c.onYearClick(b,a)}}},adjustYear:function(a){if(typeof a!="number"){a=this.totalYears}this.activeYear+=a;this.updateBody()},onOkClick:function(){this.fireEvent("okclick",this,this.value)},onCancelClick:function(){this.fireEvent("cancelclick",this)},onMonthClick:function(c,a){var b=this;b.value[0]=b.resolveOffset(b.months.indexOf(c),b.monthOffset);b.updateBody();b.fireEvent("month"+(a?"dbl":"")+"click",b,b.value);b.fireEvent("select",b,b.value)},onYearClick:function(c,a){var b=this;b.value[1]=b.activeYear+b.resolveOffset(b.years.indexOf(c),b.yearOffset);b.updateBody();b.fireEvent("year"+(a?"dbl":"")+"click",b,b.value);b.fireEvent("select",b,b.value)},resolveOffset:function(a,b){if(a%2===0){return(a/2)}else{return b+Math.floor(a/2)}},beforeDestroy:function(){var a=this;a.years=a.months=null;Ext.destroyMembers(a,"backRepeater","nextRepeater","okBtn","cancelBtn");a.callParent()},finishRenderChildren:function(){var a=this;this.callParent(arguments);if(this.showButtons){a.okBtn.finishRender();a.cancelBtn.finishRender()}},onDestroy:function(){Ext.destroyMembers(this,"okBtn","cancelBtn");this.callParent()}});Ext.define("Ext.picker.Date",{extend:"Ext.Component",requires:["Ext.XTemplate","Ext.button.Button","Ext.button.Split","Ext.util.ClickRepeater","Ext.util.KeyNav","Ext.EventObject","Ext.fx.Manager","Ext.picker.Month"],alias:"widget.datepicker",alternateClassName:"Ext.DatePicker",childEls:["innerEl","eventEl","prevEl","nextEl","middleBtnEl","footerEl"],border:true,renderTpl:['<div id="{id}-innerEl" role="grid">','<div role="presentation" class="{baseCls}-header">','<div class="{baseCls}-prev"><a id="{id}-prevEl" href="#" role="button" title="{prevText}"></a></div>','<div class="{baseCls}-month" id="{id}-middleBtnEl">{%this.renderMonthBtn(values, out)%}</div>','<div class="{baseCls}-next"><a id="{id}-nextEl" href="#" role="button" title="{nextText}"></a></div>',"</div>",'<table id="{id}-eventEl" class="{baseCls}-inner" cellspacing="0" role="presentation">','<thead role="presentation"><tr role="presentation">','<tpl for="dayNames">','<th role="columnheader" title="{.}"><span>{.:this.firstInitial}</span></th>',"</tpl>","</tr></thead>",'<tbody role="presentation"><tr role="presentation">','<tpl for="days">',"{#:this.isEndOfWeek}",'<td role="gridcell" id="{[Ext.id()]}">','<a role="presentation" href="#" hidefocus="on" class="{parent.baseCls}-date" tabIndex="1">','<em role="presentation"><span role="presentation"></span></em>',"</a>","</td>","</tpl>","</tr></tbody>","</table>",'<tpl if="showToday">','<div id="{id}-footerEl" role="presentation" class="{baseCls}-footer">{%this.renderTodayBtn(values, out)%}</div>',"</tpl>","</div>",{firstInitial:function(a){return Ext.picker.Date.prototype.getDayInitial(a)},isEndOfWeek:function(b){b--;var a=b%7===0&&b!==0;return a?'</tr><tr role="row">':""},renderTodayBtn:function(a,b){Ext.DomHelper.generateMarkup(a.$comp.todayBtn.getRenderTree(),b)},renderMonthBtn:function(a,b){Ext.DomHelper.generateMarkup(a.$comp.monthBtn.getRenderTree(),b)}}],todayText:"Today",ariaTitle:"Date Picker: {0}",ariaTitleDateFormat:"F d, Y",todayTip:"{0} (Spacebar)",minText:"This date is before the minimum date",maxText:"This date is after the maximum date",disabledDaysText:"Disabled",disabledDatesText:"Disabled",nextText:"Next Month (Control+Right)",prevText:"Previous Month (Control+Left)",monthYearText:"Choose a month (Control+Up/Down to move years)",monthYearFormat:"F Y",startDay:0,showToday:true,disableAnim:false,baseCls:Ext.baseCSSPrefix+"datepicker",longDayFormat:"F d, Y",focusOnShow:false,focusOnSelect:true,width:178,initHour:12,numDays:42,initComponent:function(){var b=this,a=Ext.Date.clearTime;b.selectedCls=b.baseCls+"-selected";b.disabledCellCls=b.baseCls+"-disabled";b.prevCls=b.baseCls+"-prevday";b.activeCls=b.baseCls+"-active";b.nextCls=b.baseCls+"-prevday";b.todayCls=b.baseCls+"-today";b.dayNames=b.dayNames.slice(b.startDay).concat(b.dayNames.slice(0,b.startDay));b.listeners=Ext.apply(b.listeners||{},{mousewheel:{element:"eventEl",fn:b.handleMouseWheel,scope:b},click:{element:"eventEl",fn:b.handleDateClick,scope:b,delegate:"a."+b.baseCls+"-date"}});this.callParent();b.value=b.value?a(b.value,true):a(new Date());b.addEvents("select");b.initDisabledDays()},beforeRender:function(){var b=this,c=new Array(b.numDays),a=Ext.Date.format(new Date(),b.format);if(b.up("menu")){b.addCls(Ext.baseCSSPrefix+"menu")}b.monthBtn=new Ext.button.Split({ownerCt:b,ownerLayout:b.getComponentLayout(),text:"",tooltip:b.monthYearText,listeners:{click:b.showMonthPicker,arrowclick:b.showMonthPicker,scope:b}});if(this.showToday){b.todayBtn=new Ext.button.Button({ownerCt:b,ownerLayout:b.getComponentLayout(),text:Ext.String.format(b.todayText,a),tooltip:Ext.String.format(b.todayTip,a),tooltipType:"title",handler:b.selectToday,scope:b})}b.callParent();Ext.applyIf(b,{renderData:{}});Ext.apply(b.renderData,{dayNames:b.dayNames,showToday:b.showToday,prevText:b.prevText,nextText:b.nextText,days:c})},finishRenderChildren:function(){var a=this;a.callParent();a.monthBtn.finishRender();if(a.showToday){a.todayBtn.finishRender()}},onRender:function(b,a){var c=this;c.callParent(arguments);c.el.unselectable();c.cells=c.eventEl.select("tbody td");c.textNodes=c.eventEl.query("tbody td span")},initEvents:function(){var c=this,a=Ext.Date,b=a.DAY;c.callParent();c.prevRepeater=new Ext.util.ClickRepeater(c.prevEl,{handler:c.showPrevMonth,scope:c,preventDefault:true,stopDefault:true});c.nextRepeater=new Ext.util.ClickRepeater(c.nextEl,{handler:c.showNextMonth,scope:c,preventDefault:true,stopDefault:true});c.keyNav=new Ext.util.KeyNav(c.eventEl,Ext.apply({scope:c,left:function(d){if(d.ctrlKey){c.showPrevMonth()}else{c.update(a.add(c.activeDate,b,-1))}},right:function(d){if(d.ctrlKey){c.showNextMonth()}else{c.update(a.add(c.activeDate,b,1))}},up:function(d){if(d.ctrlKey){c.showNextYear()}else{c.update(a.add(c.activeDate,b,-7))}},down:function(d){if(d.ctrlKey){c.showPrevYear()}else{c.update(a.add(c.activeDate,b,7))}},pageUp:c.showNextMonth,pageDown:c.showPrevMonth,enter:function(d){d.stopPropagation();return true}},c.keyNavConfig));if(c.showToday){c.todayKeyListener=c.eventEl.addKeyListener(Ext.EventObject.SPACE,c.selectToday,c)}c.update(c.value)},initDisabledDays:function(){var h=this,b=h.disabledDates,g="(?:",a,i,c,e;if(!h.disabledDatesRE&&b){a=b.length-1;c=b.length;for(i=0;i<c;i++){e=b[i];g+=Ext.isDate(e)?"^"+Ext.String.escapeRegex(Ext.Date.dateFormat(e,h.format))+"$":e;if(i!=a){g+="|"}}h.disabledDatesRE=new RegExp(g+")")}},setDisabledDates:function(a){var b=this;if(Ext.isArray(a)){b.disabledDates=a;b.disabledDatesRE=null}else{b.disabledDatesRE=a}b.initDisabledDays();b.update(b.value,true);return b},setDisabledDays:function(a){this.disabledDays=a;return this.update(this.value,true)},setMinDate:function(a){this.minDate=a;return this.update(this.value,true)},setMaxDate:function(a){this.maxDate=a;return this.update(this.value,true)},setValue:function(a){this.value=Ext.Date.clearTime(a,true);return this.update(this.value)},getValue:function(){return this.value},getDayInitial:function(a){return a.substr(0,1)},focus:function(){this.update(this.activeDate)},onEnable:function(){this.callParent();this.setDisabledStatus(false);this.update(this.activeDate)},onDisable:function(){this.callParent();this.setDisabledStatus(true)},setDisabledStatus:function(a){var b=this;b.keyNav.setDisabled(a);b.prevRepeater.setDisabled(a);b.nextRepeater.setDisabled(a);if(b.showToday){b.todayKeyListener.setDisabled(a);b.todayBtn.setDisabled(a)}},getActive:function(){return this.activeDate||this.value},runAnimation:function(c){var b=this.monthPicker,a={duration:200,callback:function(){if(c){b.hide()}else{b.show()}}};if(c){b.el.slideOut("t",a)}else{b.el.slideIn("t",a)}},hideMonthPicker:function(a){var c=this,b=c.monthPicker;if(b){if(c.shouldAnimate(a)){c.runAnimation(true)}else{b.hide()}}return c},showMonthPicker:function(a){var c=this,b;if(c.rendered&&!c.disabled){b=c.createMonthPicker();b.setValue(c.getActive());b.setSize(c.getSize());b.setPosition(-1,-1);if(c.shouldAnimate(a)){c.runAnimation(false)}else{b.show()}}return c},shouldAnimate:function(a){return Ext.isDefined(a)?a:!this.disableAnim},createMonthPicker:function(){var b=this,a=b.monthPicker;if(!a){b.monthPicker=a=new Ext.picker.Month({renderTo:b.el,floating:true,shadow:false,small:b.showToday===false,listeners:{scope:b,cancelclick:b.onCancelClick,okclick:b.onOkClick,yeardblclick:b.onOkClick,monthdblclick:b.onOkClick}});if(!b.disableAnim){a.el.setStyle("display","none")}b.on("beforehide",Ext.Function.bind(b.hideMonthPicker,b,[false]))}return a},onOkClick:function(b,e){var d=this,g=e[0],c=e[1],a=new Date(c,g,d.getActive().getDate());if(a.getMonth()!==g){a=Ext.Date.getLastDateOfMonth(new Date(c,g,1))}d.update(a);d.hideMonthPicker()},onCancelClick:function(){this.selectedUpdate(this.activeDate);this.hideMonthPicker()},showPrevMonth:function(a){return this.update(Ext.Date.add(this.activeDate,Ext.Date.MONTH,-1))},showNextMonth:function(a){return this.update(Ext.Date.add(this.activeDate,Ext.Date.MONTH,1))},showPrevYear:function(){this.update(Ext.Date.add(this.activeDate,Ext.Date.YEAR,-1))},showNextYear:function(){this.update(Ext.Date.add(this.activeDate,Ext.Date.YEAR,1))},handleMouseWheel:function(a){a.stopEvent();if(!this.disabled){var b=a.getWheelDelta();if(b>0){this.showPrevMonth()}else{if(b<0){this.showNextMonth()}}}},handleDateClick:function(d,a){var c=this,b=c.handler;d.stopEvent();if(!c.disabled&&a.dateValue&&!Ext.fly(a.parentNode).hasCls(c.disabledCellCls)){c.doCancelFocus=c.focusOnSelect===false;c.setValue(new Date(a.dateValue));delete c.doCancelFocus;c.fireEvent("select",c,c.value);if(b){b.call(c.scope||c,c,c.value)}c.onSelect()}},onSelect:function(){if(this.hideOnSelect){this.hide()}},selectToday:function(){var c=this,a=c.todayBtn,b=c.handler;if(a&&!a.disabled){c.setValue(Ext.Date.clearTime(new Date()));c.fireEvent("select",c,c.value);if(b){b.call(c.scope||c,c,c.value)}c.onSelect()}return c},selectedUpdate:function(a){var d=this,i=a.getTime(),j=d.cells,k=d.selectedCls,g=j.elements,b,e=g.length,h;j.removeCls(k);for(b=0;b<e;b++){h=Ext.fly(g[b]);if(h.dom.firstChild.dateValue==i){d.fireEvent("highlightitem",d,h);h.addCls(k);if(d.isVisible()&&!d.doCancelFocus){Ext.fly(h.dom.firstChild).focus(50)}break}}},fullUpdate:function(A){var E=this,g=E.cells.elements,d=E.textNodes,G=E.disabledCellCls,n=Ext.Date,w=0,D=0,e=E.isVisible(),u=+n.clearTime(A,true),z=+n.clearTime(new Date()),t=E.minDate?n.clearTime(E.minDate,true):Number.NEGATIVE_INFINITY,v=E.maxDate?n.clearTime(E.maxDate,true):Number.POSITIVE_INFINITY,C=E.disabledDatesRE,s=E.disabledDatesText,H=E.disabledDays?E.disabledDays.join(""):false,B=E.disabledDaysText,x=E.format,l=n.getDaysInMonth(A),p=n.getFirstDateOfMonth(A),h=p.getDay()-E.startDay,y=n.add(A,n.MONTH,-1),b=E.longDayFormat,k,q,a,F,m,o,c,j,r;if(h<0){h+=7}l+=h;k=n.getDaysInMonth(y)-h;q=new Date(y.getFullYear(),y.getMonth(),k,E.initHour);if(E.showToday){F=n.clearTime(new Date());a=(F<t||F>v||(C&&x&&C.test(n.dateFormat(F,x)))||(H&&H.indexOf(F.getDay())!=-1));if(!E.disabled){E.todayBtn.setDisabled(a);E.todayKeyListener.setDisabled(a)}}m=function(i){r=+n.clearTime(q,true);i.title=n.format(q,b);i.firstChild.dateValue=r;if(r==z){i.className+=" "+E.todayCls;i.title=E.todayText}if(r==u){i.className+=" "+E.selectedCls;E.fireEvent("highlightitem",E,i);if(e&&E.floating){Ext.fly(i.firstChild).focus(50)}}if(r<t){i.className=G;i.title=E.minText;return}if(r>v){i.className=G;i.title=E.maxText;return}if(H){if(H.indexOf(q.getDay())!=-1){i.title=B;i.className=G}}if(C&&x){j=n.dateFormat(q,x);if(C.test(j)){i.title=s.replace("%0",j);i.className=G}}};for(;w<E.numDays;++w){if(w<h){o=(++k);c=E.prevCls}else{if(w>=l){o=(++D);c=E.nextCls}else{o=w-h+1;c=E.activeCls}}d[w].innerHTML=o;g[w].className=c;q.setDate(q.getDate()+1);m(g[w])}E.monthBtn.setText(Ext.Date.format(A,E.monthYearFormat))},update:function(a,d){var b=this,c=b.activeDate;if(b.rendered){b.activeDate=a;if(!d&&c&&b.el&&c.getMonth()==a.getMonth()&&c.getFullYear()==a.getFullYear()){b.selectedUpdate(a,c)}else{b.fullUpdate(a,c)}b.innerEl.dom.title=Ext.String.format(b.ariaTitle,Ext.Date.format(b.activeDate,b.ariaTitleDateFormat))}return b},beforeDestroy:function(){var a=this;if(a.rendered){Ext.destroy(a.todayKeyListener,a.keyNav,a.monthPicker,a.monthBtn,a.nextRepeater,a.prevRepeater,a.todayBtn);delete a.textNodes;delete a.cells.elements}a.callParent()},onShow:function(){this.callParent(arguments);if(this.focusOnShow){this.focus()}}},function(){var b=this.prototype,a=Ext.Date;b.monthNames=a.monthNames;b.dayNames=a.dayNames;b.format=a.defaultFormat});Ext.define("Ext.form.field.Date",{extend:"Ext.form.field.Picker",alias:"widget.datefield",requires:["Ext.picker.Date"],alternateClassName:["Ext.form.DateField","Ext.form.Date"],format:"m/d/Y",altFormats:"m/d/Y|n/j/Y|n/j/y|m/j/y|n/d/y|m/j/Y|n/d/Y|m-d-y|m-d-Y|m/d|m-d|md|mdy|mdY|d|Y-m-d|n-j|n/j",disabledDaysText:"Disabled",disabledDatesText:"Disabled",minText:"The date in this field must be equal to or after {0}",maxText:"The date in this field must be equal to or before {0}",invalidText:"{0} is not a valid date - it must be in the format {1}",triggerCls:Ext.baseCSSPrefix+"form-date-trigger",showToday:true,useStrict:undefined,initTime:"12",initTimeFormat:"H",matchFieldWidth:false,startDay:0,initComponent:function(){var d=this,b=Ext.isString,c,a;c=d.minValue;a=d.maxValue;if(b(c)){d.minValue=d.parseDate(c)}if(b(a)){d.maxValue=d.parseDate(a)}d.disabledDatesRE=null;d.initDisabledDays();d.callParent()},initValue:function(){var a=this,b=a.value;if(Ext.isString(b)){a.value=a.rawToValue(b)}a.callParent()},initDisabledDays:function(){if(this.disabledDates){var b=this.disabledDates,a=b.length-1,g="(?:",h,e=b.length,c;for(h=0;h<e;h++){c=b[h];g+=Ext.isDate(c)?"^"+Ext.String.escapeRegex(c.dateFormat(this.format))+"$":c;if(h!==a){g+="|"}}this.disabledDatesRE=new RegExp(g+")")}},setDisabledDates:function(a){var c=this,b=c.picker;c.disabledDates=a;c.initDisabledDays();if(b){b.setDisabledDates(c.disabledDatesRE)}},setDisabledDays:function(a){var b=this.picker;this.disabledDays=a;if(b){b.setDisabledDays(a)}},setMinValue:function(c){var b=this,a=b.picker,d=(Ext.isString(c)?b.parseDate(c):c);b.minValue=d;if(a){a.minText=Ext.String.format(b.minText,b.formatDate(b.minValue));a.setMinDate(d)}},setMaxValue:function(c){var b=this,a=b.picker,d=(Ext.isString(c)?b.parseDate(c):c);b.maxValue=d;if(a){a.maxText=Ext.String.format(b.maxText,b.formatDate(b.maxValue));a.setMaxDate(d)}},getErrors:function(q){var j=this,p=Ext.String.format,k=Ext.Date.clearTime,o=j.callParent(arguments),n=j.disabledDays,d=j.disabledDatesRE,m=j.minValue,h=j.maxValue,g=n?n.length:0,e=0,a,b,l,c;q=j.formatDate(q||j.processRawValue(j.getRawValue()));if(q===null||q.length<1){return o}a=q;q=j.parseDate(q);if(!q){o.push(p(j.invalidText,a,Ext.Date.unescapeFormat(j.format)));return o}c=q.getTime();if(m&&c<k(m).getTime()){o.push(p(j.minText,j.formatDate(m)))}if(h&&c>k(h).getTime()){o.push(p(j.maxText,j.formatDate(h)))}if(n){l=q.getDay();for(;e<g;e++){if(l===n[e]){o.push(j.disabledDaysText);break}}}b=j.formatDate(q);if(d&&d.test(b)){o.push(p(j.disabledDatesText,b))}return o},rawToValue:function(a){return this.parseDate(a)||a||null},valueToRaw:function(a){return this.formatDate(this.parseDate(a))},safeParse:function(g,h){var e=this,c=Ext.Date,a=null,b=e.useStrict,d;if(c.formatContainsHourInfo(h)){a=c.parse(g,h,b)}else{d=c.parse(g+" "+e.initTime,h+" "+e.initTimeFormat,b);if(d){a=c.clearTime(d)}}return a},getSubmitValue:function(){var b=this.submitFormat||this.format,a=this.getValue();return a?Ext.Date.format(a,b):""},parseDate:function(e){if(!e||Ext.isDate(e)){return e}var d=this,h=d.safeParse(e,d.format),b=d.altFormats,g=d.altFormatsArray,c=0,a;if(!h&&b){g=g||b.split("|");a=g.length;for(;c<a&&!h;++c){h=d.safeParse(e,g[c])}}return h},formatDate:function(a){return Ext.isDate(a)?Ext.Date.dateFormat(a,this.format):a},createPicker:function(){var a=this,b=Ext.String.format;return new Ext.picker.Date({pickerField:a,ownerCt:a.ownerCt,renderTo:document.body,floating:true,hidden:true,focusOnShow:true,minDate:a.minValue,maxDate:a.maxValue,disabledDatesRE:a.disabledDatesRE,disabledDatesText:a.disabledDatesText,disabledDays:a.disabledDays,disabledDaysText:a.disabledDaysText,format:a.format,showToday:a.showToday,startDay:a.startDay,minText:b(a.minText,a.formatDate(a.minValue)),maxText:b(a.maxText,a.formatDate(a.maxValue)),listeners:{scope:a,select:a.onSelect},keyNavConfig:{esc:function(){a.collapse()}}})},onSelect:function(a,c){var b=this;b.setValue(c);b.fireEvent("select",b,c);b.collapse()},onExpand:function(){var a=this.getValue();this.picker.setValue(Ext.isDate(a)?a:new Date())},onCollapse:function(){this.focus(false,60)},beforeBlur:function(){var c=this,a=c.parseDate(c.getRawValue()),b=c.focusTask;if(b){b.cancel()}if(a){c.setValue(a)}}});Ext.define("Ext.form.field.File",{extend:"Ext.form.field.Trigger",alias:["widget.filefield","widget.fileuploadfield"],alternateClassName:["Ext.form.FileUploadField","Ext.ux.form.FileUploadField","Ext.form.File"],uses:["Ext.button.Button","Ext.layout.component.field.Field"],buttonText:"Browse...",buttonOnly:false,buttonMargin:3,fieldBodyCls:Ext.baseCSSPrefix+"form-file-wrap",readOnly:true,triggerNoEditCls:"",componentLayout:"triggerfield",childEls:["fileInputEl","buttonEl","buttonEl-btnEl","browseButtonWrap"],onRender:function(){var a=this,b;a.callParent(arguments);b=a.inputEl;b.dom.name="";a.fileInputEl.dom.name=a.getName();a.fileInputEl.on({scope:a,change:a.onFileChange});if(a.buttonOnly){a.inputCell.setDisplayed(false)}a.browseButtonWrap.dom.style.width=(a.browseButtonWrap.dom.lastChild.offsetWidth+a.buttonEl.getMargin("lr"))+"px";if(Ext.isIE){a.buttonEl.repaint()}},getTriggerMarkup:function(){var d=this,a,c=Ext.widget("button",Ext.apply({id:d.id+"-buttonEl",ui:d.ui,disabled:d.disabled,text:d.buttonText,cls:Ext.baseCSSPrefix+"form-file-btn",preventDefault:false,style:d.buttonOnly?"":"margin-left:"+d.buttonMargin+"px"},d.buttonConfig)),b=c.getRenderTree(),e={id:d.id+"-fileInputEl",cls:Ext.baseCSSPrefix+"form-file-input",tag:"input",type:"file",size:1};if(d.disabled){e.disabled=true}b.cn=e;a='<td id="'+d.id+'-browseButtonWrap">'+Ext.DomHelper.markup(b)+"</td>";c.destroy();return a},createFileInput:function(){var a=this;a.fileInputEl=a.buttonEl.createChild({name:a.getName(),id:a.id+"-fileInputEl",cls:Ext.baseCSSPrefix+"form-file-input",tag:"input",type:"file",size:1});a.fileInputEl.on({scope:a,change:a.onFileChange})},onFileChange:function(){this.lastValue=null;Ext.form.field.File.superclass.setValue.call(this,this.fileInputEl.dom.value)},setValue:Ext.emptyFn,reset:function(){var a=this;if(a.rendered){a.fileInputEl.remove();a.createFileInput();a.inputEl.dom.value=""}a.callParent()},onDisable:function(){this.callParent();this.disableItems()},disableItems:function(){var a=this.fileInputEl;if(a){a.dom.disabled=true}this["buttonEl-btnEl"].dom.disabled=true},onEnable:function(){var a=this;a.callParent();a.fileInputEl.dom.disabled=false;this["buttonEl-btnEl"].dom.disabled=false},isFileUpload:function(){return true},extractFileInput:function(){var a=this.fileInputEl.dom;this.reset();return a},onDestroy:function(){Ext.destroyMembers(this,"fileInputEl","buttonEl");this.callParent()}});Ext.define("Ext.form.field.Hidden",{extend:"Ext.form.field.Base",alias:["widget.hiddenfield","widget.hidden"],alternateClassName:"Ext.form.Hidden",inputType:"hidden",hideLabel:true,initComponent:function(){this.formItemCls+="-hidden";this.callParent()},isEqual:function(b,a){return this.isEqualAsString(b,a)},initEvents:Ext.emptyFn,setSize:Ext.emptyFn,setWidth:Ext.emptyFn,setHeight:Ext.emptyFn,setPosition:Ext.emptyFn,setPagePosition:Ext.emptyFn,markInvalid:Ext.emptyFn,clearInvalid:Ext.emptyFn});Ext.define("Ext.layout.component.field.HtmlEditor",{extend:"Ext.layout.component.field.Field",alias:["layout.htmleditor"],type:"htmleditor",toolbarSizePolicy:{setsWidth:0,setsHeight:0},beginLayout:function(a){this.callParent(arguments);a.textAreaContext=a.getEl("textareaEl");a.iframeContext=a.getEl("iframeEl");a.toolbarContext=a.context.getCmp(this.owner.getToolbar())},renderItems:Ext.emptyFn,getItemSizePolicy:function(a){return this.toolbarSizePolicy},getLayoutItems:function(){var a=this.owner.getToolbar();return a?[a]:[]},getRenderTarget:function(){return this.owner.bodyEl},publishInnerHeight:function(c,a){var b=this,d=a-b.measureLabelErrorHeight(c)-c.toolbarContext.getProp("height")-c.bodyCellContext.getPaddingInfo().height;if(Ext.isNumber(d)){c.textAreaContext.setHeight(d);c.iframeContext.setHeight(d)}else{b.done=false}}});Ext.define("Ext.picker.Color",{extend:"Ext.Component",requires:"Ext.XTemplate",alias:"widget.colorpicker",alternateClassName:"Ext.ColorPalette",componentCls:Ext.baseCSSPrefix+"color-picker",selectedCls:Ext.baseCSSPrefix+"color-picker-selected",value:null,clickEvent:"click",allowReselect:false,colors:["000000","993300","333300","003300","003366","000080","333399","333333","800000","FF6600","808000","008000","008080","0000FF","666699","808080","FF0000","FF9900","99CC00","339966","33CCCC","3366FF","800080","969696","FF00FF","FFCC00","FFFF00","00FF00","00FFFF","00CCFF","993366","C0C0C0","FF99CC","FFCC99","FFFF99","CCFFCC","CCFFFF","99CCFF","CC99FF","FFFFFF"],colorRe:/(?:^|\s)color-(.{6})(?:\s|$)/,renderTpl:['<tpl for="colors">','<a href="#" class="color-{.}" hidefocus="on">','<em><span style="background:#{.}" unselectable="on"> </span></em>',"</a>","</tpl>"],initComponent:function(){var a=this;a.callParent(arguments);a.addEvents("select");if(a.handler){a.on("select",a.handler,a.scope,true)}},initRenderData:function(){var a=this;return Ext.apply(a.callParent(),{itemCls:a.itemCls,colors:a.colors})},onRender:function(){var b=this,a=b.clickEvent;b.callParent(arguments);b.mon(b.el,a,b.handleClick,b,{delegate:"a"});if(a!="click"){b.mon(b.el,"click",Ext.emptyFn,b,{delegate:"a",stopEvent:true})}},afterRender:function(){var a=this,b;a.callParent(arguments);if(a.value){b=a.value;a.value=null;a.select(b,true)}},handleClick:function(c,d){var b=this,a;c.stopEvent();if(!b.disabled){a=d.className.match(b.colorRe)[1];b.select(a.toUpperCase())}},select:function(b,a){var d=this,g=d.selectedCls,e=d.value,c;b=b.replace("#","");if(!d.rendered){d.value=b;return}if(b!=e||d.allowReselect){c=d.el;if(d.value){c.down("a.color-"+e).removeCls(g)}c.down("a.color-"+b).addCls(g);d.value=b;if(a!==true){d.fireEvent("select",d,b)}}},getValue:function(){return this.value||null}});Ext.define("Ext.form.field.HtmlEditor",{extend:"Ext.Component",mixins:{labelable:"Ext.form.Labelable",field:"Ext.form.field.Field"},alias:"widget.htmleditor",alternateClassName:"Ext.form.HtmlEditor",requires:["Ext.tip.QuickTipManager","Ext.picker.Color","Ext.toolbar.Item","Ext.toolbar.Toolbar","Ext.util.Format","Ext.layout.component.field.HtmlEditor"],childEls:["iframeEl","textareaEl"],fieldSubTpl:["{beforeTextAreaTpl}",'<textarea id="{cmpId}-textareaEl" name="{name}" tabIndex="-1" {inputAttrTpl}',' class="{textareaCls}" style="{size}" autocomplete="off">',"{[Ext.util.Format.htmlEncode(values.value)]}","</textarea>","{afterTextAreaTpl}","{beforeIFrameTpl}",'<iframe id="{cmpId}-iframeEl" name="{iframeName}" frameBorder="0" {iframeAttrTpl}',' style="overflow:auto;{size}" src="{iframeSrc}"></iframe>',"{afterIFrameTpl}",{disableFormats:true}],subTplInsertions:["beforeTextAreaTpl","afterTextAreaTpl","beforeIFrameTpl","afterIFrameTpl","iframeAttrTpl","inputAttrTpl"],enableFormat:true,enableFontSize:true,enableColors:true,enableAlignments:true,enableLists:true,enableSourceEdit:true,enableLinks:true,enableFont:true,createLinkText:"Please enter the URL for the link:",defaultLinkValue:"http://",fontFamilies:["Arial","Courier New","Tahoma","Times New Roman","Verdana"],defaultFont:"tahoma",defaultValue:(Ext.isOpera||Ext.isIE6)?" ":"​",editorWrapCls:Ext.baseCSSPrefix+"html-editor-wrap",componentLayout:"htmleditor",initialized:false,activated:false,sourceEditMode:false,iframePad:3,hideMode:"offsets",afterBodyEl:"</div>",maskOnDisable:true,initComponent:function(){var a=this;a.addEvents("initialize","activate","beforesync","beforepush","sync","push","editmodechange");a.callParent(arguments);a.createToolbar(a);a.initLabelable();a.initField()},getRefItems:function(){return[this.toolbar]},createToolbar:function(g){var j=this,h=[],c,l=Ext.tip.QuickTipManager&&Ext.tip.QuickTipManager.isEnabled(),e=Ext.baseCSSPrefix,d,k,b;function a(n,i,m){return{itemId:n,cls:e+"btn-icon",iconCls:e+"edit-"+n,enableToggle:i!==false,scope:g,handler:m||g.relayBtnCmd,clickEvent:"mousedown",tooltip:l?g.buttonTips[n]||b:b,overflowText:g.buttonTips[n].title||b,tabIndex:-1}}if(j.enableFont&&!Ext.isSafari2){d=Ext.widget("component",{renderTpl:['<select id="{id}-selectEl" class="{cls}">','<tpl for="fonts">','<option value="{[values.toLowerCase()]}" style="font-family:{.}"<tpl if="values.toLowerCase()==parent.defaultFont"> selected</tpl>>{.}</option>',"</tpl>","</select>"],renderData:{cls:e+"font-select",fonts:j.fontFamilies,defaultFont:j.defaultFont},childEls:["selectEl"],afterRender:function(){j.fontSelect=this.selectEl;Ext.Component.prototype.afterRender.apply(this,arguments)},onDisable:function(){var i=this.selectEl;if(i){i.dom.disabled=true}Ext.Component.prototype.onDisable.apply(this,arguments)},onEnable:function(){var i=this.selectEl;if(i){i.dom.disabled=false}Ext.Component.prototype.onEnable.apply(this,arguments)},listeners:{change:function(){j.relayCmd("fontname",j.fontSelect.dom.value);j.deferFocus()},element:"selectEl"}});h.push(d,"-")}if(j.enableFormat){h.push(a("bold"),a("italic"),a("underline"))}if(j.enableFontSize){h.push("-",a("increasefontsize",false,j.adjustFont),a("decreasefontsize",false,j.adjustFont))}if(j.enableColors){h.push("-",{itemId:"forecolor",cls:e+"btn-icon",iconCls:e+"edit-forecolor",overflowText:g.buttonTips.forecolor.title,tooltip:l?g.buttonTips.forecolor||b:b,tabIndex:-1,menu:Ext.widget("menu",{plain:true,items:[{xtype:"colorpicker",allowReselect:true,focus:Ext.emptyFn,value:"000000",plain:true,clickEvent:"mousedown",handler:function(m,i){j.execCmd("forecolor",Ext.isWebKit||Ext.isIE?"#"+i:i);j.deferFocus();this.up("menu").hide()}}]})},{itemId:"backcolor",cls:e+"btn-icon",iconCls:e+"edit-backcolor",overflowText:g.buttonTips.backcolor.title,tooltip:l?g.buttonTips.backcolor||b:b,tabIndex:-1,menu:Ext.widget("menu",{plain:true,items:[{xtype:"colorpicker",focus:Ext.emptyFn,value:"FFFFFF",plain:true,allowReselect:true,clickEvent:"mousedown",handler:function(m,i){if(Ext.isGecko){j.execCmd("useCSS",false);j.execCmd("hilitecolor",i);j.execCmd("useCSS",true);j.deferFocus()}else{j.execCmd(Ext.isOpera?"hilitecolor":"backcolor",Ext.isWebKit||Ext.isIE?"#"+i:i);j.deferFocus()}this.up("menu").hide()}}]})})}if(j.enableAlignments){h.push("-",a("justifyleft"),a("justifycenter"),a("justifyright"))}if(!Ext.isSafari2){if(j.enableLinks){h.push("-",a("createlink",false,j.createLink))}if(j.enableLists){h.push("-",a("insertorderedlist"),a("insertunorderedlist"))}if(j.enableSourceEdit){h.push("-",a("sourceedit",true,function(i){j.toggleSourceEdit(!j.sourceEditMode)}))}}for(c=0;c<h.length;c++){if(h[c].itemId!=="sourceedit"){h[c].disabled=true}}k=Ext.widget("toolbar",{id:j.id+"-toolbar",ownerCt:j,cls:Ext.baseCSSPrefix+"html-editor-tb",enableOverflow:true,items:h,ownerLayout:j.getComponentLayout(),listeners:{click:function(i){i.preventDefault()},element:"el"}});j.toolbar=k},getMaskTarget:function(){return this.bodyEl},setReadOnly:function(e){var d=this,c=d.textareaEl,b=d.iframeEl,a;d.readOnly=e;if(c){c.dom.readOnly=e}if(d.initialized){a=d.getEditorBody();if(Ext.isIE){b.setDisplayed(false);a.contentEditable=!e;b.setDisplayed(true)}else{d.setDesignMode(!e)}if(a){a.style.cursor=e?"default":"text"}d.disableItems(e)}},getDocMarkup:function(){var b=this,a=b.iframeEl.getHeight()-b.iframePad*2;return Ext.String.format('<html><head><style type="text/css">body{border:0;margin:0;padding:{0}px;height:{1}px;box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box;cursor:text}</style></head><body></body></html>',b.iframePad,a)},getEditorBody:function(){var a=this.getDoc();return a.body||a.documentElement},getDoc:function(){return(!Ext.isIE&&this.iframeEl.dom.contentDocument)||this.getWin().document},getWin:function(){return Ext.isIE?this.iframeEl.dom.contentWindow:window.frames[this.iframeEl.dom.name]},finishRenderChildren:function(){this.callParent();this.toolbar.finishRender()},onRender:function(){var a=this;a.callParent(arguments);a.inputEl=a.iframeEl;a.monitorTask=Ext.TaskManager.start({run:a.checkDesignMode,scope:a,interval:100})},initRenderTpl:function(){var a=this;if(!a.hasOwnProperty("renderTpl")){a.renderTpl=a.getTpl("labelableRenderTpl")}return a.callParent()},initRenderData:function(){this.beforeSubTpl='<div class="'+this.editorWrapCls+'">'+Ext.DomHelper.markup(this.toolbar.getRenderTree());return Ext.applyIf(this.callParent(),this.getLabelableRenderData())},getSubTplData:function(){return{$comp:this,cmpId:this.id,id:this.getInputId(),textareaCls:Ext.baseCSSPrefix+"hidden",value:this.value,iframeName:Ext.id(),iframeSrc:Ext.SSL_SECURE_URL,size:"height:100px;width:100%"}},getSubTplMarkup:function(){return this.getTpl("fieldSubTpl").apply(this.getSubTplData())},initFrameDoc:function(){var b=this,c,a;Ext.TaskManager.stop(b.monitorTask);c=b.getDoc();b.win=b.getWin();c.open();c.write(b.getDocMarkup());c.close();a={run:function(){var d=b.getDoc();if(d.body||d.readyState==="complete"){Ext.TaskManager.stop(a);b.setDesignMode(true);Ext.defer(b.initEditor,10,b)}},interval:10,duration:10000,scope:b};Ext.TaskManager.start(a)},checkDesignMode:function(){var a=this,b=a.getDoc();if(b&&(!b.editorInitialized||a.getDesignMode()!=="on")){a.initFrameDoc()}},setDesignMode:function(c){var a=this,b=a.getDoc();if(b){if(a.readOnly){c=false}b.designMode=(/on|true/i).test(String(c).toLowerCase())?"on":"off"}},getDesignMode:function(){var a=this.getDoc();return !a?"":String(a.designMode).toLowerCase()},disableItems:function(d){var b=this.getToolbar().items.items,c,a=b.length,e;for(c=0;c<a;c++){e=b[c];if(e.getItemId()!=="sourceedit"){e.setDisabled(d)}}},toggleSourceEdit:function(b){var g=this,d=g.iframeEl,a=g.textareaEl,e=Ext.baseCSSPrefix+"hidden",c=g.getToolbar().getComponent("sourceedit");if(!Ext.isBoolean(b)){b=!g.sourceEditMode}g.sourceEditMode=b;if(c.pressed!==b){c.toggle(b)}if(b){g.disableItems(true);g.syncValue();d.addCls(e);a.removeCls(e);a.dom.removeAttribute("tabIndex");a.focus();g.inputEl=a}else{if(g.initialized){g.disableItems(g.readOnly)}g.pushValue();d.removeCls(e);a.addCls(e);a.dom.setAttribute("tabIndex",-1);g.deferFocus();g.inputEl=d}g.fireEvent("editmodechange",g,b);g.updateLayout()},createLink:function(){var a=prompt(this.createLinkText,this.defaultLinkValue);if(a&&a!=="http://"){this.relayCmd("createlink",a)}},clearInvalid:Ext.emptyFn,setValue:function(c){var b=this,a=b.textareaEl;b.mixins.field.setValue.call(b,c);if(c===null||c===undefined){c=""}if(a){a.dom.value=c}b.pushValue();return this},cleanHtml:function(a){a=String(a);if(Ext.isWebKit){a=a.replace(/\sclass="(?:Apple-style-span|khtml-block-placeholder)"/gi,"")}if(a.charCodeAt(0)===parseInt(this.defaultValue.replace(/\D/g,""),10)){a=a.substring(1)}return a},syncValue:function(){var e=this,b,g,d,a,c;if(e.initialized){b=e.getEditorBody();d=b.innerHTML;if(Ext.isWebKit){a=b.getAttribute("style");c=a.match(/text-align:(.*?);/i);if(c&&c[1]){d='<div style="'+c[0]+'">'+d+"</div>"}}d=e.cleanHtml(d);if(e.fireEvent("beforesync",e,d)!==false){if(e.textareaEl.dom.value!=d){e.textareaEl.dom.value=d;g=true}e.fireEvent("sync",e,d);if(g){e.checkChange()}}}},getValue:function(){var a=this,b;if(!a.sourceEditMode){a.syncValue()}b=a.rendered?a.textareaEl.dom.value:a.value;a.value=b;return b},pushValue:function(){var b=this,a;if(b.initialized){a=b.textareaEl.dom.value||"";if(!b.activated&&a.length<1){a=b.defaultValue}if(b.fireEvent("beforepush",b,a)!==false){b.getEditorBody().innerHTML=a;if(Ext.isGecko){b.setDesignMode(false);b.setDesignMode(true)}b.fireEvent("push",b,a)}}},deferFocus:function(){this.focus(false,true)},getFocusEl:function(){var a=this,b=a.win;return b&&!a.sourceEditMode?b:a.textareaEl},initEditor:function(){try{var g=this,d=g.getEditorBody(),b=g.textareaEl.getStyles("font-size","font-family","background-image","background-repeat","background-color","color"),i,c;b["background-attachment"]="fixed";d.bgProperties="fixed";Ext.DomHelper.applyStyles(d,b);i=g.getDoc();if(i){try{Ext.EventManager.removeAll(i)}catch(h){}}c=Ext.Function.bind(g.onEditorEvent,g);Ext.EventManager.on(i,{mousedown:c,dblclick:c,click:c,keyup:c,buffer:100});c=g.onRelayedEvent;Ext.EventManager.on(i,{mousedown:c,mousemove:c,mouseup:c,click:c,dblclick:c,scope:g});if(Ext.isGecko){Ext.EventManager.on(i,"keypress",g.applyCommand,g)}if(g.fixKeys){Ext.EventManager.on(i,"keydown",g.fixKeys,g)}Ext.EventManager.on(window,"unload",g.beforeDestroy,g);i.editorInitialized=true;g.initialized=true;g.pushValue();g.setReadOnly(g.readOnly);g.fireEvent("initialize",g)}catch(a){}},beforeDestroy:function(){var a=this,d=a.monitorTask,c,g;if(d){Ext.TaskManager.stop(d)}if(a.rendered){try{c=a.getDoc();if(c){Ext.EventManager.removeAll(Ext.fly(c));for(g in c){if(c.hasOwnProperty&&c.hasOwnProperty(g)){delete c[g]}}}}catch(b){}Ext.destroyMembers(a,"toolbar","iframeEl","textareaEl")}a.callParent()},onRelayedEvent:function(c){var b=this.iframeEl,d=b.getXY(),a=c.getXY();c.xy=[d[0]+a[0],d[1]+a[1]];c.injectEvent(b);c.xy=a},onFirstFocus:function(){var c=this,b,a;c.activated=true;c.disableItems(c.readOnly);if(Ext.isGecko){c.win.focus();b=c.win.getSelection();if(!b.focusNode||b.focusNode.nodeType!==3){a=b.getRangeAt(0);a.selectNodeContents(c.getEditorBody());a.collapse(true);c.deferFocus()}try{c.execCmd("useCSS",true);c.execCmd("styleWithCSS",false)}catch(d){}}c.fireEvent("activate",c)},adjustFont:function(d){var e=d.getItemId()==="increasefontsize"?1:-1,c=this.getDoc().queryCommandValue("FontSize")||"2",a=Ext.isString(c)&&c.indexOf("px")!==-1,b;c=parseInt(c,10);if(a){if(c<=10){c=1+e}else{if(c<=13){c=2+e}else{if(c<=16){c=3+e}else{if(c<=18){c=4+e}else{if(c<=24){c=5+e}else{c=6+e}}}}}c=Ext.Number.constrain(c,1,6)}else{b=Ext.isSafari;if(b){e*=2}c=Math.max(1,c+e)+(b?"px":0)}this.execCmd("FontSize",c)},onEditorEvent:function(a){this.updateToolbar()},updateToolbar:function(){var e=this,d,g,a,c;if(e.readOnly){return}if(!e.activated){e.onFirstFocus();return}d=e.getToolbar().items.map;g=e.getDoc();if(e.enableFont&&!Ext.isSafari2){a=(g.queryCommandValue("FontName")||e.defaultFont).toLowerCase();c=e.fontSelect.dom;if(a!==c.value){c.value=a}}function b(){for(var k=0,h=arguments.length,j;k<h;k++){j=arguments[k];d[j].toggle(g.queryCommandState(j))}}if(e.enableFormat){b("bold","italic","underline")}if(e.enableAlignments){b("justifyleft","justifycenter","justifyright")}if(!Ext.isSafari2&&e.enableLists){b("insertorderedlist","insertunorderedlist")}Ext.menu.Manager.hideAll();e.syncValue()},relayBtnCmd:function(a){this.relayCmd(a.getItemId())},relayCmd:function(b,a){Ext.defer(function(){var c=this;c.focus();c.execCmd(b,a);c.updateToolbar()},10,this)},execCmd:function(d,c){var b=this,e=b.getDoc(),a;e.execCommand(d,false,c===a?null:c);b.syncValue()},applyCommand:function(d){if(d.ctrlKey){var a=this,g=d.getCharCode(),b;if(g>0){g=String.fromCharCode(g);switch(g){case"b":b="bold";break;case"i":b="italic";break;case"u":b="underline";break}if(b){a.win.focus();a.execCmd(b);a.deferFocus();d.preventDefault()}}}},insertAtCursor:function(c){var b=this,a;if(b.activated){b.win.focus();if(Ext.isIE){a=b.getDoc().selection.createRange();if(a){a.pasteHTML(c);b.syncValue();b.deferFocus()}}else{b.execCmd("InsertHTML",c);b.deferFocus()}}},fixKeys:(function(){if(Ext.isIE){return function(h){var c=this,b=h.getKey(),g=c.getDoc(),i=c.readOnly,a,d;if(b===h.TAB){h.stopEvent();if(!i){a=g.selection.createRange();if(a){a.collapse(true);a.pasteHTML("    ");c.deferFocus()}}}else{if(b===h.ENTER){if(!i){a=g.selection.createRange();if(a){d=a.parentElement();if(!d||d.tagName.toLowerCase()!=="li"){h.stopEvent();a.pasteHTML("<br />");a.collapse(false);a.select()}}}}}}}if(Ext.isOpera){return function(b){var a=this;if(b.getKey()===b.TAB){b.stopEvent();if(!a.readOnly){a.win.focus();a.execCmd("InsertHTML","    ");a.deferFocus()}}}}if(Ext.isWebKit){return function(c){var b=this,a=c.getKey(),d=b.readOnly;if(a===c.TAB){c.stopEvent();if(!d){b.execCmd("InsertText","\t");b.deferFocus()}}else{if(a===c.ENTER){c.stopEvent();if(!d){b.execCmd("InsertHtml","<br /><br />");b.deferFocus()}}}}}return null}()),getToolbar:function(){return this.toolbar},buttonTips:{bold:{title:"Bold (Ctrl+B)",text:"Make the selected text bold.",cls:Ext.baseCSSPrefix+"html-editor-tip"},italic:{title:"Italic (Ctrl+I)",text:"Make the selected text italic.",cls:Ext.baseCSSPrefix+"html-editor-tip"},underline:{title:"Underline (Ctrl+U)",text:"Underline the selected text.",cls:Ext.baseCSSPrefix+"html-editor-tip"},increasefontsize:{title:"Grow Text",text:"Increase the font size.",cls:Ext.baseCSSPrefix+"html-editor-tip"},decreasefontsize:{title:"Shrink Text",text:"Decrease the font size.",cls:Ext.baseCSSPrefix+"html-editor-tip"},backcolor:{title:"Text Highlight Color",text:"Change the background color of the selected text.",cls:Ext.baseCSSPrefix+"html-editor-tip"},forecolor:{title:"Font Color",text:"Change the color of the selected text.",cls:Ext.baseCSSPrefix+"html-editor-tip"},justifyleft:{title:"Align Text Left",text:"Align text to the left.",cls:Ext.baseCSSPrefix+"html-editor-tip"},justifycenter:{title:"Center Text",text:"Center text in the editor.",cls:Ext.baseCSSPrefix+"html-editor-tip"},justifyright:{title:"Align Text Right",text:"Align text to the right.",cls:Ext.baseCSSPrefix+"html-editor-tip"},insertunorderedlist:{title:"Bullet List",text:"Start a bulleted list.",cls:Ext.baseCSSPrefix+"html-editor-tip"},insertorderedlist:{title:"Numbered List",text:"Start a numbered list.",cls:Ext.baseCSSPrefix+"html-editor-tip"},createlink:{title:"Hyperlink",text:"Make the selected text a hyperlink.",cls:Ext.baseCSSPrefix+"html-editor-tip"},sourceedit:{title:"Source Edit",text:"Switch to source editing mode.",cls:Ext.baseCSSPrefix+"html-editor-tip"}}});Ext.define("Ext.form.field.Radio",{extend:"Ext.form.field.Checkbox",alias:["widget.radiofield","widget.radio"],alternateClassName:"Ext.form.Radio",requires:["Ext.form.RadioManager"],isRadio:true,inputType:"radio",ariaRole:"radio",formId:null,getGroupValue:function(){var a=this.getManager().getChecked(this.name,this.getFormId());return a?a.inputValue:null},onBoxClick:function(b){var a=this;if(!a.disabled&&!a.readOnly){this.setValue(true)}},onRemoved:function(){this.callParent(arguments);this.formId=null},setValue:function(a){var b=this,c;if(Ext.isBoolean(a)){b.callParent(arguments)}else{c=b.getManager().getWithValue(b.name,a,b.getFormId()).getAt(0);if(c){c.setValue(true)}}return b},getSubmitValue:function(){return this.checked?this.inputValue:null},getModelData:function(){return this.getSubmitData()},onChange:function(c,a){var g=this,e,d,b,h;g.callParent(arguments);if(c){h=g.getManager().getByName(g.name,g.getFormId()).items;d=h.length;for(e=0;e<d;e++){b=h[e];if(b!==g){b.setValue(false)}}}},getManager:function(){return Ext.form.RadioManager}});Ext.define("Ext.picker.Time",{extend:"Ext.view.BoundList",alias:"widget.timepicker",requires:["Ext.data.Store","Ext.Date"],increment:15,format:"g:i A",displayField:"disp",initDate:[2008,0,1],componentCls:Ext.baseCSSPrefix+"timepicker",loadMask:false,initComponent:function(){var c=this,a=Ext.Date,b=a.clearTime,d=c.initDate;c.absMin=b(new Date(d[0],d[1],d[2]));c.absMax=a.add(b(new Date(d[0],d[1],d[2])),"mi",(24*60)-1);c.store=c.createStore();c.updateList();c.callParent()},setMinValue:function(a){this.minValue=a;this.updateList()},setMaxValue:function(a){this.maxValue=a;this.updateList()},normalizeDate:function(a){var b=this.initDate;a.setFullYear(b[0],b[1],b[2]);return a},updateList:function(){var c=this,b=c.normalizeDate(c.minValue||c.absMin),a=c.normalizeDate(c.maxValue||c.absMax);c.store.filterBy(function(d){var e=d.get("date");return e>=b&&e<=a})},createStore:function(){var d=this,c=Ext.Date,e=[],b=d.absMin,a=d.absMax;while(b<=a){e.push({disp:c.dateFormat(b,d.format),date:b});b=c.add(b,"mi",d.increment)}return new Ext.data.Store({fields:["disp","date"],data:e})}});Ext.define("Ext.form.field.Time",{extend:"Ext.form.field.ComboBox",alias:"widget.timefield",requires:["Ext.form.field.Date","Ext.picker.Time","Ext.view.BoundListKeyNav","Ext.Date"],alternateClassName:["Ext.form.TimeField","Ext.form.Time"],triggerCls:Ext.baseCSSPrefix+"form-time-trigger",minText:"The time in this field must be equal to or after {0}",maxText:"The time in this field must be equal to or before {0}",invalidText:"{0} is not a valid time",format:"g:i A",altFormats:"g:ia|g:iA|g:i a|g:i A|h:i|g:i|H:i|ga|ha|gA|h a|g a|g A|gi|hi|gia|hia|g|H|gi a|hi a|giA|hiA|gi A|hi A",increment:15,pickerMaxHeight:300,selectOnTab:true,snapToIncrement:false,initDate:"1/1/2008",initDateFormat:"j/n/Y",ignoreSelection:0,queryMode:"local",displayField:"disp",valueField:"date",initComponent:function(){var c=this,b=c.minValue,a=c.maxValue;if(b){c.setMinValue(b)}if(a){c.setMaxValue(a)}c.displayTpl=new Ext.XTemplate('<tpl for=".">{[typeof values === "string" ? values : this.formatDate(values["'+c.displayField+'"])]}<tpl if="xindex < xcount">'+c.delimiter+"</tpl></tpl>",{formatDate:Ext.Function.bind(c.formatDate,c)});this.callParent()},transformOriginalValue:function(a){if(Ext.isString(a)){return this.rawToValue(a)}return a},isEqual:function(b,a){return Ext.Date.isEqual(b,a)},setMinValue:function(c){var b=this,a=b.picker;b.setLimit(c,true);if(a){a.setMinValue(b.minValue)}},setMaxValue:function(c){var b=this,a=b.picker;b.setLimit(c,false);if(a){a.setMaxValue(b.maxValue)}},setLimit:function(b,g){var a=this,e,c;if(Ext.isString(b)){e=a.parseDate(b)}else{if(Ext.isDate(b)){e=b}}if(e){c=Ext.Date.clearTime(new Date(a.initDate));c.setHours(e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds())}else{c=null}a[g?"minValue":"maxValue"]=c},rawToValue:function(a){return this.parseDate(a)||a||null},valueToRaw:function(a){return this.formatDate(this.parseDate(a))},getErrors:function(d){var b=this,g=Ext.String.format,h=b.callParent(arguments),c=b.minValue,e=b.maxValue,a;d=b.formatDate(d||b.processRawValue(b.getRawValue()));if(d===null||d.length<1){return h}a=b.parseDate(d);if(!a){h.push(g(b.invalidText,d,Ext.Date.unescapeFormat(b.format)));return h}if(c&&a<c){h.push(g(b.minText,b.formatDate(c)))}if(e&&a>e){h.push(g(b.maxText,b.formatDate(e)))}return h},formatDate:function(){return Ext.form.field.Date.prototype.formatDate.apply(this,arguments)},parseDate:function(e){var d=this,h=e,b=d.altFormats,g=d.altFormatsArray,c=0,a;if(e&&!Ext.isDate(e)){h=d.safeParse(e,d.format);if(!h&&b){g=g||b.split("|");a=g.length;for(;c<a&&!h;++c){h=d.safeParse(e,g[c])}}}if(h&&d.snapToIncrement){h=new Date(Ext.Number.snap(h.getTime(),d.increment*60*1000))}return h},safeParse:function(e,g){var d=this,b=Ext.Date,c,a=null;if(b.formatContainsDateInfo(g)){a=b.parse(e,g)}else{c=b.parse(d.initDate+" "+e,d.initDateFormat+" "+g);if(c){a=c}}return a},getSubmitValue:function(){var a=this,c=a.submitFormat||a.format,b=a.getValue();return b?Ext.Date.format(b,c):null},createPicker:function(){var b=this,a;b.listConfig=Ext.apply({xtype:"timepicker",selModel:{mode:"SINGLE"},cls:undefined,minValue:b.minValue,maxValue:b.maxValue,increment:b.increment,format:b.format,maxHeight:b.pickerMaxHeight},b.listConfig);a=b.callParent();b.store=a.store;return a},onItemClick:function(b,a){var d=this,c=b.getSelectionModel().getSelection();if(c.length>0){c=c[0];if(c&&Ext.Date.isEqual(a.get("date"),c.get("date"))){d.collapse()}}},onListSelectionChange:function(c,e){var b=this,a=e[0],d=a?a.get("date"):null;if(!b.ignoreSelection){b.skipSync=true;b.setValue(d);b.skipSync=false;b.fireEvent("select",b,d);b.picker.clearHighlight();b.collapse();b.inputEl.focus()}},syncSelection:function(){var j=this,h=j.picker,c,g,k,b,i,e,a;if(h&&!j.skipSync){h.clearHighlight();k=j.getValue();g=h.getSelectionModel();j.ignoreSelection++;if(k===null){g.deselectAll()}else{if(Ext.isDate(k)){b=h.store.data.items;e=b.length;for(i=0;i<e;i++){a=b[i];if(Ext.Date.isEqual(a.get("date"),k)){c=a;break}}g.select(c)}}j.ignoreSelection--}},postBlur:function(){var a=this;a.callParent(arguments);a.setRawValue(a.formatDate(a.getValue()))},setValue:function(){this.getPicker();this.callParent(arguments)},getValue:function(){return this.parseDate(this.callParent(arguments))}});Ext.define("Ext.grid.CellEditor",{extend:"Ext.Editor",constructor:function(a){a=Ext.apply({},a);if(a.field){a.field.monitorTab=false}this.callParent([a])},onShow:function(){var b=this,d=b.boundEl.first(),a,c;if(d){a=d.dom.lastChild;if(a&&a.nodeType===3){c=b.cellTextNode=d.dom.lastChild;b.cellTextValue=c.nodeValue;c.nodeValue="\u00a0"}}b.callParent(arguments)},onHide:function(){var a=this,b=a.boundEl.first();if(b&&a.cellTextNode){a.cellTextNode.nodeValue=a.cellTextValue;delete a.cellTextNode;delete a.cellTextValue}a.callParent(arguments)},afterRender:function(){var a=this,b=a.field;a.callParent(arguments);if(b.isXType("checkboxfield")){b.mon(b.inputEl,{mousedown:a.onCheckBoxMouseDown,click:a.onCheckBoxClick,scope:a})}},onCheckBoxMouseDown:function(){this.completeEdit=Ext.emptyFn},onCheckBoxClick:function(){delete this.completeEdit;this.field.focus(false,10)},realign:function(e){var k=this,h=k.boundEl,j=h.first(),c=j.dom.childNodes,g=c.length,d=Ext.Array.clone(k.offsets),l=k.field.inputEl,b,i,m,a;if(k.isForTree&&(g>1||(g===1&&c[0].nodeType!==3))){b=j.last();i=b.getOffsetsTo(j)[0]+b.getWidth();m=j.getWidth();a=m-i;if(!k.editingPlugin.grid.columnLines){a--}d[0]+=i;k.addCls(Ext.baseCSSPrefix+"grid-editor-on-text-node")}else{a=h.getWidth()-1}if(e===true){k.field.setWidth(a)}k.alignTo(h,k.alignment,d)},onEditorTab:function(b){var a=this.field;if(a.onEditorTab){a.onEditorTab(b)}},alignment:"tl-tl",hideEl:false,cls:Ext.baseCSSPrefix+"small-editor "+Ext.baseCSSPrefix+"grid-editor",shim:false,shadow:false});Ext.define("Ext.grid.ColumnComponentLayout",{extend:"Ext.layout.component.Auto",alias:"layout.columncomponent",type:"columncomponent",setWidthInDom:true,getContentHeight:function(a){return this.owner.isGroupHeader?a.getProp("contentHeight"):this.callParent(arguments)},calculateOwnerHeightFromContentHeight:function(c,b){var a=this.callParent(arguments);if(this.owner.isGroupHeader){a+=this.owner.titleEl.dom.offsetHeight}return a},getContentWidth:function(a){return this.owner.isGroupHeader?a.getProp("contentWidth"):this.callParent(arguments)},calculateOwnerWidthFromContentWidth:function(b,a){return a+b.getPaddingInfo().width}});Ext.define("Ext.grid.ColumnLayout",{extend:"Ext.layout.container.HBox",alias:"layout.gridcolumn",type:"gridcolumn",reserveOffset:false,firstHeaderCls:Ext.baseCSSPrefix+"column-header-first",lastHeaderCls:Ext.baseCSSPrefix+"column-header-last",initLayout:function(){this.grid=this.owner.up("[scrollerOwner]");this.callParent()},beginLayout:function(j){var h=this,e=h.grid,b=e.view,d=0,c=h.getVisibleItems(),a=c.length,g;j.gridContext=j.context.getCmp(h.grid);if(e.lockable){if(h.owner.up("tablepanel")===b.normalGrid){b=b.normalGrid.getView()}else{b=null}}h.callParent(arguments);for(;d<a;d++){g=c[d];g.removeCls([h.firstHeaderCls,h.lastHeaderCls]);g.el.setStyle({height:"auto"});g.titleEl.setStyle({height:"auto",paddingTop:""})}if(a>0){c[0].addCls(h.firstHeaderCls);c[a-1].addCls(h.lastHeaderCls)}if(!h.owner.isHeader&&Ext.getScrollbarSize().width&&!e.collapsed&&b&&b.table.dom&&(b.autoScroll||b.overflowY)){j.viewContext=j.context.getCmp(b)}},roundFlex:function(a){return Math.floor(a)},calculate:function(e){var d=this,c=e.viewContext,b,a;d.callParent(arguments);if(e.state.parallelDone){e.setProp("columnWidthsDone",true)}if(c&&!e.state.overflowAdjust.width&&!e.gridContext.heightModel.shrinkWrap){b=c.tableContext.getProp("height");a=c.getProp("height");if(isNaN(b+a)){d.done=false}else{if(b>=a){e.gridContext.invalidate({after:function(){e.state.overflowAdjust={width:Ext.getScrollbarSize().width,height:0}}})}}}},completeLayout:function(c){var j=this,b=j.owner,a=c.state,g=false,k=j.sizeModels.calculated,e,h,d,m,l;j.callParent(arguments);if(!a.flexesCalculated&&b.forceFit&&!b.isHeader){e=c.childItems;h=e.length;for(d=0;d<h;d++){m=e[d];l=m.target;if(l.width){l.flex=c.childItems[d].flex=l.width;delete l.width;m.widthModel=k;g=true}}if(g){j.cacheFlexes(c);c.invalidate({state:{flexesCalculated:true}})}}},finalizeLayout:function(){var g=this,e=0,d,b,h,a=g.owner,c=a.titleEl;d=g.getVisibleItems();b=d.length;h=a.el.getViewSize().height;if(c){h-=c.getHeight()}for(;e<b;e++){d[e].setPadding(h)}},publishInnerCtSize:function(e){var d=this,c=e.state.boxPlan.targetSize,b=e.peek("contentWidth"),a;if((b!=null)&&!d.owner.isHeader){c.width=b;a=d.owner.ownerCt.view;if(a.autoScroll||a.overflowY){c.width+=Ext.getScrollbarSize().width}}return d.callParent(arguments)}});Ext.define("Ext.grid.LockingView",{mixins:{observable:"Ext.util.Observable"},eventRelayRe:/^(beforeitem|beforecontainer|item|container|cell)/,constructor:function(c){var g=this,i=[],a=g.eventRelayRe,b=c.locked.getView(),h=c.normal.getView(),d,e;Ext.apply(g,{lockedView:b,normalView:h,lockedGrid:c.locked,normalGrid:c.normal,panel:c.panel});g.mixins.observable.constructor.call(g,c);d=b.events;for(e in d){if(d.hasOwnProperty(e)&&a.test(e)){i.push(e)}}g.relayEvents(b,i);g.relayEvents(h,i);h.on({scope:g,itemmouseleave:g.onItemMouseLeave,itemmouseenter:g.onItemMouseEnter});b.on({scope:g,itemmouseleave:g.onItemMouseLeave,itemmouseenter:g.onItemMouseEnter})},getGridColumns:function(){var a=this.lockedGrid.headerCt.getGridColumns();return a.concat(this.normalGrid.headerCt.getGridColumns())},getEl:function(a){return this.getViewForColumn(a).getEl()},getViewForColumn:function(b){var a=this.lockedView,c;a.headerCt.cascade(function(d){if(d===b){c=true;return false}});return c?a:this.normalView},onItemMouseEnter:function(c,b){var g=this,d=g.lockedView,a=g.normalView,e;if(c.trackOver){if(c!==d){a=d}e=a.getNode(b);a.highlightItem(e)}},onItemMouseLeave:function(c,b){var e=this,d=e.lockedView,a=e.normalView;if(c.trackOver){if(c!==d){a=d}a.clearHighlight()}},relayFn:function(c,b){b=b||[];var a=this.lockedView;a[c].apply(a,b||[]);a=this.normalView;a[c].apply(a,b||[])},getSelectionModel:function(){return this.panel.getSelectionModel()},getStore:function(){return this.panel.store},getNode:function(a){return this.normalView.getNode(a)},getCell:function(b,c){var a=this.getViewForColumn(c),d;d=a.getNode(b);return Ext.fly(d).down(c.getCellSelector())},getRecord:function(b){var a=this.lockedView.getRecord(b);if(!b){a=this.normalView.getRecord(b)}return a},addElListener:function(a,c,b){this.relayFn("addElListener",arguments)},refreshNode:function(){this.relayFn("refreshNode",arguments)},refresh:function(){this.relayFn("refresh",arguments)},bindStore:function(){this.relayFn("bindStore",arguments)},addRowCls:function(){this.relayFn("addRowCls",arguments)},removeRowCls:function(){this.relayFn("removeRowCls",arguments)}});Ext.define("Ext.view.TableLayout",{extend:"Ext.layout.component.Auto",alias:["layout.tableview"],type:"tableview",beginLayout:function(b){var a=this;a.callParent(arguments);if(a.owner.table.dom){b.tableContext=b.getEl(a.owner.table);b.headerContext=b.context.getCmp(a.headerCt)}},calculate:function(b){var a=this;a.callParent(arguments);if(b.tableContext){if(b.state.columnWidthsSynced){if(b.hasProp("columnWidthsFlushed")){b.tableContext.setHeight(b.tableContext.el.dom.offsetHeight,false)}else{a.done=false}}else{if(b.headerContext.hasProp("columnWidthsDone")){b.context.queueFlush(a);b.state.columnWidthsSynced=true}a.done=false}}},measureContentHeight:function(a){if(!a.headerContext||a.hasProp("columnWidthsFlushed")){return this.callParent(arguments)}},flush:function(){var j=this,e=j.ownerContext.context,d=j.headerCt.getGridColumns(),c=0,b=d.length,h=j.owner.el,a=0,g;e.currentLayout=j;for(c=0;c<b;c++){g=d[c].hidden?0:e.getCmp(d[c]).props.width;a+=g;h.select(j.getColumnSelector(d[c])).setWidth(g)}h.select("table."+Ext.baseCSSPrefix+"grid-table-resizer").setWidth(a);j.ownerContext.setProp("columnWidthsFlushed",true)},finishedLayout:function(){var a=this,b;a.callParent(arguments);if(Ext.isGecko){b=a.headerCt.getGridColumns()[0];if(b){b=a.owner.el.down(a.getColumnSelector(b));if(b){b.setStyle("display","none");b.dom.scrollWidth;b.setStyle("display","")}}}},getColumnSelector:function(a){return"th."+Ext.baseCSSPrefix+"grid-col-resizer-"+a.id}});Ext.define("Ext.view.Table",{extend:"Ext.view.View",alias:"widget.tableview",uses:["Ext.view.TableLayout","Ext.view.TableChunker","Ext.util.DelayedTask","Ext.util.MixedCollection"],componentLayout:"tableview",baseCls:Ext.baseCSSPrefix+"grid-view",itemSelector:"tr."+Ext.baseCSSPrefix+"grid-row",cellSelector:"td."+Ext.baseCSSPrefix+"grid-cell",rowSelector:"tr."+Ext.baseCSSPrefix+"grid-row",firstCls:Ext.baseCSSPrefix+"grid-cell-first",lastCls:Ext.baseCSSPrefix+"grid-cell-last",headerRowSelector:"tr."+Ext.baseCSSPrefix+"grid-header-row",selectedItemCls:Ext.baseCSSPrefix+"grid-row-selected",selectedCellCls:Ext.baseCSSPrefix+"grid-cell-selected",focusedItemCls:Ext.baseCSSPrefix+"grid-row-focused",overItemCls:Ext.baseCSSPrefix+"grid-row-over",altRowCls:Ext.baseCSSPrefix+"grid-row-alt",rowClsRe:new RegExp("(?:^|\\s*)"+Ext.baseCSSPrefix+"grid-row-(first|last|alt)(?:\\s+|$)","g"),cellRe:new RegExp(Ext.baseCSSPrefix+"grid-cell-([^\\s]+) ",""),trackOver:true,getRowClass:null,stripeRows:true,markDirty:true,initialTpl:"<div></div>",initComponent:function(){var b=this,a=b.scroll;b.table=new Ext.dom.Element.Fly();b.table.id=b.id+"gridTable";b.autoScroll=undefined;if(a===true||a==="both"){b.autoScroll=true}else{if(a==="horizontal"){b.overflowX="auto"}else{if(a==="vertical"){b.overflowY="auto"}}}b.selModel.view=b;b.headerCt.view=b;b.headerCt.markDirty=b.markDirty;b.initFeatures(b.grid);delete b.grid;b.tpl=b.getTpl("initialTpl");b.callParent()},moveColumn:function(a,p,d){var n=this,l=(d>1)?document.createDocumentFragment():undefined,c=p,q=n.getGridColumns().length,o=q-1,b=(n.firstCls||n.lastCls)&&(p===0||p==q||a===0||a==o),g,e,r,k,m,h;if(n.rendered){h=n.el.query(n.headerRowSelector);r=n.el.query(n.rowSelector);if(p>a&&l){c-=d}for(g=0,k=h.length;g<k;++g){m=h[g];if(l){for(e=0;e<d;e++){l.appendChild(m.cells[a])}m.insertBefore(l,m.cells[c]||null)}else{m.insertBefore(m.cells[a],m.cells[c]||null)}}for(g=0,k=r.length;g<k;g++){m=r[g];if(b){if(a===0){Ext.fly(m.cells[0]).removeCls(n.firstCls);Ext.fly(m.cells[1]).addCls(n.firstCls)}else{if(a===o){Ext.fly(m.cells[o]).removeCls(n.lastCls);Ext.fly(m.cells[o-1]).addCls(n.lastCls)}}if(p===0){Ext.fly(m.cells[0]).removeCls(n.firstCls);Ext.fly(m.cells[a]).addCls(n.firstCls)}else{if(p===q){Ext.fly(m.cells[o]).removeCls(n.lastCls);Ext.fly(m.cells[a]).addCls(n.lastCls)}}}if(l){for(e=0;e<d;e++){l.appendChild(m.cells[a])}m.insertBefore(l,m.cells[c]||null)}else{m.insertBefore(m.cells[a],m.cells[c]||null)}}n.setNewTemplate()}},scrollToTop:Ext.emptyFn,addElListener:function(a,c,b){this.mon(this,a,c,b,{element:"el"})},getGridColumns:function(){return this.headerCt.getGridColumns()},getHeaderAtIndex:function(a){return this.headerCt.getHeaderAtIndex(a)},getCell:function(a,b){var c=this.getNode(a);return Ext.fly(c).down(b.getCellSelector())},getFeature:function(b){var a=this.featuresMC;if(a){return a.get(b)}},initFeatures:function(d){var g=this,c,e,b,a;g.featuresMC=new Ext.util.MixedCollection();e=g.features=g.constructFeatures();a=e?e.length:0;for(c=0;c<a;c++){b=e[c];b.view=g;b.grid=d;g.featuresMC.add(b);b.init()}},constructFeatures:function(){var g=this,e=g.features,d,b,c=0,a;if(e){b=[];a=e.length;for(;c<a;c++){d=e[c];if(!d.isFeature){d=Ext.create("feature."+d.ftype,d)}b[c]=d}}return b},attachEventsForFeatures:function(){var b=this.features,c=b.length,a=0;for(;a<c;a++){if(b[a].isFeature){b[a].attachEvents()}}},afterRender:function(){var a=this;a.callParent();if(!a.enableTextSelection){a.el.unselectable()}a.attachEventsForFeatures()},onViewScroll:function(b,a){this.callParent(arguments);this.fireEvent("bodyscroll",b,a)},prepareData:function(b,h,d){var g=this,k=g.headerCt.prepareData(b,h,d,g,g.ownerCt),a=g.features,e=a.length,c=0,j;for(;c<e;c++){j=a[c];if(j.isFeature){Ext.apply(k,j.getAdditionalData(b,h,d,k,g))}}return k},collectData:function(d,q){var n=this,s=n.callParent(arguments),c=n.headerCt,p=c.getFullWidth(),b=n.features,l=b.length,a={rows:s,fullWidth:p},h=0,t,g=0,m,k,e,r;m=s.length;if(n.getRowClass){for(;g<m;g++){k={};e=s[g];r=e.rowCls||"";e.rowCls=this.getRowClass(d[g],g,k,n.store)+" "+r}}for(;h<l;h++){t=b[h];if(t.isFeature&&t.collectData&&!t.disabled){a=t.collectData(d,s,q,p,a);break}}return a},refreshSize:function(){var b=this,a;b.table.attach(b.el.child("table",true));if(!b.hasLoadingHeight){a=b.up("tablepanel");Ext.suspendLayouts();b.callParent();if(a&&Ext.getScrollbarSize().width&&(b.autoScroll||b.overflowY)){a.updateLayout()}Ext.resumeLayouts(true)}},setNewTemplate:function(){var b=this,a=b.headerCt.getColumnsForTpl(true);b.tpl=b.getTableChunker().getTableTpl({rowCount:b.store.getCount(),columns:a,features:b.features,enableTextSelection:b.enableTextSelection})},getTableChunker:function(){return this.chunker||Ext.view.TableChunker},addRowCls:function(b,a){var c=this.getNode(b);if(c){Ext.fly(c).addCls(a)}},removeRowCls:function(b,a){var c=this.getNode(b);if(c){Ext.fly(c).removeCls(a)}},onRowSelect:function(a){this.addRowCls(a,this.selectedItemCls)},onRowDeselect:function(b){var a=this;a.removeRowCls(b,a.selectedItemCls);a.removeRowCls(b,a.focusedItemCls)},onCellSelect:function(b){var a=this.getCellByPosition(b,true);if(a){Ext.fly(a).addCls(this.selectedCellCls)}},onCellDeselect:function(b){var a=this.getCellByPosition(b,true);if(a){Ext.fly(a).removeCls(this.selectedCellCls)}},onCellFocus:function(a){this.focusCell(a)},getCellByPosition:function(a,b){if(a){var c=this.getNode(a.row),d=this.headerCt.getHeaderAtIndex(a.column);if(d&&c){return Ext.fly(c).down(d.getCellSelector(),b)}}return false},onRowFocus:function(d,b,a){var c=this;if(b){c.addRowCls(d,c.focusedItemCls);if(!a){c.focusRow(d)}}else{c.removeRowCls(d,c.focusedItemCls)}},focusRow:function(b){var g=this,k=g.getNode(b),c=g.el,i=0,a=g.ownerCt,j,h,e,d;if(k&&c){h=c.getY();e=h+c.dom.clientHeight;j=Ext.fly(k).getRegion();if(j.top<h){i=j.top-h}else{if(j.bottom>e){i=j.bottom-e}}d=g.getRecord(k);b=g.store.indexOf(d);if(i){a.scrollByDeltaY(i)}g.fireEvent("rowfocus",d,k,b)}},focusCell:function(h){var j=this,k=j.getCellByPosition(h),b=j.el,d=0,e=0,c=b.getRegion(),a=j.ownerCt,i,g;c.bottom=c.top+b.dom.clientHeight;c.right=c.left+b.dom.clientWidth;if(k){i=k.getRegion();if(i.top<c.top){d=i.top-c.top}else{if(i.bottom>c.bottom){d=i.bottom-c.bottom}}if(i.left<c.left){e=i.left-c.left}else{if(i.right>c.right){e=i.right-c.right}}if(d){a.scrollByDeltaY(d)}if(e){a.scrollByDeltaX(e)}b.focus();j.fireEvent("cellfocus",g,k,h)}},scrollByDelta:function(c,b){b=b||"scrollTop";var a=this.el.dom;a[b]=(a[b]+=c)},onUpdate:function(g,e,k,p){var v=this,j,d,l,s,r,u,q,b,c,w,t,r,a,n,m,h,o=v.editingPlugin&&v.editingPlugin.editing;if(v.viewReady){j=v.store.indexOf(e);a=v.headerCt.getGridColumns();n=v.overItemCls;if(a.length&&j>-1){d=v.bufferRender([e],j)[0];q=v.all.item(j);if(q){b=q.dom;m=q.hasCls(n);if(b.mergeAttributes){b.mergeAttributes(d,true)}else{l=d.attributes;s=l.length;for(r=0;r<s;r++){u=l[r].name;if(u!=="id"){b.setAttribute(u,l[r].value)}}}if(m){q.addCls(n)}c=q.query(v.cellSelector);w=Ext.fly(d).query(v.cellSelector);t=w.length;h=c[0].parentNode;for(r=0;r<t;r++){if(v.shouldUpdateCell(a[r],p)){if(o){Ext.fly(c[r]).syncContent(w[r])}else{h.insertBefore(w[r],c[r]);h.removeChild(c[r])}}}}v.fireEvent("itemupdate",e,j,d)}}},shouldUpdateCell:function(b,a){if(b.hasCustomRenderer){return true}return !a||Ext.Array.contains(a,b.dataIndex)},refresh:function(){var a=this;a.setNewTemplate();a.callParent(arguments);a.doStripeRows(0);a.headerCt.setSortState()},clearViewEl:function(){this.callParent();delete this.table.dom},processItemEvent:function(b,m,j,d){var h=this,k=d.getTarget(h.cellSelector,m),i=k?k.cellIndex:-1,a=h.statics().EventMap,c=h.getSelectionModel(),g=d.type,l;if(g=="keydown"&&!k&&c.getCurrentPosition){k=h.getCellByPosition(c.getCurrentPosition());if(k){k=k.dom;i=k.cellIndex}}l=h.fireEvent("uievent",g,h,k,j,i,d,b,m);if(l===false||h.callParent(arguments)===false){return false}if(g=="mouseover"||g=="mouseout"){return true}if(!k){return true}return !((h["onBeforeCell"+a[g]](k,i,b,m,j,d)===false)||(h.fireEvent("beforecell"+g,h,k,i,b,m,j,d)===false)||(h["onCell"+a[g]](k,i,b,m,j,d)===false)||(h.fireEvent("cell"+g,h,k,i,b,m,j,d)===false))},processSpecialEvent:function(k){var n=this,b=n.statics().EventMap,d=n.features,m=d.length,o=k.type,g,p,h,j,c,l,a=n.ownerCt;n.callParent(arguments);if(o=="mouseover"||o=="mouseout"){return}for(g=0;g<m;g++){p=d[g];if(p.hasFeatureEvent){j=k.getTarget(p.eventSelector,n.getTargetEl());if(j){h=p.eventPrefix;c=p.getFireEventArgs("before"+h+o,n,j,k);l=p.getFireEventArgs(h+o,n,j,k);if((n.fireEvent.apply(n,c)===false)||(a.fireEvent.apply(a,c)===false)||(n.fireEvent.apply(n,l)===false)||(a.fireEvent.apply(a,l)===false)){return false}}}}return true},onCellMouseDown:Ext.emptyFn,onCellMouseUp:Ext.emptyFn,onCellClick:Ext.emptyFn,onCellDblClick:Ext.emptyFn,onCellContextMenu:Ext.emptyFn,onCellKeyDown:Ext.emptyFn,onBeforeCellMouseDown:Ext.emptyFn,onBeforeCellMouseUp:Ext.emptyFn,onBeforeCellClick:Ext.emptyFn,onBeforeCellDblClick:Ext.emptyFn,onBeforeCellContextMenu:Ext.emptyFn,onBeforeCellKeyDown:Ext.emptyFn,expandToFit:function(b){if(b){var a=this.getMaxContentWidth(b);delete b.flex;b.setWidth(a)}},getMaxContentWidth:function(h){var a=h.getCellInnerSelector(),c=this.el.query(a),d=0,g=c.length,e=h.el.dom.scrollWidth,b;for(;d<g;d++){b=c[d].scrollWidth;if(b>e){e=b}}return e},getPositionByEvent:function(g){var d=this,b=g.getTarget(d.cellSelector),c=g.getTarget(d.itemSelector),a=d.getRecord(c),h=d.getHeaderByCell(b);return d.getPosition(a,h)},getHeaderByCell:function(b){if(b){var a=b.className.match(this.cellRe);if(a&&a[1]){return Ext.getCmp(a[1])}}return false},walkCells:function(l,m,h,n,a,o){if(!l){return}var j=this,p=l.row,d=l.column,k=j.store.getCount(),g=j.getFirstVisibleColumnIndex(),b=j.getLastVisibleColumnIndex(),i={row:p,column:d},c=j.headerCt.getHeaderAtIndex(d);if(!c||c.hidden){return false}h=h||{};m=m.toLowerCase();switch(m){case"right":if(d===b){if(n||p===k-1){return false}if(!h.ctrlKey){i.row=p+1;i.column=g}}else{if(!h.ctrlKey){i.column=d+j.getRightGap(c)}else{i.column=b}}break;case"left":if(d===g){if(n||p===0){return false}if(!h.ctrlKey){i.row=p-1;i.column=b}}else{if(!h.ctrlKey){i.column=d+j.getLeftGap(c)}else{i.column=g}}break;case"up":if(p===0){return false}else{if(!h.ctrlKey){i.row=p-1}else{i.row=0}}break;case"down":if(p===k-1){return false}else{if(!h.ctrlKey){i.row=p+1}else{i.row=k-1}}break}if(a&&a.call(o||window,i)!==true){return false}else{return i}},getFirstVisibleColumnIndex:function(){var a=this.getHeaderCt().getVisibleGridColumns()[0];return a?a.getIndex():-1},getLastVisibleColumnIndex:function(){var b=this.getHeaderCt().getVisibleGridColumns(),a=b[b.length-1];return a.getIndex()},getHeaderCt:function(){return this.headerCt},getPosition:function(a,e){var d=this,b=d.store,c=d.headerCt.getGridColumns();return{row:b.indexOf(a),column:Ext.Array.indexOf(c,e)}},getRightGap:function(a){var g=this.getHeaderCt(),e=g.getGridColumns(),b=Ext.Array.indexOf(e,a),c=b+1,d;for(;c<=e.length;c++){if(!e[c].hidden){d=c;break}}return d-b},beforeDestroy:function(){if(this.rendered){this.el.removeAllListeners()}this.callParent(arguments)},getLeftGap:function(a){var g=this.getHeaderCt(),e=g.getGridColumns(),c=Ext.Array.indexOf(e,a),d=c-1,b;for(;d>=0;d--){if(!e[d].hidden){b=d;break}}return b-c},onAdd:function(c,a,b){this.callParent(arguments);this.doStripeRows(b)},onRemove:function(c,a,b){this.callParent(arguments);this.doStripeRows(b)},doStripeRows:function(b,a){var d=this,e,h,c,g;if(d.rendered&&d.stripeRows){e=d.getNodes(b,a);for(c=0,h=e.length;c<h;c++){g=e[c];g.className=g.className.replace(d.rowClsRe," ");b++;if(b%2===0){g.className+=(" "+d.altRowCls)}}}}});Ext.define("Ext.grid.Lockable",{requires:["Ext.grid.LockingView","Ext.view.Table"],syncRowHeight:true,headerCounter:0,scrollDelta:40,unlockText:"Unlock",lockText:"Lock",determineXTypeToCreate:function(){var c=this,g,d,b,e,a;if(c.subGridXType){g=c.subGridXType}else{d=this.getXTypes().split("/");b=d.length;e=d[b-1];a=d[b-2];if(a!=="tablepanel"){g=a}else{g=e}}return g},injectLockable:function(){this.lockable=true;this.hasView=true;var t=this,b=Ext.getScrollbarSize().width===0,d=t.store=Ext.StoreManager.lookup(t.store),c=t.determineXTypeToCreate(),j=t.getSelectionModel(),l,p,q,o,s,h,m,n,a,e,r,g,u,k;l=t.constructFeatures();t.cloneFeatures();p=t.constructFeatures();q=t.constructPlugins();t.clonePlugins();o=t.constructPlugins();delete t.features;delete t.plugins;for(m=0,n=(l?l.length:0);m<n;m++){l[m].lockingPartner=p[m];p[m].lockingPartner=l[m]}s=Ext.apply({xtype:c,store:d,scrollerOwner:false,enableAnimations:false,scroll:b?"vertical":false,selModel:j,border:false,cls:Ext.baseCSSPrefix+"grid-inner-locked",isLayoutRoot:function(){return false},features:l,plugins:q},t.lockedGridConfig);h=Ext.apply({xtype:c,store:d,scrollerOwner:false,enableAnimations:false,selModel:j,border:false,isLayoutRoot:function(){return false},features:p,plugins:o},t.normalGridConfig);t.addCls(Ext.baseCSSPrefix+"grid-locked");Ext.copyTo(h,t,t.bothCfgCopy);Ext.copyTo(s,t,t.bothCfgCopy);Ext.copyTo(h,t,t.normalCfgCopy);Ext.copyTo(s,t,t.lockedCfgCopy);for(m=0;m<t.normalCfgCopy.length;m++){delete t[t.normalCfgCopy[m]]}for(m=0;m<t.lockedCfgCopy.length;m++){delete t[t.lockedCfgCopy[m]]}t.addEvents("lockcolumn","unlockcolumn");t.addStateEvents(["lockcolumn","unlockcolumn"]);t.lockedHeights=[];t.normalHeights=[];a=t.processColumns(t.columns);s.width=a.lockedWidth+Ext.num(j.headerWidth,0);s.columns=a.locked;h.columns=a.normal;h.flex=1;s.viewConfig=t.lockedViewConfig||{};s.viewConfig.loadingUseMsg=false;h.viewConfig=t.normalViewConfig||{};Ext.applyIf(s.viewConfig,t.viewConfig);Ext.applyIf(h.viewConfig,t.viewConfig);t.lockedGrid=Ext.ComponentManager.create(s);g=t.lockedGrid.getView();h.viewConfig.lockingPartner=g;t.normalGrid=Ext.ComponentManager.create(h);u=t.normalGrid.getView();t.view=new Ext.grid.LockingView({locked:t.lockedGrid,normal:t.normalGrid,panel:t});k={scroll:{fn:t.onLockedViewScroll,element:"el",scope:t}};if(!b){k.mousewheel={fn:t.onLockedViewMouseWheel,element:"el",scope:t}}if(t.syncRowHeight){k.refresh=t.onLockedViewRefresh;k.itemupdate=t.onLockedViewItemUpdate;k.scope=t}g.on(k);k={scroll:{fn:t.onNormalViewScroll,element:"el",scope:t},refresh:t.syncRowHeight?t.onNormalViewRefresh:t.updateSpacer,scope:t};u.on(k);e=t.lockedGrid.headerCt;r=t.normalGrid.headerCt;e.lockedCt=true;e.lockableInjected=true;r.lockableInjected=true;e.on({columnshow:t.onLockedHeaderShow,columnhide:t.onLockedHeaderHide,columnmove:t.onLockedHeaderMove,sortchange:t.onLockedHeaderSortChange,columnresize:t.onLockedHeaderResize,scope:t});r.on({columnmove:t.onNormalHeaderMove,sortchange:t.onNormalHeaderSortChange,scope:t});t.modifyHeaderCt();t.items=[t.lockedGrid,t.normalGrid];t.relayHeaderCtEvents(e);t.relayHeaderCtEvents(r);t.layout={type:"hbox",align:"stretch"}},processColumns:function(g){var e=0,a=g.length,b=0,d=[],c=[],h;for(;e<a;++e){h=g[e];if(!h.isComponent){h=Ext.apply({},g[e])}h.processed=true;if(h.locked){if(!h.hidden){b+=h.width||Ext.grid.header.Container.prototype.defaultWidth}d.push(h)}else{c.push(h)}if(!h.headerId){h.headerId=(h.initialConfig||h).id||("L"+(++this.headerCounter))}}return{lockedWidth:b,locked:{items:d,itemId:"lockedHeaderCt",stretchMaxPartner:"^^>>#normalHeaderCt"},normal:{items:c,itemId:"normalHeaderCt",stretchMaxPartner:"^^>>#lockedHeaderCt"}}},onLockedViewMouseWheel:function(i){var d=this,h=-d.scrollDelta,a=h*i.getWheelDeltas().y,b=d.lockedGrid.getView().el.dom,c,g;if(b){c=b.scrollTop!==b.scrollHeight-b.clientHeight;g=b.scrollTop!==0}if((a<0&&g)||(a>0&&c)){i.stopEvent();d.scrolling=true;b.scrollTop+=a;d.normalGrid.getView().el.dom.scrollTop=b.scrollTop;d.scrolling=false;d.onNormalViewScroll()}},onLockedViewScroll:function(){var e=this,d=e.lockedGrid.getView(),c=e.normalGrid.getView(),a,b;if(!e.scrolling){e.scrolling=true;c.el.dom.scrollTop=d.el.dom.scrollTop;if(e.store.buffered){b=d.el.child("table",true);a=c.el.child("table",true);b.style.position="absolute"}e.scrolling=false}},onNormalViewScroll:function(){var e=this,d=e.lockedGrid.getView(),c=e.normalGrid.getView(),a,b;if(!e.scrolling){e.scrolling=true;d.el.dom.scrollTop=c.el.dom.scrollTop;if(e.store.buffered){b=d.el.child("table",true);a=c.el.child("table",true);b.style.position="absolute";b.style.top=a.style.top}e.scrolling=false}},onLockedHeaderMove:function(){if(this.syncRowHeight){this.onNormalViewRefresh()}},onNormalHeaderMove:function(){if(this.syncRowHeight){this.onLockedViewRefresh()}},updateSpacer:function(){var d=this,b=d.lockedGrid.getView().el,c=d.normalGrid.getView().el.dom,a=b.dom.id+"-spacer",e=(c.offsetHeight-c.clientHeight)+"px";d.spacerEl=Ext.getDom(a);if(d.spacerEl){d.spacerEl.style.height=e}else{Ext.core.DomHelper.append(b,{id:a,style:"height: "+e})}},onLockedViewRefresh:function(){if(this.normalGrid.headerCt.getGridColumns().length){var e=this,a=e.lockedGrid.getView(),c=a.el,g=c.query(a.getItemSelector()),d=g.length,b=0;e.lockedHeights=[];for(;b<d;b++){e.lockedHeights[b]=g[b].offsetHeight}e.syncRowHeights();e.updateSpacer()}},onNormalViewRefresh:function(){if(this.lockedGrid.headerCt.getGridColumns().length){var e=this,a=e.normalGrid.getView(),c=a.el,g=c.query(a.getItemSelector()),d=g.length,b=0;e.normalHeights=[];for(;b<d;b++){e.normalHeights[b]=g[b].offsetHeight}e.syncRowHeights();e.updateSpacer()}},onLockedViewItemUpdate:function(a,b,c){if(this.normalGrid.headerCt.getGridColumns().length){this.lockedHeights[b]=c.offsetHeight;this.syncRowHeights()}},onNormalViewItemUpdate:function(a,b,c){if(this.lockedGrid.headerCt.getGridColumns().length){this.normalHeights[b]=c.offsetHeight;this.syncRowHeights()}},syncRowHeights:function(){var j=this,a=j.lockedHeights,k=j.normalHeights,h=a.length,e=0,l,c,d,g,b;if(a.length&&k.length){l=j.lockedGrid.getView();c=j.normalGrid.getView();d=l.el.query(l.getItemSelector());g=c.el.query(c.getItemSelector());for(;e<h;e++){if(!isNaN(a[e])&&!isNaN(k[e])){if(a[e]>k[e]){Ext.fly(g[e]).setHeight(a[e])}else{if(a[e]<k[e]){Ext.fly(d[e]).setHeight(k[e])}}}}b=c.el.dom.scrollTop;c.el.dom.scrollTop=b;l.el.dom.scrollTop=b;j.lockedHeights=[];j.normalHeights=[]}},modifyHeaderCt:function(){var a=this;a.lockedGrid.headerCt.getMenuItems=a.getMenuItems(a.lockedGrid.headerCt.getMenuItems,true);a.normalGrid.headerCt.getMenuItems=a.getMenuItems(a.normalGrid.headerCt.getMenuItems,false)},onUnlockMenuClick:function(){this.unlock()},onLockMenuClick:function(){this.lock()},getMenuItems:function(g,c){var h=this,i=h.unlockText,a=h.lockText,j=Ext.baseCSSPrefix+"hmenu-unlock",b=Ext.baseCSSPrefix+"hmenu-lock",e=Ext.Function.bind(h.onUnlockMenuClick,h),d=Ext.Function.bind(h.onLockMenuClick,h);return function(){var k=g.call(this);k.push("-",{cls:j,text:i,handler:e,disabled:!c});k.push({cls:b,text:a,handler:d,disabled:c});return k}},lock:function(a,d){var c=this,e=c.normalGrid,h=c.lockedGrid,g=e.headerCt,b=h.headerCt;a=a||g.getMenu().activeHeader;if(a.flex){a.width=a.getWidth();delete a.flex}Ext.suspendLayouts();a.ownerCt.remove(a,false);a.locked=true;if(Ext.isDefined(d)){b.insert(d,a)}else{b.add(a)}c.syncLockedSection();Ext.resumeLayouts(true);c.updateSpacer();c.fireEvent("lockcolumn",c,a)},syncLockedSection:function(){var a=this;a.syncLockedWidth();a.lockedGrid.getView().refresh();a.normalGrid.getView().refresh()},syncLockedWidth:function(){var c=this,a=c.lockedGrid,b=a.headerCt.getFullWidth(true);Ext.suspendLayouts();if(b>0){a.setWidth(b);a.show()}else{a.hide()}Ext.resumeLayouts(true);return b>0},onLockedHeaderResize:function(){this.syncLockedWidth()},onLockedHeaderHide:function(){this.syncLockedWidth()},onLockedHeaderShow:function(){this.syncLockedWidth()},onLockedHeaderSortChange:function(b,c,a){if(a){this.normalGrid.headerCt.clearOtherSortStates(null,true)}},onNormalHeaderSortChange:function(b,c,a){if(a){this.lockedGrid.headerCt.clearOtherSortStates(null,true)}},unlock:function(a,e){var d=this,g=d.normalGrid,i=d.lockedGrid,h=g.headerCt,c=i.headerCt,b=false;if(!Ext.isDefined(e)){e=0}a=a||c.getMenu().activeHeader;Ext.suspendLayouts();a.ownerCt.remove(a,false);if(d.syncLockedWidth()){b=true}a.locked=false;h.insert(e,a);d.normalGrid.getView().refresh();if(b){d.lockedGrid.getView().refresh()}Ext.resumeLayouts(true);d.fireEvent("unlockcolumn",d,a)},applyColumnsState:function(h){var p=this,e=p.lockedGrid,g=e.headerCt,n=p.normalGrid.headerCt,q=Ext.Array.toMap(g.items,"headerId"),j=Ext.Array.toMap(n.items,"headerId"),m=[],o=[],l=1,b=h.length,k,a,d,c;for(k=0;k<b;k++){c=h[k];d=q[c.id];a=d||j[c.id];if(a){if(a.applyColumnState){a.applyColumnState(c)}if(a.locked===undefined){a.locked=!!d}if(a.locked){m.push(a);if(!a.hidden&&typeof a.width=="number"){l+=a.width}}else{o.push(a)}}}if(m.length+o.length==g.items.getCount()+n.items.getCount()){g.removeAll(false);n.removeAll(false);g.add(m);n.add(o);e.setWidth(l)}},getColumnsState:function(){var b=this,a=b.lockedGrid.headerCt.getColumnsState(),c=b.normalGrid.headerCt.getColumnsState();return a.concat(c)},reconfigureLockable:function(a,b){var c=this,e=c.lockedGrid,d=c.normalGrid;if(b){Ext.suspendLayouts();e.headerCt.removeAll();d.headerCt.removeAll();b=c.processColumns(b);e.setWidth(b.lockedWidth);e.headerCt.add(b.locked.items);d.headerCt.add(b.normal.items);Ext.resumeLayouts(true)}if(a){a=Ext.data.StoreManager.lookup(a);c.store=a;e.bindStore(a);d.bindStore(a)}else{e.getView().refresh();d.getView().refresh()}},cloneFeatures:function(){var e=this,d=e.features,c,b=0,a;if(d){a=d.length;for(;b<a;b++){c=d[b];if(c.isFeature){d[b]=c.clone()}}}},clonePlugins:function(){var e=this,b=e.plugins,d,c=0,a;if(b){a=b.length;for(;c<a;c++){d=b[c];if(typeof d.init==="function"){b[c]=d.clone()}}}}},function(){this.borrow(Ext.view.Table,["constructFeatures"]);this.borrow(Ext.AbstractComponent,["constructPlugins","constructPlugin"])});Ext.define("Ext.grid.PagingScroller",{percentageFromEdge:0.35,numFromEdge:2,trailingBufferZone:5,leadingBufferZone:15,scrollToLoadBuffer:200,viewSize:0,rowHeight:21,tableStart:0,tableEnd:0,constructor:function(a){var b=this;b.variableRowHeight=a.variableRowHeight;b.bindView(a.view);Ext.apply(b,a);b.callParent(arguments)},bindView:function(b){var g=this,d={scroll:{fn:g.onViewScroll,element:"el",scope:g},render:g.onViewRender,resize:g.onViewResize,boxready:{fn:g.onViewResize,scope:g,single:true},beforerefresh:g.beforeViewRefresh,refresh:g.onViewRefresh,scope:g},a={guaranteedrange:g.onGuaranteedRange,scope:g},c={reconfigure:g.onGridReconfigure,scope:g},e;if(g.view){if(g.view.el){g.view.el.un("scroll",g.onViewScroll,g)}e=b.lockingPartner;if(e){e.un("refresh",g.onLockRefresh,g)}g.view.un(d);g.store.un(a);if(g.grid){g.grid.un(c)}delete g.view.refreshSize}g.view=b;g.grid=g.view.up("tablepanel");g.store=b.store;if(b.rendered){g.viewSize=g.store.viewSize=Math.ceil(b.getHeight()/g.rowHeight)+g.trailingBufferZone+(g.numFromEdge*2)+g.leadingBufferZone}e=b.lockingPartner;if(e){e.on("refresh",g.onLockRefresh,g)}g.view.mon(g.store.pageMap,{scope:g,clear:g.onCacheClear});g.view.refreshSize=Ext.Function.createInterceptor(g.view.refreshSize,g.beforeViewrefreshSize,g);g.position=0;if(g.grid){g.grid.on(c)}else{g.view.on({added:function(){g.grid=g.view.up("tablepanel");g.grid.on(c)},single:true})}g.view.on(g.viewListeners=d);g.store.on(a)},onCacheClear:function(){var a=this;if(a.view.rendered&&!a.store.isDestroyed){a.ignoreNextScrollEvent=a.view.el.dom.scrollTop!==0;a.view.el.dom.scrollTop=0;delete a.lastScrollDirection;delete a.scrollOffset;delete a.scrollProportion}},onGridReconfigure:function(a){this.bindView(a.view)},onViewRender:function(){var d=this,a=d.view,c=d.view.el,b;d.stretcher=d.createStretcher(a);a=a.lockingPartner;if(a){b=d.stretcher;d.stretcher=new Ext.CompositeElement(b);d.stretcher.add(d.createStretcher(a))}},createStretcher:function(a){var b=a.el;b.setStyle("position","relative");return b.createChild({style:{position:"absolute",width:"1px",height:0,top:0,left:0}},b.dom.firstChild)},onViewResize:function(b,d,a){var e=this,c;c=Math.ceil(a/e.rowHeight)+e.trailingBufferZone+(e.numFromEdge*2)+e.leadingBufferZone;if(c>e.viewSize){e.viewSize=e.store.viewSize=c;e.handleViewScroll(e.lastScrollDirection||1)}},beforeViewRefresh:function(){var b=this,a=b.view,c,d;b.focusOnRefresh=Ext.Element.getActiveElement===a.el.dom;if(b.variableRowHeight){d=b.lastScrollDirection;b.commonRecordIndex=undefined;if(d&&(b.previousStart!==undefined)&&(b.scrollProportion===undefined)&&(c=a.getNodes()).length){if(d===1){if(b.tableStart<=b.previousEnd){b.commonRecordIndex=c.length-1}}else{if(d===-1){if(b.tableEnd>=b.previousStart){b.commonRecordIndex=0}}}b.scrollOffset=-a.el.getOffsetsTo(c[b.commonRecordIndex])[1];b.commonRecordIndex-=(b.tableStart-b.previousStart)}else{b.scrollOffset=undefined}}},onLockRefresh:function(a){a.table.dom.style.position="absolute"},onViewRefresh:function(){var d=this,g=d.store,c,e=d.view,j=e.el,k=j.dom,m,i,b,l=e.table.dom,h,a;if(d.focusOnRefresh){j.focus();d.focusOnRefresh=false}d.disabled=true;if(g.getCount()===g.getTotalCount()||(g.isFiltered()&&!g.remoteFilter)){d.stretcher.setHeight(0);d.position=k.scrollTop=0;d.setTablePosition("absolute");return}d.stretcher.setHeight(c=d.getScrollHeight());a=k.scrollTop;d.isScrollRefresh=(a>0);if(d.scrollProportion!==undefined){d.setTablePosition("absolute");d.setTableTop((d.scrollProportion?(c*d.scrollProportion)-(l.offsetHeight*d.scrollProportion):0)+"px")}else{d.setTablePosition("absolute");d.setTableTop((h=(d.tableStart||0)*d.rowHeight)+"px");if(d.scrollOffset){m=e.getNodes();i=-j.getOffsetsTo(m[d.commonRecordIndex])[1];b=i-d.scrollOffset;d.position=(k.scrollTop+=b)}else{if((h>a)||((h+l.offsetHeight)<a+k.clientHeight)){d.lastScrollDirection=-1;d.position=k.scrollTop=h}}}d.disabled=false},setTablePosition:function(a){this.setViewTableStyle(this.view,"position",a)},setTableTop:function(a){this.setViewTableStyle(this.view,"top",a)},setViewTableStyle:function(a,c,b){a.el.child("table",true).style[c]=b;a=a.lockingPartner;if(a){a.el.child("table",true).style[c]=b}},beforeViewrefreshSize:function(){if(this.isScrollRefresh){this.view.table.attach(this.view.el.child("table",true));return(this.isScrollRefresh=false)}},onGuaranteedRange:function(b,e,a){var c=this,d=c.store;if(b.length&&c.visibleStart<b[0].index){return}c.previousStart=c.tableStart;c.previousEnd=c.tableEnd;c.tableStart=e;c.tableEnd=a;d.loadRecords(b,{start:e})},onViewScroll:function(g,c){var d=this,a=d.view,b=d.position;d.position=a.el.dom.scrollTop;if(d.ignoreNextScrollEvent){d.ignoreNextScrollEvent=false;return}if(!d.disabled){d.lastScrollDirection=d.position>b?1:-1;if(b!==d.position){d.handleViewScroll(d.lastScrollDirection)}}},handleViewScroll:function(i){var e=this,k=e.store,h=e.view,g=e.viewSize,l=k.getTotalCount(),d=l-g,c=e.getFirstVisibleRowIndex(),j=e.getLastVisibleRowIndex(),a=h.el.dom,b,m;if(l>=g){e.scrollProportion=undefined;if(i==-1){if(e.tableStart){if(c!==undefined){if(c<(e.tableStart+e.numFromEdge)){b=Math.max(0,j+e.trailingBufferZone-g)}}else{e.scrollProportion=a.scrollTop/(a.scrollHeight-a.clientHeight);b=Math.max(0,l*e.scrollProportion-(g/2)-e.numFromEdge-((e.leadingBufferZone+e.trailingBufferZone)/2))}}}else{if(c!==undefined){if(j>(e.tableEnd-e.numFromEdge)){b=Math.max(0,c-e.trailingBufferZone)}}else{e.scrollProportion=a.scrollTop/(a.scrollHeight-a.clientHeight);b=l*e.scrollProportion-(g/2)-e.numFromEdge-((e.leadingBufferZone+e.trailingBufferZone)/2)}}if(b!==undefined){if(b>d){b=d&~1;m=l-1}else{b=b&~1;m=b+g-1}if(k.rangeCached(b,m)){e.cancelLoad();k.guaranteeRange(b,m)}else{e.attemptLoad(b,m)}}}},getFirstVisibleRowIndex:function(){var d=this,a=d.view,h=a.el.dom.scrollTop,e,c,b,g;if(d.variableRowHeight){e=a.getNodes();c=e.length;if(!c){return}g=Ext.fly(e[0]).getOffsetsTo(a.el)[1];for(b=0;b<c;b++){g+=e[b].offsetHeight;if(g>a.el.dom.clientHeight){return}if(g>0){return a.getRecord(e[b]).index}}}else{return Math.floor(h/d.rowHeight)}},getLastVisibleRowIndex:function(){var h=this,c=h.store,a=h.view,b=a.el.dom.clientHeight,j,g,e,d;if(h.variableRowHeight){j=a.getNodes();if(!j.length){return}g=c.getCount()-1;d=Ext.fly(j[g]).getOffsetsTo(a.el)[1]+j[g].offsetHeight;for(e=g;e>=0;e--){d-=j[e].offsetHeight;if(d<0){return}if(d<b){return a.getRecord(j[e]).index}}}else{return h.getFirstVisibleRowIndex()+Math.ceil(b/h.rowHeight)+1}},getScrollHeight:function(){var e=this,a=e.view,d,h,b=e.store,g=0,c=!e.hasOwnProperty("rowHeight");if(e.variableRowHeight){d=e.view.table.dom;if(c){e.initialTableHeight=d.offsetHeight;e.rowHeight=e.initialTableHeight/e.store.getCount()}else{g=d.offsetHeight-e.initialTableHeight;if(b.getCount()>e.viewSize){g-=e.rowHeight}}}else{if(c){h=a.el.down(a.getItemSelector());if(h){e.rowHeight=h.getHeight(false,true)}}}return Math.floor(b.getTotalCount()*e.rowHeight)+g},attemptLoad:function(c,a){var b=this;if(b.scrollToLoadBuffer){if(!b.loadTask){b.loadTask=new Ext.util.DelayedTask(b.doAttemptLoad,b,[])}b.loadTask.delay(b.scrollToLoadBuffer,b.doAttemptLoad,b,[c,a])}else{b.store.guaranteeRange(c,a)}},cancelLoad:function(){if(this.loadTask){this.loadTask.cancel()}},doAttemptLoad:function(b,a){this.store.guaranteeRange(b,a)},destroy:function(){var b=this,a=b.viewListeners.scroll;b.store.un({guaranteedrange:b.onGuaranteedRange,scope:b});b.view.un(b.viewListeners);if(b.view.rendered){b.stretcher.remove();b.view.el.un("scroll",a.fn,a.scope)}}});Ext.define("Ext.layout.container.Fit",{extend:"Ext.layout.container.Container",alternateClassName:"Ext.layout.FitLayout",alias:"layout.fit",itemCls:Ext.baseCSSPrefix+"fit-item",targetCls:Ext.baseCSSPrefix+"layout-fit",type:"fit",defaultMargins:{top:0,right:0,bottom:0,left:0},manageMargins:true,sizePolicies:{0:{setsWidth:0,setsHeight:0},1:{setsWidth:1,setsHeight:0},2:{setsWidth:0,setsHeight:1},3:{setsWidth:1,setsHeight:1}},getItemSizePolicy:function(b,c){var a=c||this.owner.getSizeModel(),d=(a.width.shrinkWrap?0:1)|(a.height.shrinkWrap?0:2);return this.sizePolicies[d]},beginLayoutCycle:function(k,g){var t=this,u=t.lastHeightModel&&t.lastHeightModel.calculated,h=t.lastWidthModel&&t.lastWidthModel.calculated,o=h||u,l=0,m=0,s,b,p,r,e,a,j,n,q,d;t.callParent(arguments);if(o&&k.targetContext.el.dom.tagName.toUpperCase()!="TD"){o=h=u=false}b=k.childItems;e=b.length;for(p=0;p<e;++p){r=b[p];if(g){s=r.target;j=s.minHeight;n=s.minWidth;if(n||j){a=r.marginInfo||r.getMarginInfo();j+=a.height;n+=a.height;if(l<j){l=j}if(m<n){m=n}}}if(o){q=r.el.dom.style;if(u){q.height=""}if(h){q.width=""}}}if(g){k.maxChildMinHeight=l;k.maxChildMinWidth=m}s=k.target;k.overflowX=(!k.widthModel.shrinkWrap&&k.maxChildMinWidth&&(s.autoScroll||s.overflowX))||d;k.overflowY=(!k.heightModel.shrinkWrap&&k.maxChildMinHeight&&(s.autoScroll||s.overflowY))||d},calculate:function(g){var o=this,l=g.childItems,d=l.length,c=o.getContainerSize(g),e={length:d,ownerContext:g,targetSize:c},r=g.widthModel.shrinkWrap,m=g.heightModel.shrinkWrap,k=g.overflowX,h=g.overflowY,n,b,p,j,a,q;if(k||h){n=o.getScrollbarsNeeded(k&&c.width,h&&c.height,g.maxChildMinWidth,g.maxChildMinHeight);if(n){b=Ext.getScrollbarSize();if(n&1){c.height-=b.height}if(n&2){c.width-=b.width}}}for(j=0;j<d;++j){e.index=j;o.fitItem(l[j],e)}if(m||r){p=g.targetContext.getPaddingInfo();if(r){if(h&&!c.gotHeight){o.done=false}else{a=e.contentWidth+p.width;if(n&2){a+=b.width}if(!g.setContentWidth(a)){o.done=false}}}if(m){if(k&&!c.gotWidth){o.done=false}else{q=e.contentHeight+p.height;if(n&1){q+=b.height}if(!g.setContentHeight(q)){o.done=false}}}}},fitItem:function(b,c){var a=this;if(b.invalid){a.done=false;return}c.margins=b.getMarginInfo();c.needed=c.got=0;a.fitItemWidth(b,c);a.fitItemHeight(b,c);if(c.got!=c.needed){a.done=false}},fitItemWidth:function(c,d){var a,b;if(d.ownerContext.widthModel.shrinkWrap){b=c.getProp("width")+d.margins.width;a=d.contentWidth;if(a===undefined){d.contentWidth=b}else{d.contentWidth=Math.max(a,b)}}else{if(c.widthModel.calculated){++d.needed;if(d.targetSize.gotWidth){++d.got;this.setItemWidth(c,d)}}}this.positionItemX(c,d)},fitItemHeight:function(c,d){var b,a;if(d.ownerContext.heightModel.shrinkWrap){a=c.getProp("height")+d.margins.height;b=d.contentHeight;if(b===undefined){d.contentHeight=a}else{d.contentHeight=Math.max(b,a)}}else{if(c.heightModel.calculated){++d.needed;if(d.targetSize.gotHeight){++d.got;this.setItemHeight(c,d)}}}this.positionItemY(c,d)},positionItemX:function(a,c){var b=c.margins;if(c.index||b.left){a.setProp("x",b.left)}if(b.width){a.setProp("margin-right",b.width)}},positionItemY:function(a,c){var b=c.margins;if(c.index||b.top){a.setProp("y",b.top)}if(b.height){a.setProp("margin-bottom",b.height)}},setItemHeight:function(a,b){a.setHeight(b.targetSize.height-b.margins.height)},setItemWidth:function(a,b){a.setWidth(b.targetSize.width-b.margins.width)}});Ext.define("Ext.panel.Table",{extend:"Ext.panel.Panel",alias:"widget.tablepanel",uses:["Ext.selection.RowModel","Ext.selection.CellModel","Ext.selection.CheckboxModel","Ext.grid.PagingScroller","Ext.grid.header.Container","Ext.grid.Lockable"],extraBaseCls:Ext.baseCSSPrefix+"grid",extraBodyCls:Ext.baseCSSPrefix+"grid-body",layout:"fit",hasView:false,viewType:null,selType:"rowmodel",scroll:true,deferRowRender:true,sortableColumns:true,enableLocking:false,scrollerOwner:true,enableColumnMove:true,sealedColumns:false,enableColumnResize:true,enableColumnHide:true,rowLines:true,initComponent:function(){var h=this,k=h.scroll,b=false,a=false,g=h.columns||h.colModel,j,c=h.border,d,e;if(h.columnLines){h.addCls(Ext.baseCSSPrefix+"grid-with-col-lines")}if(h.rowLines){h.addCls(Ext.baseCSSPrefix+"grid-with-row-lines")}h.store=Ext.data.StoreManager.lookup(h.store||"ext-empty-store");if(g instanceof Ext.grid.header.Container){h.headerCt=g;h.headerCt.border=c;h.columns=h.headerCt.items.items}else{if(Ext.isArray(g)){g={items:g,border:c}}Ext.apply(g,{forceFit:h.forceFit,sortable:h.sortableColumns,enableColumnMove:h.enableColumnMove,enableColumnResize:h.enableColumnResize,enableColumnHide:h.enableColumnHide,border:c,sealed:h.sealedColumns});h.columns=g.items;if(h.enableLocking||Ext.ComponentQuery.query("{locked !== undefined}{processed != true}",h.columns).length){h.self.mixin("lockable",Ext.grid.Lockable);h.injectLockable()}}h.scrollTask=new Ext.util.DelayedTask(h.syncHorizontalScroll,h);h.addEvents("reconfigure","viewready");h.bodyCls=h.bodyCls||"";h.bodyCls+=(" "+h.extraBodyCls);h.cls=h.cls||"";h.cls+=(" "+h.extraBaseCls);delete h.autoScroll;if(!h.hasView){if(!h.headerCt){h.headerCt=new Ext.grid.header.Container(g)}h.columns=h.headerCt.items.items;if(h.store.buffered&&!h.store.remoteSort){for(d=0,e=h.columns.length;d<e;d++){h.columns[d].sortable=false}}if(h.hideHeaders){h.headerCt.height=0;h.headerCt.addCls(Ext.baseCSSPrefix+"grid-header-ct-hidden");h.addCls(Ext.baseCSSPrefix+"grid-header-hidden");if(Ext.isIEQuirks){h.headerCt.style={display:"none"}}}if(k===true||k==="both"){b=a=true}else{if(k==="horizontal"){a=true}else{if(k==="vertical"){b=true}}}h.relayHeaderCtEvents(h.headerCt);h.features=h.features||[];if(!Ext.isArray(h.features)){h.features=[h.features]}h.dockedItems=[].concat(h.dockedItems||[]);h.dockedItems.unshift(h.headerCt);h.viewConfig=h.viewConfig||{};if(h.store&&h.store.buffered){h.viewConfig.preserveScrollOnRefresh=true}else{if(h.invalidateScrollerOnRefresh!==undefined){h.viewConfig.preserveScrollOnRefresh=!h.invalidateScrollerOnRefresh}}j=h.getView();h.items=[j];h.hasView=true;if(b){if(h.store.buffered){h.verticalScroller=new Ext.grid.PagingScroller(Ext.apply({panel:h,store:h.store,view:h.view},h.verticalScroller))}}if(a){if(!h.hideHeaders){j.on({scroll:{fn:h.onHorizontalScroll,element:"el",scope:h}})}}h.mon(j.store,{load:h.onStoreLoad,scope:h});h.mon(j,{viewready:h.onViewReady,refresh:h.onRestoreHorzScroll,scope:h})}this.relayEvents(h.view,["beforeitemmousedown","beforeitemmouseup","beforeitemmouseenter","beforeitemmouseleave","beforeitemclick","beforeitemdblclick","beforeitemcontextmenu","itemmousedown","itemmouseup","itemmouseenter","itemmouseleave","itemclick","itemdblclick","itemcontextmenu","beforecontainermousedown","beforecontainermouseup","beforecontainermouseover","beforecontainermouseout","beforecontainerclick","beforecontainerdblclick","beforecontainercontextmenu","containermouseup","containermouseover","containermouseout","containerclick","containerdblclick","containercontextmenu","selectionchange","beforeselect","select","beforedeselect","deselect"]);h.callParent(arguments);h.addStateEvents(["columnresize","columnmove","columnhide","columnshow","sortchange"]);if(h.headerCt){h.headerCt.on("afterlayout",h.onRestoreHorzScroll,h)}},relayHeaderCtEvents:function(a){this.relayEvents(a,["columnresize","columnmove","columnhide","columnshow","sortchange"])},getState:function(){var a=this,b=a.callParent(),c=a.store.sorters.first();b=a.addPropertyToState(b,"columns",(a.headerCt||a).getColumnsState());if(c){b=a.addPropertyToState(b,"sort",{property:c.property,direction:c.direction,root:c.root})}return b},applyState:function(d){var c=this,e=d.sort,a=c.store,b=d.columns;delete d.columns;c.callParent(arguments);if(b){(c.headerCt||c).applyColumnsState(b)}if(e){if(a.remoteSort){a.sort({property:e.property,direction:e.direction,root:e.root},null,false)}else{a.sort(e.property,e.direction)}}},getStore:function(){return this.store},getView:function(){var a=this,b;if(!a.view){b=a.getSelectionModel();a.view=Ext.widget(Ext.apply({},a.viewConfig,{grid:a,deferInitialRefresh:a.deferRowRender!==false,scroll:a.scroll,xtype:a.viewType,store:a.store,headerCt:a.headerCt,selModel:b,features:a.features,panel:a,emptyText:a.emptyText?'<div class="'+Ext.baseCSSPrefix+'grid-empty">'+a.emptyText+"</div>":""}));a.view.getComponentLayout().headerCt=a.headerCt;a.mon(a.view,{uievent:a.processEvent,scope:a});b.view=a.view;a.headerCt.view=a.view;a.relayEvents(a.view,["cellclick","celldblclick"])}return a.view},setAutoScroll:Ext.emptyFn,processEvent:function(g,b,a,c,d,i){var h=this,j;if(d!==-1){j=h.headerCt.getGridColumns()[d];return j.processEvent.apply(j,arguments)}},determineScrollbars:function(){},invalidateScroller:function(){},scrollByDeltaY:function(b,a){this.getView().scrollBy(0,b,a)},scrollByDeltaX:function(b,a){this.getView().scrollBy(b,0,a)},afterCollapse:function(){var a=this;a.saveScrollPos();a.saveScrollPos();a.callParent(arguments)},afterExpand:function(){var a=this;a.callParent(arguments);a.restoreScrollPos();a.restoreScrollPos()},saveScrollPos:Ext.emptyFn,restoreScrollPos:Ext.emptyFn,onHeaderResize:function(){this.delayScroll()},onHeaderMove:function(e,g,a,b,d){var c=this;if(c.optimizedColumnMove===false){c.view.refresh()}else{c.view.moveColumn(b,d,a)}c.delayScroll()},onHeaderHide:function(a,b){this.delayScroll()},onHeaderShow:function(a,b){this.delayScroll()},delayScroll:function(){var a=this.getScrollTarget().el;if(a){this.scrollTask.delay(10,null,null,[a.dom.scrollLeft])}},onViewReady:function(){this.fireEvent("viewready",this)},onRestoreHorzScroll:function(){var a=this.scrollLeftPos;if(a){this.syncHorizontalScroll(a,true)}},getScrollerOwner:function(){var a=this;if(!this.scrollerOwner){a=this.up("[scrollerOwner]")}return a},getLhsMarker:function(){var a=this;return a.lhsMarker||(a.lhsMarker=Ext.DomHelper.append(a.el,{cls:Ext.baseCSSPrefix+"grid-resize-marker"},true))},getRhsMarker:function(){var a=this;return a.rhsMarker||(a.rhsMarker=Ext.DomHelper.append(a.el,{cls:Ext.baseCSSPrefix+"grid-resize-marker"},true))},getSelectionModel:function(){if(!this.selModel){this.selModel={}}var b="SINGLE",a;if(this.simpleSelect){b="SIMPLE"}else{if(this.multiSelect){b="MULTI"}}Ext.applyIf(this.selModel,{allowDeselect:this.allowDeselect,mode:b});if(!this.selModel.events){a=this.selModel.selType||this.selType;this.selModel=Ext.create("selection."+a,this.selModel)}if(!this.selModel.hasRelaySetup){this.relayEvents(this.selModel,["selectionchange","beforeselect","beforedeselect","select","deselect"]);this.selModel.hasRelaySetup=true}if(this.disableSelection){this.selModel.locked=true}return this.selModel},getScrollTarget:function(){var a=this.getScrollerOwner(),b=a.query("tableview");return b[1]||b[0]},onHorizontalScroll:function(a,b){this.syncHorizontalScroll(b.scrollLeft)},syncHorizontalScroll:function(d,b){var c=this,a;b=b===true;if(c.rendered&&(b||d!==c.scrollLeftPos)){if(b){a=c.getScrollTarget();a.el.dom.scrollLeft=d}c.headerCt.el.dom.scrollLeft=d;c.scrollLeftPos=d}},onStoreLoad:Ext.emptyFn,getEditorParent:function(){return this.body},bindStore:function(a){var b=this;b.store=a;b.getView().bindStore(a)},beforeDestroy:function(){Ext.destroy(this.verticalScroller);this.callParent()},reconfigure:function(a,b){var c=this,d=c.headerCt;if(c.lockable){c.reconfigureLockable(a,b)}else{Ext.suspendLayouts();if(b){delete c.scrollLeftPos;d.removeAll();d.add(b)}if(a){a=Ext.StoreManager.lookup(a);c.bindStore(a)}else{c.getView().refresh()}d.setSortState();Ext.resumeLayouts(true)}c.fireEvent("reconfigure",c,a,b)}});Ext.define("Ext.grid.View",{extend:"Ext.view.Table",alias:"widget.gridview",stripeRows:true,autoScroll:true});Ext.define("Ext.grid.Panel",{extend:"Ext.panel.Table",requires:["Ext.grid.View"],alias:["widget.gridpanel","widget.grid"],alternateClassName:["Ext.list.ListView","Ext.ListView","Ext.grid.GridPanel"],viewType:"gridview",lockable:false,bothCfgCopy:["invalidateScrollerOnRefresh","hideHeaders","enableColumnHide","enableColumnMove","enableColumnResize","sortableColumns"],normalCfgCopy:["verticalScroller","verticalScrollDock","verticalScrollerType","scroll"],lockedCfgCopy:[],rowLines:true});Ext.define("Ext.grid.RowEditor",{extend:"Ext.form.Panel",requires:["Ext.tip.ToolTip","Ext.util.HashMap","Ext.util.KeyNav"],saveBtnText:"Update",cancelBtnText:"Cancel",errorsText:"Errors",dirtyText:"You need to commit or cancel your changes",lastScrollLeft:0,lastScrollTop:0,border:false,hideMode:"offsets",initComponent:function(){var b=this,a;b.cls=Ext.baseCSSPrefix+"grid-row-editor";b.layout={type:"hbox",align:"middle"};b.columns=new Ext.util.HashMap();b.columns.getKey=function(d){var c;if(d.getEditor){c=d.getEditor();if(c){return c.id}}return d.id};b.mon(b.columns,{add:b.onFieldAdd,remove:b.onFieldRemove,replace:b.onFieldReplace,scope:b});b.callParent(arguments);if(b.fields){b.setField(b.fields);delete b.fields}b.mon(Ext.container.Container.hierarchyEventSource,{scope:b,show:b.repositionIfVisible});a=b.getForm();a.trackResetOnLoad=true},onFieldChange:function(){var c=this,b=c.getForm(),a=b.isValid();if(c.errorSummary&&c.isVisible()){c[a?"hideToolTip":"showToolTip"]()}c.updateButton(a);c.isValid=a},updateButton:function(b){var a=this.floatingButtons;if(a){a.child("#update").setDisabled(!b)}},afterRender:function(){var b=this,a=b.editingPlugin;b.callParent(arguments);b.mon(b.renderTo,"scroll",b.onCtScroll,b,{buffer:100});b.mon(b.el,{click:Ext.emptyFn,stopPropagation:true});b.el.swallowEvent(["keypress","keydown"]);b.keyNav=new Ext.util.KeyNav(b.el,{enter:a.completeEdit,esc:a.onEscKey,scope:a});b.mon(a.view,{beforerefresh:b.onBeforeViewRefresh,refresh:b.onViewRefresh,itemremove:b.onViewItemRemove,scope:b})},onBeforeViewRefresh:function(b){var c=this,a=b.el.dom;if(c.el.dom.parentNode===a){a.removeChild(c.el.dom)}},onViewRefresh:function(c){var e=this,b=c.el.dom,d=e.context,a;b.appendChild(e.el.dom);if(d&&(a=d.store.indexOf(d.record))>=0){d.row=c.getNode(a);e.reposition();if(e.tooltip&&e.tooltip.isVisible()){e.tooltip.setTarget(d.row)}}else{e.editingPlugin.cancelEdit()}},onViewItemRemove:function(a,b){var c=this.context;if(c&&a===c.record){this.editingPlugin.cancelEdit()}},onCtScroll:function(d,c){var a=this,b=c.scrollTop,g=c.scrollLeft;if(b!==a.lastScrollTop){a.lastScrollTop=b;if((a.tooltip&&a.tooltip.isVisible())||a.hiddenTip){a.repositionTip()}}if(g!==a.lastScrollLeft){a.lastScrollLeft=g;a.reposition()}},onColumnAdd:function(a){if(!a.isGroupHeader){this.setField(a)}},onColumnRemove:function(a){this.columns.remove(a)},onColumnResize:function(b,a){if(!b.isGroupHeader){b.getEditor().setWidth(a-2);this.repositionIfVisible()}},onColumnHide:function(a){if(!a.isGroupHeader){a.getEditor().hide();this.repositionIfVisible()}},onColumnShow:function(a){var b=a.getEditor();b.setWidth(a.getWidth()-2).show();this.repositionIfVisible()},onColumnMove:function(b,a,c){if(!b.isGroupHeader){var d=b.getEditor();if(this.items.indexOf(d)!=c){this.move(a,c)}}},onFieldAdd:function(e,a,b){var c=this,g,d;if(!b.isGroupHeader){g=c.editingPlugin.grid.headerCt.getHeaderIndex(b);d=b.getEditor({xtype:"displayfield"});c.insert(g,d)}},onFieldRemove:function(g,a,b){var c=this,e,d;if(!b.isGroupHeader){e=b.getEditor();d=e.el;c.remove(e,false);if(d){d.remove()}}},onFieldReplace:function(d,a,c,b){this.onFieldRemove(d,a,b)},clearFields:function(){var b=this.columns,a;for(a in b){if(b.hasOwnProperty(a)){b.removeAtKey(a)}}},getFloatingButtons:function(){var e=this,g=Ext.baseCSSPrefix,d=g+"grid-row-editor-buttons",c=e.editingPlugin,a=Ext.panel.Panel.prototype.minButtonWidth,b;if(!e.floatingButtons){b=e.floatingButtons=new Ext.Container({renderTpl:['<div class="{baseCls}-ml"></div>','<div class="{baseCls}-mr"></div>','<div class="{baseCls}-bl"></div>','<div class="{baseCls}-br"></div>','<div class="{baseCls}-bc"></div>',"{%this.renderContainer(out,values)%}"],width:200,renderTo:e.el,baseCls:d,layout:{type:"hbox",align:"middle"},defaults:{flex:1,margins:"0 1 0 1"},items:[{itemId:"update",xtype:"button",handler:c.completeEdit,scope:c,text:e.saveBtnText,minWidth:a},{xtype:"button",handler:c.cancelEdit,scope:c,text:e.cancelBtnText,minWidth:a}]});e.mon(b.el,{mousedown:Ext.emptyFn,click:Ext.emptyFn,stopEvent:true})}return e.floatingButtons},repositionIfVisible:function(d){var b=this,a=b.view;if(d&&(d==b||!a.isDescendantOf(d))){return}if(b.isVisible()&&a.isVisible(true)){b.reposition()}},reposition:function(r){var s=this,c=s.context,e=c&&Ext.get(c.row),p=s.getFloatingButtons(),q=p.el,a=s.editingPlugin.grid,g=a.view.el,o=a.headerCt.getFullWidth(),t=a.getWidth(),l=Math.min(o,t),n=a.view.el.dom.scrollLeft,i=p.getWidth(),d=(l-i)/2+n,j,h,m,k=function(){q.scrollIntoView(g,false);if(r&&r.callback){r.callback.call(r.scope||s)}},b;if(e&&Ext.isElement(e.dom)){e.scrollIntoView(g,false);j=e.getXY()[1]-5;h=e.getHeight();m=h+(s.editingPlugin.grid.rowLines?9:10);if(s.getHeight()!=m){s.setHeight(m);s.el.setLeft(0)}if(r){b={to:{y:j},duration:r.duration||125,listeners:{afteranimate:function(){k();j=e.getXY()[1]-5}}};s.el.animate(b)}else{s.el.setY(j);k()}}if(s.getWidth()!=o){s.setWidth(o)}q.setLeft(d)},getEditor:function(a){var b=this;if(Ext.isNumber(a)){return b.query(">[isFormField]")[a]}else{if(a.isHeader&&!a.isGroupHeader){return a.getEditor()}}},removeField:function(b){var a=this;b=a.getEditor(b);a.mun(b,"validitychange",a.onValidityChange,a);a.columns.removeAtKey(b.id);Ext.destroy(b)},setField:function(b){var d=this,a,c,e;if(Ext.isArray(b)){c=b.length;for(a=0;a<c;a++){d.setField(b[a])}return}e=b.getEditor(null,{xtype:"displayfield",getModelData:function(){return null}});e.margins="0 0 0 2";d.mon(e,"change",d.onFieldChange,d);if(d.isVisible()&&d.context){if(e.is("displayfield")){d.renderColumnData(e,d.context.record,b)}else{e.suspendEvents();e.setValue(d.context.record.get(b.dataIndex));e.resumeEvents()}}d.columns.add(e.id,b);if(b.hidden){d.onColumnHide(b)}else{if(b.rendered){d.onColumnShow(b)}}},loadRecord:function(d){var j=this,a=j.getForm(),e=a.getFields(),h=e.items,b=h.length,c,g,k;for(c=0;c<b;c++){h[c].suspendEvents()}a.loadRecord(d);for(c=0;c<b;c++){h[c].resumeEvents()}k=a.isValid();if(j.errorSummary){if(k){j.hideToolTip()}else{j.showToolTip()}}j.updateButton(k);g=j.query(">displayfield");b=g.length;for(c=0;c<b;c++){j.renderColumnData(g[c],d)}},renderColumnData:function(m,i,c){var k=this,a=k.editingPlugin.grid,e=a.headerCt,l=a.view,o=l.store,g=c||k.columns.get(m.id),n=i.get(g.dataIndex),j=g.editRenderer||g.renderer,b,d,h;if(j){b={tdCls:"",style:""};d=o.indexOf(i);h=e.getHeaderIndex(g);n=j.call(g.scope||e.ownerCt,n,b,i,d,h,o,l)}m.setRawValue(n);m.resetOriginalValue()},beforeEdit:function(){var a=this;if(a.isVisible()&&a.errorSummary&&!a.autoCancel&&a.isDirty()){a.showToolTip();return false}},startEdit:function(a,g){var e=this,d=e.editingPlugin.grid,b=d.store,c=e.context=Ext.apply(e.editingPlugin.context,{view:d.getView(),store:b});c.grid.getSelectionModel().select(a);e.loadRecord(a);if(!e.isVisible()){e.show();e.focusContextCell()}else{e.reposition({callback:this.focusContextCell})}},focusContextCell:function(){var a=this.getEditor(this.context.colIdx);if(a&&a.focus){a.focus()}},cancelEdit:function(){var g=this,e=g.getForm(),a=e.getFields(),b=a.items,d=b.length,c;g.hide();e.clearInvalid();for(c=0;c<d;c++){b[c].suspendEvents()}e.reset();for(c=0;c<d;c++){b[c].resumeEvents()}},completeEdit:function(){var b=this,a=b.getForm();if(!a.isValid()){return}a.updateRecord(b.context.record);b.hide();return true},onShow:function(){this.callParent(arguments);this.reposition()},onHide:function(){var a=this;a.callParent(arguments);if(a.tooltip){a.hideToolTip()}if(a.context){a.context.view.focus();a.context=null}},isDirty:function(){var b=this,a=b.getForm();return a.isDirty()},getToolTip:function(){return this.tooltip||(this.tooltip=new Ext.tip.ToolTip({cls:Ext.baseCSSPrefix+"grid-row-editor-errors",title:this.errorsText,autoHide:false,closable:true,closeAction:"disable",anchor:"left"}))},hideToolTip:function(){var a=this,b=a.getToolTip();if(b.rendered){b.disable()}a.hiddenTip=false},showToolTip:function(){var c=this,d=c.getToolTip(),a=c.context,e=Ext.get(a.row),b=a.grid.view.el;d.setTarget(e);d.showAt([-10000,-10000]);d.update(c.getErrors());d.mouseOffset=[b.getWidth()-e.getWidth()+c.lastScrollLeft+15,0];c.repositionTip();d.doLayout();d.enable()},repositionTip:function(){var i=this,j=i.getToolTip(),c=i.context,l=Ext.get(c.row),k=c.grid.view.el,e=k.getHeight(),g=i.lastScrollTop,h=g+e,b=l.getHeight(),a=l.dom.offsetTop,d=a+b;if(d>g&&a<h){j.show();i.hiddenTip=false}else{j.hide();i.hiddenTip=true}},getErrors:function(){var d=this,e=!d.autoCancel&&d.isDirty()?d.dirtyText+"<br />":"",h=[],a=d.query(">[isFormField]"),c=a.length,b;function g(i){return"<li>"+i+"</li>"}for(b=0;b<c;b++){h=h.concat(Ext.Array.map(a[b].getErrors(),g))}return e+"<ul>"+h.join("")+"</ul>"},beforeDestroy:function(){Ext.destroy(this.floatingButtons,this.tooltip);this.callParent()}});Ext.define("Ext.grid.plugin.HeaderResizer",{extend:"Ext.AbstractPlugin",requires:["Ext.dd.DragTracker","Ext.util.Region"],alias:"plugin.gridheaderresizer",disabled:false,config:{dynamic:false},colHeaderCls:Ext.baseCSSPrefix+"column-header",minColWidth:40,maxColWidth:1000,wResizeCursor:"col-resize",eResizeCursor:"col-resize",init:function(a){this.headerCt=a;a.on("render",this.afterHeaderRender,this,{single:true})},destroy:function(){if(this.tracker){this.tracker.destroy()}},afterHeaderRender:function(){var b=this.headerCt,a=b.el;b.mon(a,"mousemove",this.onHeaderCtMouseMove,this);this.tracker=new Ext.dd.DragTracker({disabled:this.disabled,onBeforeStart:Ext.Function.bind(this.onBeforeStart,this),onStart:Ext.Function.bind(this.onStart,this),onDrag:Ext.Function.bind(this.onDrag,this),onEnd:Ext.Function.bind(this.onEnd,this),tolerance:3,autoStart:300,el:a})},onHeaderCtMouseMove:function(b,k){var d=this,a,i,j,g,c,h;if(d.headerCt.dragging){if(d.activeHd){d.activeHd.el.dom.style.cursor="";delete d.activeHd}}else{i=b.getTarget("."+d.colHeaderCls,3,true);if(i){j=Ext.getCmp(i.id);if(j.isOnLeftEdge(b)){g=j.previousNode("gridcolumn:not([hidden]):not([isGroupHeader])");if(g){h=d.headerCt.up("tablepanel");c=g.up("tablepanel");if(!((c===h)||((h.ownerCt.isXType("tablepanel"))&&h.ownerCt.view.lockedGrid===c))){g=null}}}else{if(j.isOnRightEdge(b)){g=j}else{g=null}}if(g){if(g.isGroupHeader){a=g.getGridColumns();g=a[a.length-1]}if(g&&!(g.fixed||(g.resizable===false)||d.disabled)){d.activeHd=g;j.el.dom.style.cursor=d.eResizeCursor}}else{j.el.dom.style.cursor="";delete d.activeHd}}}},onBeforeStart:function(b){var a=b.getTarget();this.dragHd=this.activeHd;if(!!this.dragHd&&!Ext.fly(a).hasCls(Ext.baseCSSPrefix+"column-header-trigger")&&!this.headerCt.dragging){this.tracker.constrainTo=this.getConstrainRegion();return true}else{this.headerCt.dragging=false;return false}},getConstrainRegion:function(){var c=this,a=c.dragHd.el,d=Ext.util.Region.getRegion(a),b;if(c.headerCt.forceFit){b=c.dragHd.nextNode("gridcolumn:not([hidden]):not([isGroupHeader])")}return d.adjust(0,c.headerCt.forceFit?(b?b.getWidth()-c.minColWidth:0):c.maxColWidth-a.getWidth(),0,c.minColWidth)},onStart:function(u){var v=this,h=v.dragHd,b=h.el,o=b.getWidth(),j=v.headerCt,l=u.getTarget(),d,r,g,k,c,n,a,i,s,q,p,m;if(v.dragHd&&!Ext.fly(l).hasCls(Ext.baseCSSPrefix+"column-header-trigger")){j.dragging=true}v.origWidth=o;if(!v.dynamic){d=b.getXY();r=j.up("[scrollerOwner]");g=v.dragHd.up(":not([isGroupHeader])");k=g.up();c=r.getLhsMarker();n=r.getRhsMarker();a=n.parent();i=a.getLocalX();s=a.getLocalY();q=a.translatePoints(d);p=k.body.getHeight()+j.getHeight();m=q.top-s;c.setTop(m);n.setTop(m);c.setHeight(p);n.setHeight(p);c.setLeft(q.left-i);n.setLeft(q.left+o-i)}},onDrag:function(h){if(!this.dynamic){var g=this.tracker.getXY("point"),a=this.headerCt.up("[scrollerOwner]"),i=a.getRhsMarker(),c=i.parent(),b=c.translatePoints(g),d=c.getLocalX();i.setLeft(b.left-d)}else{this.doResize()}},onEnd:function(g){this.headerCt.dragging=false;if(this.dragHd){if(!this.dynamic){var d=this.dragHd,b=this.headerCt.up("[scrollerOwner]"),c=b.getLhsMarker(),h=b.getRhsMarker(),a=-9999;c.setLeft(a);h.setLeft(a)}this.doResize()}},doResize:function(){if(this.dragHd){var b=this.dragHd,a,c=this.tracker.getOffset("point");if(b.flex){delete b.flex}Ext.suspendLayouts();b.setWidth(this.origWidth+c[0]);if(this.headerCt.forceFit){a=b.nextNode("gridcolumn:not([hidden]):not([isGroupHeader])");if(a){delete a.flex;a.setWidth(a.getWidth()-c[0])}}Ext.resumeLayouts(true)}},disable:function(){this.disabled=true;if(this.tracker){this.tracker.disable()}},enable:function(){this.disabled=false;if(this.tracker){this.tracker.enable()}}});Ext.define("Ext.grid.header.DragZone",{extend:"Ext.dd.DragZone",colHeaderCls:Ext.baseCSSPrefix+"column-header",maxProxyWidth:120,constructor:function(a){this.headerCt=a;this.ddGroup=this.getDDGroup();this.callParent([a.el]);this.proxy.el.addCls(Ext.baseCSSPrefix+"grid-col-dd")},getDDGroup:function(){return"header-dd-zone-"+this.headerCt.up("[scrollerOwner]").id},getDragData:function(b){var d=b.getTarget("."+this.colHeaderCls),a,c;if(d){a=Ext.getCmp(d.id);if(!this.headerCt.dragging&&a.draggable&&!(a.isOnLeftEdge(b)||a.isOnRightEdge(b))){c=document.createElement("div");c.innerHTML=Ext.getCmp(d.id).text;return{ddel:c,header:a}}}return false},onBeforeDrag:function(){return !(this.headerCt.dragging||this.disabled)},onInitDrag:function(){this.headerCt.dragging=true;this.callParent(arguments)},onDragDrop:function(){this.headerCt.dragging=false;this.callParent(arguments)},afterRepair:function(){this.callParent();this.headerCt.dragging=false},getRepairXY:function(){return this.dragData.header.el.getXY()},disable:function(){this.disabled=true},enable:function(){this.disabled=false}});Ext.define("Ext.grid.header.DropZone",{extend:"Ext.dd.DropZone",colHeaderCls:Ext.baseCSSPrefix+"column-header",proxyOffsets:[-4,-9],constructor:function(a){this.headerCt=a;this.ddGroup=this.getDDGroup();this.callParent([a.el])},getDDGroup:function(){return"header-dd-zone-"+this.headerCt.up("[scrollerOwner]").id},getTargetFromEvent:function(a){return a.getTarget("."+this.colHeaderCls)},getTopIndicator:function(){if(!this.topIndicator){this.topIndicator=Ext.DomHelper.append(Ext.getBody(),{cls:"col-move-top",html:" "},true)}return this.topIndicator},getBottomIndicator:function(){if(!this.bottomIndicator){this.bottomIndicator=Ext.DomHelper.append(Ext.getBody(),{cls:"col-move-bottom",html:" "},true)}return this.bottomIndicator},getLocation:function(d,b){var a=d.getXY()[0],c=Ext.fly(b).getRegion(),h,g;if((c.right-a)<=(c.right-c.left)/2){h="after"}else{h="before"}return{pos:h,header:Ext.getCmp(b.id),node:b}},positionIndicator:function(v,o,u){var a=this.getLocation(u,o),q=a.header,g=a.pos,d=v.nextSibling("gridcolumn:not([hidden])"),t=v.previousSibling("gridcolumn:not([hidden])"),l,r,s,b,c,k,m,x,w,n,j,p,h;if(!q.draggable&&q.getIndex()===0){return false}this.lastLocation=a;if((v!==q)&&((g==="before"&&d!==q)||(g==="after"&&t!==q))&&!q.isDescendantOf(v)){n=Ext.dd.DragDropManager.getRelated(this);j=n.length;p=0;for(;p<j;p++){h=n[p];if(h!==this&&h.invalidateDrop){h.invalidateDrop()}}this.valid=true;l=this.getTopIndicator();r=this.getBottomIndicator();if(g==="before"){s="tl";b="bl"}else{s="tr";b="br"}c=q.el.getAnchorXY(s);k=q.el.getAnchorXY(b);m=this.headerCt.el;x=m.getLeft();w=m.getRight();c[0]=Ext.Number.constrain(c[0],x,w);k[0]=Ext.Number.constrain(k[0],x,w);c[0]-=4;c[1]-=9;k[0]-=4;l.setXY(c);r.setXY(k);l.show();r.show()}else{this.invalidateDrop()}},invalidateDrop:function(){this.valid=false;this.hideIndicators()},onNodeOver:function(b,h,g,c){var i=this,d=i.headerCt,a=true,k=c.header,j;if(c.header.el.dom===b){a=false}else{j=i.getLocation(g,b).header;a=(k.ownerCt===j.ownerCt)||(!k.ownerCt.sealed&&!j.ownerCt.sealed)}if(a){i.positionIndicator(c.header,b,g)}else{i.valid=false}return i.valid?i.dropAllowed:i.dropNotAllowed},hideIndicators:function(){this.getTopIndicator().hide();this.getBottomIndicator().hide()},onNodeOut:function(){this.hideIndicators()},onNodeDrop:function(o,d,r,u){if(this.valid){var q=u.header,g=this.lastLocation,k=g.header,t=q.ownerCt,n=q.up("headercontainer:not(gridcolumn)"),l=t.items.indexOf(q),a=k.ownerCt,j=k.up("headercontainer:not(gridcolumn)"),p=a.items.indexOf(k),i=this.headerCt,b=i.getHeaderIndex(q),m=q.isGroupHeader?q.query(":not([isGroupHeader])").length:1,s=i.getHeaderIndex(k),c,h;if(g.pos==="after"){p++;s+=k.isGroupHeader?k.query(":not([isGroupHeader])").length:1}if(n!==j&&n.lockableInjected&&j.lockableInjected&&j.lockedCt){h=t.up("[scrollerOwner]");h.lock(q,p);this.onNodeDrop(o,d,r,u)}else{if(n!==j&&n.lockableInjected&&j.lockableInjected&&n.lockedCt){h=t.up("[scrollerOwner]");h.unlock(q,p);this.onNodeDrop(o,d,r,u)}else{this.invalidateDrop();if((t===a)&&(p>l)){p-=1}Ext.suspendLayouts();if(t!==a){t.remove(q,false);if(t.isGroupHeader){if(!t.items.getCount()){c=t.ownerCt;c.remove(t,false);t.el.dom.parentNode.removeChild(t.el.dom)}}}if(t===a){a.move(l,p)}else{a.insert(p,q)}if(a.isGroupHeader){if(a!==t){q.savedFlex=q.flex;delete q.flex;q.width=q.getWidth()}}else{if(q.savedFlex){q.flex=q.savedFlex;delete q.width}}i.purgeCache();Ext.resumeLayouts(true);i.onHeaderMoved(q,m,b,s);if(!t.items.getCount()){t.destroy()}}}}}});Ext.define("Ext.grid.plugin.HeaderReorderer",{extend:"Ext.AbstractPlugin",requires:["Ext.grid.header.DragZone","Ext.grid.header.DropZone"],alias:"plugin.gridheaderreorderer",init:function(a){this.headerCt=a;a.on({render:this.onHeaderCtRender,single:true,scope:this})},destroy:function(){Ext.destroy(this.dragZone,this.dropZone)},onHeaderCtRender:function(){var a=this;a.dragZone=new Ext.grid.header.DragZone(a.headerCt);a.dropZone=new Ext.grid.header.DropZone(a.headerCt);if(a.disabled){a.dragZone.disable()}},enable:function(){this.disabled=false;if(this.dragZone){this.dragZone.enable()}},disable:function(){this.disabled=true;if(this.dragZone){this.dragZone.disable()}}});Ext.define("Ext.grid.header.Container",{extend:"Ext.container.Container",requires:["Ext.grid.ColumnLayout","Ext.grid.plugin.HeaderResizer","Ext.grid.plugin.HeaderReorderer"],uses:["Ext.grid.column.Column","Ext.menu.Menu","Ext.menu.CheckItem","Ext.menu.Separator"],border:true,alias:"widget.headercontainer",baseCls:Ext.baseCSSPrefix+"grid-header-ct",dock:"top",weight:100,defaultType:"gridcolumn",detachOnRemove:false,defaultWidth:100,sortAscText:"Sort Ascending",sortDescText:"Sort Descending",sortClearText:"Clear Sort",columnsText:"Columns",headerOpenCls:Ext.baseCSSPrefix+"column-header-open",triStateSort:false,ddLock:false,dragging:false,sortable:true,initComponent:function(){var a=this;a.headerCounter=0;a.plugins=a.plugins||[];if(!a.isHeader){if(a.enableColumnResize){a.resizer=new Ext.grid.plugin.HeaderResizer();a.plugins.push(a.resizer)}if(a.enableColumnMove){a.reorderer=new Ext.grid.plugin.HeaderReorderer();a.plugins.push(a.reorderer)}}if(a.isHeader&&!a.items){a.layout=a.layout||"auto"}else{a.layout=Ext.apply({type:"gridcolumn",align:"stretchmax"},a.initialConfig.layout)}a.defaults=a.defaults||{};Ext.applyIf(a.defaults,{triStateSort:a.triStateSort,sortable:a.sortable});a.menuTask=new Ext.util.DelayedTask(a.updateMenuDisabledState,a);a.callParent();a.addEvents("columnresize","headerclick","headertriggerclick","columnmove","columnhide","columnshow","sortchange","menucreate")},onDestroy:function(){var a=this;a.menuTask.cancel();Ext.destroy(a.resizer,a.reorderer);a.callParent()},applyColumnsState:function(e){if(!e||!e.length){return}var m=this,k=m.items.items,j=k.length,g=0,b=e.length,l,d,a,h;for(l=0;l<b;l++){a=e[l];for(h=j;h--;){d=k[h];if(d.getStateId&&d.getStateId()==a.id){if(g!==h){m.moveHeader(h,g)}if(d.applyColumnState){d.applyColumnState(a)}++g;break}}}},getColumnsState:function(){var b=this,a=[],c;b.items.each(function(d){c=d.getColumnState&&d.getColumnState();if(c){a.push(c)}});return a},onAdd:function(d){var a=this,b=a.isHeader?a.getOwnerHeaderCt():a;if(!d.headerId){d.headerId=d.initialConfig.id||Ext.id(null,"header-")}if(!d.stateId){d.stateId=d.initialConfig.id||("h"+(++a.headerCounter))}a.callParent(arguments);if(b){b.purgeCache()}},onRemove:function(d){var a=this,b=a.isHeader?a.getOwnerHeaderCt():a;a.callParent(arguments);if(b){a.purgeCache()}},applyDefaults:function(b){var a;if(b&&!b.isComponent&&b.xtype=="rownumberer"){a=b}else{a=this.callParent(arguments);if(!b.isGroupHeader&&!("width" in a)&&!a.flex){a.width=this.defaultWidth}}return a},afterRender:function(){this.callParent();this.setSortState()},setSortState:function(){var a=this.up("[store]").store,c=a.getFirstSorter(),b;if(c){b=this.down("gridcolumn[dataIndex="+c.property+"]");if(b){b.setSortState(c.direction,false,true)}}else{this.clearOtherSortStates(null)}},getHeaderMenu:function(){var b=this.getMenu(),a;if(b){a=b.child("#columnItem");if(a){return a.menu}}return null},onHeaderVisibilityChange:function(e,d){var b=this,c=b.getHeaderMenu(),a;if(c){a=b.getMenuItemForHeader(c,e);if(a){a.setChecked(d,true)}b.menuTask.delay(50)}},getLeafMenuItems:function(){var h=this,d=h.getGridColumns(),b=[],c=0,g=0,a=d.length,j=h.getMenu(),e;for(;c<a;++c){e=d[c];if(e.hideable){e=h.getMenuItemForHeader(j,e);if(e){b.push(e);if(e.checked){++g}}}else{if(!e.hidden&&!e.menuDisabled){++g}}}return{items:b,checkedCount:g}},updateMenuDisabledState:function(){var h=this,b=h.getLeafMenuItems(),g=b.checkedCount,d=b.items,a=d.length,e=0,c=h.getMenu().child("#columnItem");if(g<=1){h.disableMenuItems(c,Ext.ComponentQuery.query("[checked=true]",d)[0])}else{for(;e<a;++e){h.setMenuItemState(g,c,d[e])}}},disableMenuItems:function(a,b){while(b&&b!=a){b.disableCheckChange();b=b.parentMenu.ownerItem}},setMenuItemState:function(e,a,d){var c,b;while(d&&d!=a){c=d.parentMenu;b=d.parentMenu.query("[checked=true]:not([menu])").length;d.enableCheckChange();d=c.ownerItem;if(b===e){break}}this.disableMenuItems(a,d)},getMenuItemForHeader:function(a,b){return b?a.down("menucheckitem[headerId="+b.id+"]"):null},onHeaderShow:function(c){var b=this,a=b.ownerCt;b.onHeaderVisibilityChange(c,true);if(!c.isGroupHeader){if(a){a.onHeaderShow(b,c)}}b.fireEvent("columnshow",b,c)},onHeaderHide:function(c){var b=this,a=b.ownerCt;b.onHeaderVisibilityChange(c,false);if(!c.isGroupHeader){if(a){a.onHeaderHide(b,c)}}b.fireEvent("columnhide",b,c)},tempLock:function(){this.ddLock=true;Ext.Function.defer(function(){this.ddLock=false},200,this)},onHeaderResize:function(g,b,e){var d=this,a=d.view,c=d.ownerCt;if(a&&a.table.dom){d.tempLock();if(c){c.onHeaderResize(d,g,b)}}d.fireEvent("columnresize",this,g,b)},onHeaderClick:function(c,b,a){c.fireEvent("headerclick",this,c,b,a);this.fireEvent("headerclick",this,c,b,a)},onHeaderTriggerClick:function(d,c,a){var b=this;if(d.fireEvent("headertriggerclick",b,d,c,a)!==false&&b.fireEvent("headertriggerclick",b,d,c,a)!==false){b.showMenuBy(a,d)}},showMenuBy:function(b,g){var d=this.getMenu(),e=d.down("#ascItem"),c=d.down("#descItem"),a;d.activeHeader=d.ownerCt=g;d.setFloatParent(g);g.titleEl.addCls(this.headerOpenCls);a=g.sortable?"enable":"disable";if(e){e[a]()}if(c){c[a]()}d.showBy(b)},onMenuDeactivate:function(){var a=this.getMenu();a.activeHeader.titleEl.removeCls(this.headerOpenCls)},moveHeader:function(a,b){this.tempLock();this.onHeaderMoved(this.move(a,b),1,a,b)},purgeCache:function(){var a=this;delete a.gridDataColumns;delete a.hideableColumns;if(a.menu){a.menu.hide();a.menu.destroy();delete a.menu}},onHeaderMoved:function(g,a,c,e){var d=this,b=d.ownerCt;if(b&&b.onHeaderMove){b.onHeaderMove(d,g,a,c,e)}d.fireEvent("columnmove",d,g,c,e)},getMenu:function(){var a=this;if(!a.menu){a.menu=new Ext.menu.Menu({hideOnParentHide:false,items:a.getMenuItems(),listeners:{deactivate:a.onMenuDeactivate,scope:a}});a.updateMenuDisabledState();a.fireEvent("menucreate",a,a.menu)}return a.menu},getMenuItems:function(){var c=this,b=[],a=c.enableColumnHide?c.getColumnMenu(c):null;if(c.sortable){b=[{itemId:"ascItem",text:c.sortAscText,cls:Ext.baseCSSPrefix+"hmenu-sort-asc",handler:c.onSortAscClick,scope:c},{itemId:"descItem",text:c.sortDescText,cls:Ext.baseCSSPrefix+"hmenu-sort-desc",handler:c.onSortDescClick,scope:c}]}if(a&&a.length){b.push("-",{itemId:"columnItem",text:c.columnsText,cls:Ext.baseCSSPrefix+"cols-icon",menu:a})}return b},onSortAscClick:function(){var b=this.getMenu(),a=b.activeHeader;a.setSortState("ASC")},onSortDescClick:function(){var b=this.getMenu(),a=b.activeHeader;a.setSortState("DESC")},getColumnMenu:function(g){var c=[],b=0,e,a=g.query(">gridcolumn[hideable]"),h=a.length,d;for(;b<h;b++){e=a[b];d=new Ext.menu.CheckItem({text:e.menuText||e.text,checked:!e.hidden,hideOnClick:false,headerId:e.id,menu:e.isGroupHeader?this.getColumnMenu(e):undefined,checkHandler:this.onColumnCheckChange,scope:this});c.push(d);e.on({destroy:Ext.Function.bind(d.destroy,d)})}return c},onColumnCheckChange:function(a,b){var c=Ext.getCmp(a.headerId);c[b?"show":"hide"]()},getColumnsForTpl:function(e){var c=[],d=this.getGridColumns(e),h=d.length,a=0,g,b;for(;a<h;a++){g=d[a];if(g.hidden||g.up("headercontainer[hidden=true]")){b=0}else{b=g.getDesiredWidth()}c.push({dataIndex:g.dataIndex,align:g.align,width:b,id:g.id,cls:g.tdCls,columnId:g.getItemId()})}return c},getColumnCount:function(){return this.getGridColumns().length},getFullWidth:function(d){var c=0,b=this.getVisibleGridColumns(d),g=b.length,a=0,e;for(;a<g;a++){e=b[a];if(e.getDesiredWidth){c+=e.getDesiredWidth()||0}else{c+=e.getWidth()}}return c},clearOtherSortStates:function(a){var c=this.getGridColumns(),d=c.length,b=0;for(;b<d;b++){if(c[b]!==a){c[b].setSortState(null,true)}}},getVisibleGridColumns:function(a){return Ext.ComponentQuery.query(":not([hidden])",this.getGridColumns(a))},getGridColumns:function(b){var c=this,a=b?null:c.gridDataColumns;if(!a){c.gridDataColumns=a=[];c.cascade(function(d){if((d!==c)&&!d.isGroupHeader){a.push(d)}})}return a},getHideableColumns:function(b){var c=this,a=b?null:c.hideableColumns;if(!a){a=c.hideableColumns=c.query("[hideable]")}return a},getHeaderIndex:function(a){if(a.isGroupHeader){a=a.down(":not([isgroupHeader])")}return Ext.Array.indexOf(this.getGridColumns(),a)},getHeaderAtIndex:function(a){var b=this.getGridColumns();return b.length?b[a]:null},getVisibleHeaderClosestToIndex:function(b){var a=this.getHeaderAtIndex(b);if(a&&a.hidden){a=a.next(":not([hidden])")||a.prev(":not([hidden])")}return a},prepareData:function(i,c,k,n,a){var m=this,h={},d=m.gridDataColumns||m.getGridColumns(),e=d.length,g=0,j,q,l,p,b,o=a.store;for(;g<e;g++){b={tdCls:"",style:""};j=d[g];q=j.id;l=j.renderer;p=i[j.dataIndex];if(typeof l=="function"){p=l.call(j.scope||m.ownerCt,p,b,k,c,g,o,n)}if(m.markDirty){h[q+"-modified"]=k.isModified(j.dataIndex)?Ext.baseCSSPrefix+"grid-dirty-cell":""}h[q+"-tdCls"]=b.tdCls;h[q+"-tdAttr"]=b.tdAttr;h[q+"-style"]=b.style;if(typeof p==="undefined"||p===null||p===""){p=j.emptyCellText}h[q]=p}return h},expandToFit:function(b){var a=this.view;if(a){a.expandToFit(b)}}});Ext.define("Ext.grid.column.Column",{extend:"Ext.grid.header.Container",alias:"widget.gridcolumn",requires:["Ext.util.KeyNav","Ext.grid.ColumnComponentLayout","Ext.grid.ColumnLayout"],alternateClassName:"Ext.grid.Column",baseCls:Ext.baseCSSPrefix+"column-header "+Ext.baseCSSPrefix+"unselectable",hoverCls:Ext.baseCSSPrefix+"column-header-over",handleWidth:5,sortState:null,possibleSortStates:["ASC","DESC"],childEls:["titleEl","triggerEl","textEl"],renderTpl:'<div id="{id}-titleEl" {tipMarkup}class="'+Ext.baseCSSPrefix+'column-header-inner"><span id="{id}-textEl" class="'+Ext.baseCSSPrefix+'column-header-text">{text}</span><tpl if="!menuDisabled"><div id="{id}-triggerEl" class="'+Ext.baseCSSPrefix+'column-header-trigger"></div></tpl></div>{%this.renderContainer(out,values)%}',dataIndex:null,text:" ",menuText:null,emptyCellText:" ",sortable:true,resizable:true,hideable:true,menuDisabled:false,renderer:false,editRenderer:false,align:"left",draggable:true,tooltipType:"qtip",initDraggable:Ext.emptyFn,isHeader:true,componentLayout:"columncomponent",initResizable:Ext.emptyFn,initComponent:function(){var a=this,b;if(Ext.isDefined(a.header)){a.text=a.header;delete a.header}if(!a.triStateSort){a.possibleSortStates.length=2}if(Ext.isDefined(a.columns)){a.isGroupHeader=true;a.items=a.columns;delete a.columns;delete a.flex;delete a.width;a.cls=(a.cls||"")+" "+Ext.baseCSSPrefix+"group-header";a.sortable=false;a.resizable=false;a.align="center"}else{a.isContainer=false;if(a.flex){a.minWidth=a.minWidth||Ext.grid.plugin.HeaderResizer.prototype.minColWidth}}a.addCls(Ext.baseCSSPrefix+"column-header-align-"+a.align);b=a.renderer;if(b){if(typeof b=="string"){a.renderer=Ext.util.Format[b]}a.hasCustomRenderer=true}else{if(a.defaultRenderer){a.scope=a;a.renderer=a.defaultRenderer}}a.callParent(arguments);a.on({element:"el",click:a.onElClick,dblclick:a.onElDblClick,scope:a});a.on({element:"titleEl",mouseenter:a.onTitleMouseOver,mouseleave:a.onTitleMouseOut,scope:a})},onAdd:function(a){a.isSubHeader=true;a.addCls(Ext.baseCSSPrefix+"group-sub-header");this.callParent(arguments)},onRemove:function(a){a.isSubHeader=false;a.removeCls(Ext.baseCSSPrefix+"group-sub-header");this.callParent(arguments)},initRenderData:function(){var b=this,d="",c=b.tooltip,a=b.tooltipType=="qtip"?"data-qtip":"title";if(!Ext.isEmpty(c)){d=a+'="'+c+'" '}return Ext.applyIf(b.callParent(arguments),{text:b.text,menuDisabled:b.menuDisabled,tipMarkup:d})},applyColumnState:function(b){var a=this,c=Ext.isDefined;a.applyColumnsState(b.columns);if(c(b.hidden)){a.hidden=b.hidden}if(c(b.locked)){a.locked=b.locked}if(c(b.sortable)){a.sortable=b.sortable}if(c(b.width)){delete a.flex;a.width=b.width}else{if(c(b.flex)){delete a.width;a.flex=b.flex}}},getColumnState:function(){var e=this,b=e.items.items,a=b?b.length:0,d,c=[],g={id:e.getStateId()};e.savePropsToState(["hidden","sortable","locked","flex","width"],g);if(e.isGroupHeader){for(d=0;d<a;d++){c.push(b[d].getColumnState())}if(c.length){g.columns=c}}else{if(e.isSubHeader&&e.ownerCt.hidden){delete e.hidden}}if("width" in g){delete g.flex}return g},getStateId:function(){return this.stateId||this.headerId},setText:function(a){this.text=a;if(this.rendered){this.textEl.update(a)}},getOwnerHeaderCt:function(){return this.up(":not([isHeader])")},getIndex:function(){return this.isGroupColumn?false:this.getOwnerHeaderCt().getHeaderIndex(this)},getVisibleIndex:function(){return this.isGroupColumn?false:Ext.Array.indexOf(this.getOwnerHeaderCt().getVisibleGridColumns(),this)},beforeRender:function(){var b=this,a=b.up("tablepanel");b.callParent();if(a&&(!b.sortable||a.sortableColumns===false)&&!b.groupable&&!b.lockable&&(a.enableColumnHide===false||!b.getOwnerHeaderCt().getHideableColumns().length)){b.menuDisabled=true}},afterRender:function(){var b=this,a=b.el;b.callParent(arguments);if(b.overCls){a.addClsOnOver(b.overCls)}if(!Ext.isIE8||!Ext.isStrict){b.mon(b.getFocusEl(),{focus:b.onTitleMouseOver,blur:b.onTitleMouseOut,scope:b})}b.keyNav=new Ext.util.KeyNav(a,{enter:b.onEnterKey,down:b.onDownKey,scope:b})},afterComponentLayout:function(d,a,c,g){var e=this,b=e.getOwnerHeaderCt();e.callParent(arguments);if(b&&(c!=null||e.flex)&&d!==c){b.onHeaderResize(e,d,true)}},setPadding:function(a){var e=this,d=parseInt(e.textEl.getStyle("line-height"),10),h=e.textEl.dom.offsetHeight,b=e.titleEl,g=a-e.el.getBorderWidth("tb"),c;if(!e.isGroupHeader){if(b.getHeight()<g){b.setHeight(g);e.ownerCt.layout.innerCt.setHeight(a)}}c=b.getViewSize().height;if(h){if(d){h=Math.ceil(h/d)*d}b.setStyle({paddingTop:Math.floor(Math.max(((c-h)/2),0))+"px"})}if(Ext.isIE&&e.triggerEl){e.triggerEl.setHeight(c)}},onDestroy:function(){var a=this;Ext.destroy(a.textEl,a.keyNav,a.field);delete a.keyNav;a.callParent(arguments)},onTitleMouseOver:function(){this.titleEl.addCls(this.hoverCls)},onTitleMouseOut:function(){this.titleEl.removeCls(this.hoverCls)},onDownKey:function(a){if(this.triggerEl){this.onElClick(a,this.triggerEl.dom||this.el.dom)}},onEnterKey:function(a){this.onElClick(a,this.el.dom)},onElDblClick:function(d,a){var c=this,b=c.ownerCt;if(b&&Ext.Array.indexOf(b.items,c)!==0&&c.isOnLeftEdge(d)){b.expandToFit(c.previousSibling("gridcolumn"))}},onElClick:function(d,b){var c=this,a=c.getOwnerHeaderCt();if(a&&!a.ddLock){if(c.triggerEl&&(d.target===c.triggerEl.dom||b===c.triggerEl.dom||d.within(c.triggerEl))){a.onHeaderTriggerClick(c,d,b)}else{if(d.getKey()||(!c.isOnLeftEdge(d)&&!c.isOnRightEdge(d))){c.toggleSortState();a.onHeaderClick(c,d,b)}}}},processEvent:function(g,b,a,c,d,h){return this.fireEvent.apply(this,arguments)},toggleSortState:function(){var b=this,a,c;if(b.sortable){a=Ext.Array.indexOf(b.possibleSortStates,b.sortState);c=(a+1)%b.possibleSortStates.length;b.setSortState(b.possibleSortStates[c])}},doSort:function(b){var a=this.up("tablepanel").store;a.sort({property:this.getSortParam(),direction:b})},getSortParam:function(){return this.dataIndex},setSortState:function(a,k,g){var h=this,i=Ext.baseCSSPrefix+"column-header-sort-",j=i+"ASC",c=i+"DESC",b=i+"null",e=h.getOwnerHeaderCt(),d=h.sortState;if(d!==a&&h.getSortParam()){h.addCls(i+a);if(a&&!g){h.doSort(a)}switch(a){case"DESC":h.removeCls([j,b]);break;case"ASC":h.removeCls([c,b]);break;case null:h.removeCls([j,c]);break}if(e&&!h.triStateSort&&!k){e.clearOtherSortStates(h)}h.sortState=a;if(h.triStateSort||a!=null){e.fireEvent("sortchange",e,h,a)}}},hide:function(c){var j=this,e=j.getOwnerHeaderCt(),b=j.ownerCt,a=b.isGroupHeader,k,h,g,d;if(a&&!c){h=b.query(">:not([hidden])");if(h.length===1&&h[0]==j){j.ownerCt.hide();return}}Ext.suspendLayouts();if(j.isGroupHeader){h=j.items.items;for(d=0,g=h.length;d<g;d++){k=h[d];if(!k.hidden){k.hide(true)}}}j.callParent();e.onHeaderHide(j);Ext.resumeLayouts(true)},show:function(d,b){var j=this,g=j.ownerCt,c,a,e,h;Ext.suspendLayouts();if(j.isSubHeader&&g.hidden){g.show(false,true)}j.callParent(arguments);if(j.isGroupHeader&&b!==true&&!j.query(":not([hidden])").length){c=j.query(">*");for(e=0,a=c.length;e<a;e++){h=c[e];if(h.hidden){h.show(true)}}}Ext.resumeLayouts(true);g=j.getOwnerHeaderCt();if(g){g.onHeaderShow(j)}},getDesiredWidth:function(){var a=this;if(a.rendered&&a.componentLayout&&a.componentLayout.lastComponentSize){return a.componentLayout.lastComponentSize.width}else{if(a.flex){return a.width}else{return a.width}}},getCellSelector:function(){return"."+Ext.baseCSSPrefix+"grid-cell-"+this.getItemId()},getCellInnerSelector:function(){return this.getCellSelector()+" ."+Ext.baseCSSPrefix+"grid-cell-inner"},isOnLeftEdge:function(a){return(a.getXY()[0]-this.el.getLeft()<=this.handleWidth)},isOnRightEdge:function(a){return(this.el.getRight()-a.getXY()[0]<=this.handleWidth)}});Ext.define("Ext.grid.RowNumberer",{extend:"Ext.grid.column.Column",alias:"widget.rownumberer",text:" ",width:23,sortable:false,draggable:false,align:"right",constructor:function(a){this.width=this.width;this.callParent(arguments);if(this.rowspan){this.renderer=Ext.Function.bind(this.renderer,this)}},resizable:false,hideable:false,menuDisabled:true,dataIndex:"",cls:Ext.baseCSSPrefix+"row-numberer",rowspan:undefined,renderer:function(e,b,a,d,g,c){if(this.rowspan){b.cellAttr='rowspan="'+this.rowspan+'"'}b.tdCls=Ext.baseCSSPrefix+"grid-cell-special";return c.indexOfTotal(a)+1}});Ext.define("Ext.view.DropZone",{extend:"Ext.dd.DropZone",indicatorHtml:'<div class="'+Ext.baseCSSPrefix+'grid-drop-indicator-left"></div><div class="'+Ext.baseCSSPrefix+'grid-drop-indicator-right"></div>',indicatorCls:Ext.baseCSSPrefix+"grid-drop-indicator",constructor:function(a){var b=this;Ext.apply(b,a);if(!b.ddGroup){b.ddGroup="view-dd-zone-"+b.view.id}b.callParent([b.view.el])},fireViewEvent:function(){var b=this,a;b.lock();a=b.view.fireEvent.apply(b.view,arguments);b.unlock();return a},getTargetFromEvent:function(k){var j=k.getTarget(this.view.getItemSelector()),d,c,b,g,a,h;if(!j){d=k.getPageY();for(g=0,c=this.view.getNodes(),a=c.length;g<a;g++){b=c[g];h=Ext.fly(b).getBox();if(d<=h.bottom){return b}}}return j},getIndicator:function(){var a=this;if(!a.indicator){a.indicator=new Ext.Component({html:a.indicatorHtml,cls:a.indicatorCls,ownerCt:a.view,floating:true,shadow:false})}return a.indicator},getPosition:function(c,a){var g=c.getXY()[1],b=Ext.fly(a).getRegion(),d;if((b.bottom-g)>=(b.bottom-b.top)/2){d="before"}else{d="after"}return d},containsRecordAtOffset:function(d,b,g){if(!b){return false}var a=this.view,c=a.indexOf(b),e=a.getNode(c+g),h=e?a.getRecord(e):null;return h&&Ext.Array.contains(d,h)},positionIndicator:function(b,c,d){var g=this,i=g.view,h=g.getPosition(d,b),k=i.getRecord(b),a=c.records,j;if(!Ext.Array.contains(a,k)&&(h=="before"&&!g.containsRecordAtOffset(a,k,-1)||h=="after"&&!g.containsRecordAtOffset(a,k,1))){g.valid=true;if(g.overRecord!=k||g.currentPosition!=h){j=Ext.fly(b).getY()-i.el.getY()-1;if(h=="after"){j+=Ext.fly(b).getHeight()}g.getIndicator().setWidth(Ext.fly(i.el).getWidth()).showAt(0,j);g.overRecord=k;g.currentPosition=h}}else{g.invalidateDrop()}},invalidateDrop:function(){if(this.valid){this.valid=false;this.getIndicator().hide()}},onNodeOver:function(c,a,g,d){var b=this;if(!Ext.Array.contains(d.records,b.view.getRecord(c))){b.positionIndicator(c,d,g)}return b.valid?b.dropAllowed:b.dropNotAllowed},notifyOut:function(c,a,g,d){var b=this;b.callParent(arguments);delete b.overRecord;delete b.currentPosition;if(b.indicator){b.indicator.hide()}},onContainerOver:function(a,h,g){var d=this,b=d.view,c=b.store.getCount();if(c){d.positionIndicator(b.getNode(c-1),g,h)}else{delete d.overRecord;delete d.currentPosition;d.getIndicator().setWidth(Ext.fly(b.el).getWidth()).showAt(0,0);d.valid=true}return d.dropAllowed},onContainerDrop:function(a,c,b){return this.onNodeDrop(a,null,c,b)},onNodeDrop:function(g,a,i,h){var d=this,c=false,b={wait:false,processDrop:function(){d.invalidateDrop();d.handleNodeDrop(h,d.overRecord,d.currentPosition);c=true;d.fireViewEvent("drop",g,h,d.overRecord,d.currentPosition)},cancelDrop:function(){d.invalidateDrop();c=true}},j=false;if(d.valid){j=d.fireViewEvent("beforedrop",g,h,d.overRecord,d.currentPosition,b);if(b.wait){return}if(j!==false){if(!c){b.processDrop()}}}return j},destroy:function(){Ext.destroy(this.indicator);delete this.indicator;this.callParent()}});Ext.define("Ext.grid.ViewDropZone",{extend:"Ext.view.DropZone",indicatorHtml:'<div class="'+Ext.baseCSSPrefix+'grid-drop-indicator-left"></div><div class="'+Ext.baseCSSPrefix+'grid-drop-indicator-right"></div>',indicatorCls:Ext.baseCSSPrefix+"grid-drop-indicator",handleNodeDrop:function(b,d,e){var j=this.view,k=j.getStore(),h,a,c,g;if(b.copy){a=b.records;b.records=[];for(c=0,g=a.length;c<g;c++){b.records.push(a[c].copy(a[c].getId()))}}else{b.view.store.remove(b.records,b.view===j)}h=k.indexOf(d);if(e!=="before"){h++}k.insert(h,b.records);j.getSelectionModel().select(b.records)}});Ext.define("Ext.grid.column.Action",{extend:"Ext.grid.column.Column",alias:["widget.actioncolumn"],alternateClassName:"Ext.grid.ActionColumn",actionIdRe:new RegExp(Ext.baseCSSPrefix+"action-col-(\\d+)"),altText:"",menuText:"<i>Actions</i>",sortable:false,constructor:function(d){var g=this,b=Ext.apply({},d),c=b.items||[g],h,e,a;g.origRenderer=b.renderer||g.renderer;g.origScope=b.scope||g.scope;delete g.renderer;delete g.scope;delete b.renderer;delete b.scope;delete b.items;g.callParent([b]);g.items=c;for(e=0,a=c.length;e<a;++e){if(c[e].getClass){h=true;break}}if(g.origRenderer||h){g.hasCustomRenderer=true}},defaultRenderer:function(g,j){var e=this,b=Ext.baseCSSPrefix,k=e.origScope||e,d=e.items,c=d.length,a=0,h;g=Ext.isFunction(e.origRenderer)?e.origRenderer.apply(k,arguments)||"":"";j.tdCls+=" "+Ext.baseCSSPrefix+"action-col-cell";for(;a<c;a++){h=d[a];if(!h.hasActionConfiguration){h.stopSelection=e.stopSelection;h.disable=Ext.Function.bind(e.disableAction,e,[a],0);h.enable=Ext.Function.bind(e.enableAction,e,[a],0);h.hasActionConfiguration=true}g+='<img alt="'+(h.altText||e.altText)+'" src="'+(h.icon||Ext.BLANK_IMAGE_URL)+'" class="'+b+"action-col-icon "+b+"action-col-"+String(a)+" "+(h.disabled?b+"item-disabled":" ")+" "+(Ext.isFunction(h.getClass)?h.getClass.apply(h.scope||k,arguments):(h.iconCls||e.iconCls||""))+'"'+((h.tooltip)?' data-qtip="'+h.tooltip+'"':"")+" />"}return g},enableAction:function(b,a){var c=this;if(!b){b=0}else{if(!Ext.isNumber(b)){b=Ext.Array.indexOf(c.items,b)}}c.items[b].disabled=false;c.up("tablepanel").el.select("."+Ext.baseCSSPrefix+"action-col-"+b).removeCls(c.disabledCls);if(!a){c.fireEvent("enable",c)}},disableAction:function(b,a){var c=this;if(!b){b=0}else{if(!Ext.isNumber(b)){b=Ext.Array.indexOf(c.items,b)}}c.items[b].disabled=true;c.up("tablepanel").el.select("."+Ext.baseCSSPrefix+"action-col-"+b).addCls(c.disabledCls);if(!a){c.fireEvent("disable",c)}},destroy:function(){delete this.items;delete this.renderer;return this.callParent(arguments)},processEvent:function(i,l,n,a,j,g,c,p){var h=this,d=g.getTarget(),b,o,k,m=i=="keydown"&&g.getKey();if(m&&!Ext.fly(d).findParent(l.cellSelector)){d=Ext.fly(n).down("."+Ext.baseCSSPrefix+"action-col-icon",true)}if(d&&(b=d.className.match(h.actionIdRe))){o=h.items[parseInt(b[1],10)];if(o){if(i=="click"||(m==g.ENTER||m==g.SPACE)){k=o.handler||h.handler;if(k&&!o.disabled){k.call(o.scope||h.origScope||h,l,a,j,o,g,c,p)}}else{if(i=="mousedown"&&o.stopSelection!==false){return false}}}}return h.callParent(arguments)},cascade:function(b,a){b.call(a||this,this)},getRefItems:function(){return[]}});Ext.define("Ext.grid.column.Boolean",{extend:"Ext.grid.column.Column",alias:["widget.booleancolumn"],alternateClassName:"Ext.grid.BooleanColumn",trueText:"true",falseText:"false",undefinedText:" ",defaultRenderer:function(a){if(a===undefined){return this.undefinedText}if(!a||a==="false"){return this.falseText}return this.trueText}});Ext.define("Ext.grid.column.Date",{extend:"Ext.grid.column.Column",alias:["widget.datecolumn"],requires:["Ext.Date"],alternateClassName:"Ext.grid.DateColumn",initComponent:function(){if(!this.format){this.format=Ext.Date.defaultFormat}this.callParent(arguments)},defaultRenderer:function(a){return Ext.util.Format.date(a,this.format)}});Ext.define("Ext.grid.column.Number",{extend:"Ext.grid.column.Column",alias:["widget.numbercolumn"],requires:["Ext.util.Format"],alternateClassName:"Ext.grid.NumberColumn",format:"0,000.00",defaultRenderer:function(a){return Ext.util.Format.number(a,this.format)}});Ext.define("Ext.grid.column.Template",{extend:"Ext.grid.column.Column",alias:["widget.templatecolumn"],requires:["Ext.XTemplate"],alternateClassName:"Ext.grid.TemplateColumn",initComponent:function(){var a=this;a.tpl=(!Ext.isPrimitive(a.tpl)&&a.tpl.compile)?a.tpl:new Ext.XTemplate(a.tpl);a.hasCustomRenderer=true;a.callParent(arguments)},defaultRenderer:function(c,d,a){var b=Ext.apply({},a.data,a.getAssociatedData());return this.tpl.apply(b)}});Ext.define("Ext.grid.feature.Feature",{extend:"Ext.util.Observable",alias:"feature.feature",isFeature:true,disabled:false,hasFeatureEvent:true,eventPrefix:null,eventSelector:null,view:null,grid:null,collectData:false,constructor:function(a){this.initialConfig=a;this.callParent(arguments)},clone:function(){return new this.self(this.initialConfig)},init:Ext.emptyFn,getFeatureTpl:function(){return""},getFireEventArgs:function(b,a,c,d){return[b,a,c,d]},attachEvents:function(){},getFragmentTpl:Ext.emptyFn,mutateMetaRowTpl:Ext.emptyFn,getMetaRowTplFragments:function(){return{}},getTableFragments:function(){return{}},getAdditionalData:function(c,a,b,d){return{}},enable:function(){this.disabled=false},disable:function(){this.disabled=true}});Ext.define("Ext.grid.feature.AbstractSummary",{extend:"Ext.grid.feature.Feature",alias:"feature.abstractsummary",showSummaryRow:true,nestedIdRe:/\{\{id\}([\w\-]*)\}/g,init:function(){var a=this;a.grid.optimizedColumnMove=false;a.view.mon(a.view.store,{update:a.onStoreUpdate,scope:a})},onStoreUpdate:function(){var a=this.view;if(this.showSummaryRow){a.saveScrollState();a.refresh();a.restoreScrollState()}},toggleSummaryRow:function(a){this.showSummaryRow=!!a},getSummaryFragments:function(){var a={};if(this.showSummaryRow){Ext.apply(a,{printSummaryRow:Ext.bind(this.printSummaryRow,this)})}return a},printSummaryRow:function(b){var a=this.view.getTableChunker().metaRowTpl.join(""),c=Ext.baseCSSPrefix;a=a.replace(c+"grid-row",c+"grid-row-summary");a=a.replace("{{id}}","{gridSummaryValue}");a=a.replace(this.nestedIdRe,"{id$1}");a=a.replace("{[this.embedRowCls()]}","{rowCls}");a=a.replace("{[this.embedRowAttr()]}","{rowAttr}");a=new Ext.XTemplate(a,{firstOrLastCls:Ext.view.TableChunker.firstOrLastCls});return a.applyTemplate({columns:this.getPrintData(b)})},getColumnValue:function(c,a){var b=Ext.getCmp(c.id),e=a[c.id],d=b.summaryRenderer;if(!e&&e!==0){e="\u00a0"}if(d){e=d.call(b.scope||this,e,a,c.dataIndex)}return e},getSummary:function(a,b,d,c){if(b){if(Ext.isFunction(b)){return a.aggregate(b,null,c)}switch(b){case"count":return a.count(c);case"min":return a.min(d,c);case"max":return a.max(d,c);case"sum":return a.sum(d,c);case"average":return a.average(d,c);default:return c?{}:""}}}});Ext.define("Ext.grid.feature.Chunking",{extend:"Ext.grid.feature.Feature",alias:"feature.chunking",chunkSize:20,rowHeight:Ext.isIE?27:26,visibleChunk:0,hasFeatureEvent:false,attachEvents:function(){this.view.el.on("scroll",this.onBodyScroll,this,{buffer:300})},onBodyScroll:function(g,c){var b=this.view,d=c.scrollTop,a=Math.floor(d/this.rowHeight/this.chunkSize);if(a!==this.visibleChunk){this.visibleChunk=a;b.refresh();b.el.dom.scrollTop=d;b.el.dom.scrollTop=d}},collectData:function(d,m,l,k,c){var j=this,e=c.rows.length,b=0,g=0,a=j.visibleChunk,p,n,h=c.rows;delete c.rows;c.chunks=[];for(;b<e;b+=j.chunkSize,g++){if(b+j.chunkSize>e){n=e-b}else{n=j.chunkSize}if(g>=a-1&&g<=a+1){p=h.slice(b,b+j.chunkSize)}else{p=[]}c.chunks.push({rows:p,fullWidth:k,chunkHeight:n*j.rowHeight})}return c},getTableFragments:function(){return{openTableWrap:function(){return'<tpl for="chunks"><div class="'+Ext.baseCSSPrefix+'grid-chunk" style="height: {chunkHeight}px;">'},closeTableWrap:function(){return"</div></tpl>"}}}});Ext.define("Ext.grid.feature.Grouping",{extend:"Ext.grid.feature.Feature",alias:"feature.grouping",eventPrefix:"group",eventSelector:"."+Ext.baseCSSPrefix+"grid-group-hd",bodySelector:"."+Ext.baseCSSPrefix+"grid-group-body",constructor:function(){var a=this;a.collapsedState={};a.callParent(arguments)},groupHeaderTpl:"{columnName}: {name}",depthToIndent:17,collapsedCls:Ext.baseCSSPrefix+"grid-group-collapsed",hdCollapsedCls:Ext.baseCSSPrefix+"grid-group-hd-collapsed",hdCollapsibleCls:Ext.baseCSSPrefix+"grid-group-hd-collapsible",groupByText:"Group by this field",showGroupsText:"Show in groups",hideGroupedHeader:false,startCollapsed:false,enableGroupingMenu:true,enableNoGroups:true,collapsible:true,enable:function(){var c=this,a=c.view,b=a.store,d;c.lastGroupField=c.getGroupField();if(c.lastGroupIndex){c.block();b.group(c.lastGroupIndex);c.unblock()}c.callParent();d=c.view.headerCt.getMenu().down("#groupToggleMenuItem");d.setChecked(true,true);c.refreshIf()},disable:function(){var d=this,a=d.view,b=a.store,g=b.remoteGroup,e,c;c=b.groupers.first();if(c){d.lastGroupIndex=c.property;d.block();b.clearGrouping();d.unblock()}d.callParent();e=d.view.headerCt.getMenu().down("#groupToggleMenuItem");e.setChecked(true,true);e.setChecked(false,true);d.refreshIf()},refreshIf:function(){var b=this.grid.ownerCt,a=this.view;if(!a.store.remoteGroup&&!this.blockRefresh){if(b&&b.lockable){b.view.refresh()}else{a.refresh()}}},getFeatureTpl:function(b,c,a,d){return["<tpl if=\"typeof rows !== 'undefined'\">",'<tr id="{groupHeaderId}" class="'+Ext.baseCSSPrefix+'grid-group-hd {hdCollapsedCls} {collapsibleClass}"><td class="'+Ext.baseCSSPrefix+'grid-cell" colspan="'+c.columns.length+'" {[this.indentByDepth(values)]}><div class="'+Ext.baseCSSPrefix+'grid-cell-inner"><div class="'+Ext.baseCSSPrefix+'grid-group-title">{collapsed}{[this.renderGroupHeaderTpl(values, parent)]}</div></div></td></tr>','<tr id="{groupBodyId}" class="'+Ext.baseCSSPrefix+'grid-group-body {collapsedCls}"><td colspan="'+c.columns.length+'">{[this.recurse(values)]}</td></tr>',"</tpl>"].join("")},getFragmentTpl:function(){var a=this;return{indentByDepth:a.indentByDepth,depthToIndent:a.depthToIndent,renderGroupHeaderTpl:function(b,c){return Ext.XTemplate.getTpl(a,"groupHeaderTpl").apply(b,c)}}},indentByDepth:function(a){return'style="padding-left:'+((a.depth||0)*this.depthToIndent)+'px;"'},destroy:function(){delete this.view;delete this.prunedHeader},attachEvents:function(){var b=this,a=b.view;a.on({scope:b,groupclick:b.onGroupClick,rowfocus:b.onRowFocus});a.mon(a.store,{scope:b,groupchange:b.onGroupChange,remove:b.onRemove,add:b.onAdd,update:b.onUpdate});if(b.enableGroupingMenu){b.injectGroupingMenu()}b.pruneGroupedHeader();b.lastGroupField=b.getGroupField();b.block();b.onGroupChange();b.unblock()},onAdd:function(l,c){var j=this,k=j.view,a=j.getGroupField(),g=0,h=c.length,n,d,b,e,m;if(k.rendered){d={};n={};for(;g<h;++g){m=c[g].get(a);if(d[m]===undefined){d[m]=0}d[m]+=1}b=l.getGroups();for(g=0,h=b.length;g<h;++g){m=b[g];n[m.name]=m.children.length}for(m in d){if(d[m]===n[m]){e=true;break}}if(e){k.refresh()}}},onUpdate:function(c,b,d,e){var a=this.view;if(a.rendered&&!e||Ext.Array.contains(e,this.getGroupField())){a.refresh()}},onRemove:function(d,c){var e=this,b=e.getGroupField(),g=c.get(b),a=e.view;if(a.rendered){if(d.findExact(b,g)===-1){e.view.refresh()}}},injectGroupingMenu:function(){var a=this,b=a.view.headerCt;b.showMenuBy=a.showMenuBy;b.getMenuItems=a.getMenuItems()},showMenuBy:function(b,e){var d=this.getMenu(),c=d.down("#groupMenuItem"),a=e.groupable===false?"disable":"enable";c[a]();Ext.grid.header.Container.prototype.showMenuBy.apply(this,arguments)},getMenuItems:function(){var g=this,c=g.groupByText,e=g.disabled||!g.getGroupField(),a=g.showGroupsText,d=g.enableNoGroups,b=g.view.headerCt.getMenuItems;return function(){var h=b.call(this);h.push("-",{iconCls:Ext.baseCSSPrefix+"group-by-icon",itemId:"groupMenuItem",text:c,handler:g.onGroupMenuItemClick,scope:g});if(d){h.push({itemId:"groupToggleMenuItem",text:a,checked:!e,checkHandler:g.onGroupToggleMenuItemClick,scope:g})}return h}},onGroupMenuItemClick:function(c,g){var d=this,h=c.parentMenu,i=h.activeHeader,a=d.view,b=a.store;delete d.lastGroupIndex;d.block();d.enable();b.group(i.dataIndex);d.pruneGroupedHeader();d.unblock();d.refreshIf()},block:function(){this.blockRefresh=this.view.blockRefresh=true},unblock:function(){this.blockRefresh=this.view.blockRefresh=false},onGroupToggleMenuItemClick:function(a,b){this[b?"enable":"disable"]()},pruneGroupedHeader:function(){var a=this,b=a.getGroupedHeader();if(a.hideGroupedHeader&&b){if(a.prunedHeader){a.prunedHeader.show()}a.prunedHeader=b;b.hide()}},getGroupedHeader:function(){var a=this.getGroupField(),b=this.view.headerCt;return a?b.down("[dataIndex="+a+"]"):null},getGroupField:function(){var a=this.view.store.groupers.first();if(a){return a.property}return""},onRowFocus:function(c){var b=this.view.getNode(c),a=Ext.fly(b).up("."+this.collapsedCls);if(a){this.expand(a)}},isExpanded:function(a){return(this.collapsedState[a]===false)},expand:function(i,b,h){var e=this,a=e.view,c,g,d=e.lockingPartner;if(Ext.isString(i)){g=Ext.fly(e.getGroupBodyId(i),"_grouping")}else{g=Ext.fly(i,"_grouping");i=e.getGroupName(g)}c=Ext.get(e.getGroupHeaderId(i));if(e.collapsedState[i]){g.removeCls(e.collapsedCls);g.prev().removeCls(e.hdCollapsedCls);if(h!==true){a.refreshSize()}a.fireEvent("groupexpand",a,c,i);e.collapsedState[i]=false;if(d){d.expand(i,b,h)}if(b){g.scrollIntoView(a.el,null,true)}}},expandAll:function(){var d=this,b=d.view,c=b.el.select(d.eventSelector).elements,g,a=c.length;for(g=0;g<a;g++){d.expand(Ext.fly(c[g]).next(),false,true)}b.refreshSize()},collapse:function(i,b,h){var e=this,a=e.view,c,g,d=e.lockingPartner;if(Ext.isString(i)){g=Ext.fly(e.getGroupBodyId(i),"_grouping")}else{g=Ext.fly(i,"_grouping");i=e.getGroupName(g)}c=Ext.get(e.getGroupHeaderId(i));if(!e.collapsedState[i]){g.addCls(e.collapsedCls);g.prev().addCls(e.hdCollapsedCls);if(h!==true){a.refreshSize()}a.fireEvent("groupcollapse",a,c,i);e.collapsedState[i]=true;if(d){d.collapse(i,b,h)}if(b){c.scrollIntoView(a.el,null,true)}}},collapseAll:function(){var d=this,b=d.view,c=b.el.select(d.eventSelector).elements,g,a=c.length;for(g=0;g<a;g++){d.collapse(Ext.fly(c[g]).next(),false,true)}b.refreshSize()},onGroupChange:function(){var d=this,e=d.getGroupField(),c,a,b;if(d.hideGroupedHeader){if(d.lastGroupField){c=d.getMenuItem(d.lastGroupField);if(c){c.setChecked(true)}}if(e){a=d.view.headerCt.getVisibleGridColumns();b=((a.length===1)&&(a[0].dataIndex==e));c=d.getMenuItem(e);if(c&&!b){c.setChecked(false)}}}d.refreshIf();d.lastGroupField=e},getMenuItem:function(b){var a=this.view,d=a.headerCt.down("gridcolumn[dataIndex="+b+"]"),c=a.headerCt.getMenu();return d?c.down("menuitem[headerId="+d.id+"]"):null},onGroupClick:function(a,c,g,d){var b=this;if(b.collapsible){if(b.collapsedState[g]){b.expand(g)}else{b.collapse(g)}}},getMetaRowTplFragments:function(){return{isRow:this.isRow,closeRow:this.closeRow}},isRow:function(){return"<tpl if=\"typeof rows === 'undefined'\">"},closeRow:function(){return"</tpl>"},mutateMetaRowTpl:function(a){a.unshift("{[this.isRow()]}");a.push("{[this.closeRow()]}")},getAdditionalData:function(e,j,g,i){var h=this.view,d=h.headerCt,c=d.items.getAt(0),b={},a;if(c){a=c.id+"-tdAttr";b[a]=this.indentByDepth(e)+" "+(i[a]?i[a]:"");b.collapsed="true";b.data=g.getData()}return b},getGroupRows:function(m,d,n,k){var i=this,c=m.children,o=m.rows=[],j=i.view,g=i.getGroupedHeader(),b=i.getGroupField(),h=-1,a,l=d.length,e;if(j.store.buffered){i.collapsible=false}m.viewId=j.id;for(a=0;a<l;a++){e=d[a];if(e.get(b)==m.name){h=a}if(Ext.Array.indexOf(c,e)!=-1){o.push(Ext.apply(n[a],{depth:1}))}}m.groupField=b,m.groupHeaderId=i.getGroupHeaderId(m.name);m.groupBodyId=i.getGroupBodyId(m.name);m.fullWidth=k;m.columnName=g?g.text:b;m.groupValue=m.name;if(g&&h>-1){m.name=m.renderedValue=n[h][g.id]}if(i.collapsedState[m.name]){m.collapsedCls=i.collapsedCls;m.hdCollapsedCls=i.hdCollapsedCls}else{m.collapsedCls=m.hdCollapsedCls=""}if(i.collapsible){m.collapsibleClass=i.hdCollapsibleCls}else{m.collapsibleClass=""}return m},getGroupHeaderId:function(a){return this.view.id+"-hd-"+a},getGroupBodyId:function(a){return this.view.id+"-bd-"+a},getGroupName:function(a){var b=this,c;c=Ext.fly(a).findParent(b.eventSelector);if(c){return c.id.split(this.view.id+"-hd-")[1]}c=Ext.fly(a).findParent(b.bodySelector);if(c){return c.id.split(this.view.id+"-bd-")[1]}},collectData:function(c,p,n,k,a){var h=this,l=h.view.store,j=h.collapsedState,e,d,b,i,m;if(h.startCollapsed){h.startCollapsed=false;e=true}if(!h.disabled&&l.isGrouped()){a.rows=b=l.getGroups();i=b.length;for(d=0;d<i;d++){m=b[d];if(e){j[m.name]=true}h.getGroupRows(m,c,p,k)}}return a},getFireEventArgs:function(b,a,d,c){return[b,a,d,this.getGroupName(d),c]}});Ext.define("Ext.grid.feature.GroupingSummary",{extend:"Ext.grid.feature.Grouping",alias:"feature.groupingsummary",mixins:{summary:"Ext.grid.feature.AbstractSummary"},init:function(){this.mixins.summary.init.call(this)},getFeatureTpl:function(){var a=this.callParent(arguments);if(this.showSummaryRow){a=a.replace("</tpl>","");a+="{[this.printSummaryRow(xindex)]}</tpl>"}return a},getFragmentTpl:function(){var b=this,a=b.callParent();Ext.apply(a,b.getSummaryFragments());if(b.showSummaryRow){b.summaryGroups=b.view.store.getGroups();b.summaryData=b.generateSummaryData()}return a},getPrintData:function(j){var k=this,e=k.view.headerCt.getColumnsForTpl(),h=0,b=e.length,g=[],a=k.summaryGroups[j-1].name,d=k.summaryData[a],c;for(;h<b;++h){c=e[h];c.gridSummaryValue=this.getColumnValue(c,d);g.push(c)}return g},generateSummaryData:function(){var t=this,u={},n={},h=t.view.store,r=this.getGroupField(),a=h.proxy.reader,q=t.summaryGroups,b=t.view.headerCt.getColumnsForTpl(),j,o,e,c,m,v,p,k,l,g,d;for(o=0,e=q.length;o<e;++o){u[q[o].name]={}}if(t.remoteRoot&&a.rawData){m=a.root;a.root=t.remoteRoot;a.buildExtractors(true);k=a.getRoot(a.rawData);g=k.length;if(!a.convertRecordData){a.buildExtractors()}for(l=0;l<g;l++){d={};a.convertRecordData(d,k[l]);n[d[r]]=d}a.root=m;a.buildExtractors(true)}for(o=0,e=b.length;o<e;++o){p=Ext.getCmp(b[o].id);c=t.getSummary(h,p.summaryType,p.dataIndex,true);for(v in c){if(c.hasOwnProperty(v)){u[v][p.id]=c[v]}}for(v in n){if(n.hasOwnProperty(v)){j=n[v][p.dataIndex];if(j!==undefined&&u[v]!==undefined){u[v][p.id]=j}}}}return u}});Ext.define("Ext.grid.feature.RowBody",{extend:"Ext.grid.feature.Feature",alias:"feature.rowbody",rowBodyHiddenCls:Ext.baseCSSPrefix+"grid-row-body-hidden",rowBodyTrCls:Ext.baseCSSPrefix+"grid-rowbody-tr",rowBodyTdCls:Ext.baseCSSPrefix+"grid-cell-rowbody",rowBodyDivCls:Ext.baseCSSPrefix+"grid-rowbody",eventPrefix:"rowbody",eventSelector:"."+Ext.baseCSSPrefix+"grid-rowbody-tr",getRowBody:function(a){return['<tr class="'+this.rowBodyTrCls+' {rowBodyCls}">','<td class="'+this.rowBodyTdCls+'" colspan="{rowBodyColspan}">','<div class="'+this.rowBodyDivCls+'">{rowBody}</div>',"</td>","</tr>"].join("")},getMetaRowTplFragments:function(){return{getRowBody:this.getRowBody,rowBodyTrCls:this.rowBodyTrCls,rowBodyTdCls:this.rowBodyTdCls,rowBodyDivCls:this.rowBodyDivCls}},mutateMetaRowTpl:function(a){a.push("{[this.getRowBody(values)]}")},getAdditionalData:function(c,a,b,g){var d=this.view.headerCt,e=d.getColumnCount();return{rowBody:"",rowBodyCls:this.rowBodyCls,rowBodyColspan:e}}});Ext.define("Ext.grid.feature.RowWrap",{extend:"Ext.grid.feature.Feature",alias:"feature.rowwrap",hasFeatureEvent:false,init:function(){if(!this.disabled){this.enable()}},getRowSelector:function(){return"tr:has(> "+this.view.cellSelector+")"},enable:function(){var b=this,a=b.view;b.callParent();b.savedRowSelector=a.rowSelector;a.rowSelector=b.getRowSelector();a.getComponentLayout().getColumnSelector=b.getColumnSelector},disable:function(){var c=this,a=c.view,b=c.savedRowSelector;c.callParent();if(b){a.rowSelector=b}delete c.savedRowSelector},mutateMetaRowTpl:function(a){var b=Ext.baseCSSPrefix;a[0]=a[0].replace(b+"grid-row","");a[0]=a[0].replace("{[this.embedRowCls()]}","");a.unshift('<table class="'+b+"grid-table "+b+'grid-table-resizer" style="width: {[this.embedFullWidth()]}px;">');a.unshift('<tr class="'+b+'grid-row {[this.embedRowCls()]}"><td colspan="{[this.embedColSpan()]}"><div class="'+b+'grid-rowwrap-div">');a.push("</table>");a.push("</div></td></tr>")},embedColSpan:function(){return"{colspan}"},embedFullWidth:function(){return"{fullWidth}"},getAdditionalData:function(h,p,k,m){var d=this.view.headerCt,c=d.getColumnCount(),n=d.getFullWidth(),l=d.query("gridcolumn"),q=l.length,g=0,b={colspan:c,fullWidth:n},a,j,e;for(;g<q;g++){a=l[g].id;j=a+"-tdCls";e=Ext.baseCSSPrefix+"grid-col-resizer-"+a;b[j]=e+" "+(m[j]?m[j]:"");b[a+"-tdAttr"]=' style="width: '+(l[g].hidden?0:l[g].getDesiredWidth())+'px;" ';if(m[a+"-tdAttr"]){b[a+"-tdAttr"]+=m[a+"-tdAttr"]}}return b},getMetaRowTplFragments:function(){return{embedFullWidth:this.embedFullWidth,embedColSpan:this.embedColSpan}},getColumnSelector:function(b){var a=Ext.baseCSSPrefix+"grid-col-resizer-"+b.id;return"th."+a+",td."+a}});Ext.define("Ext.grid.feature.Summary",{extend:"Ext.grid.feature.AbstractSummary",alias:"feature.summary",getFragmentTpl:function(){this.summaryData=this.generateSummaryData();return this.getSummaryFragments()},getTableFragments:function(){if(this.showSummaryRow){return{closeRows:this.closeRows}}},closeRows:function(){return"</tpl>{[this.printSummaryRow()]}"},getPrintData:function(a){var g=this,c=g.view.headerCt.getColumnsForTpl(),b=0,e=c.length,h=[],j=g.summaryData,d;for(;b<e;++b){d=c[b];d.gridSummaryValue=this.getColumnValue(d,j);h.push(d)}return h},generateSummaryData:function(){var h=this,d={},j=h.view.store,c=h.view.headerCt.getColumnsForTpl(),e=0,a=c.length,b,k,g;for(e=0,a=c.length;e<a;++e){g=Ext.getCmp(c[e].id);d[g.id]=h.getSummary(j,g.summaryType,g.dataIndex,false)}return d}});Ext.define("Ext.grid.plugin.Editing",{alias:"editing.editing",extend:"Ext.AbstractPlugin",requires:["Ext.grid.column.Column","Ext.util.KeyNav"],mixins:{observable:"Ext.util.Observable"},clicksToEdit:2,triggerEvent:undefined,defaultFieldXType:"textfield",editStyle:"",constructor:function(a){var b=this;b.addEvents("beforeedit","edit","validateedit","canceledit");b.callParent(arguments);b.mixins.observable.constructor.call(b);b.on("edit",function(c,d){b.fireEvent("afteredit",c,d)})},init:function(a){var b=this;b.grid=a;b.view=a.view;b.initEvents();b.mon(a,"reconfigure",b.onReconfigure,b);b.onReconfigure();a.relayEvents(b,["beforeedit","edit","validateedit","canceledit"]);a.isEditable=true;a.editingPlugin=a.view.editingPlugin=b},onReconfigure:function(){this.initFieldAccessors(this.view.getGridColumns())},destroy:function(){var b=this,a=b.grid;Ext.destroy(b.keyNav);b.removeFieldAccessors(a.getView().getGridColumns());b.clearListeners();delete b.grid.editingPlugin;delete b.grid.view.editingPlugin;delete b.grid;delete b.view;delete b.editor;delete b.keyNav},getEditStyle:function(){return this.editStyle},initFieldAccessors:function(a){a=[].concat(a);var d=this,g,e=a.length,b;for(g=0;g<e;g++){b=a[g];Ext.applyIf(b,{getEditor:function(c,h){return d.getColumnField(this,h)},setEditor:function(c){d.setColumnField(this,c)}})}},removeFieldAccessors:function(a){a=[].concat(a);var e,d=a.length,b;for(e=0;e<d;e++){b=a[e];delete b.getEditor;delete b.setEditor}},getColumnField:function(b,a){var c=b.field;if(!c&&b.editor){c=b.editor;delete b.editor}if(!c&&a){c=a}if(c){if(Ext.isString(c)){c={xtype:c}}if(!c.isFormField){c=Ext.ComponentManager.create(c,this.defaultFieldXType)}b.field=c;Ext.apply(c,{name:b.dataIndex});return c}},setColumnField:function(a,b){if(Ext.isObject(b)&&!b.isFormField){b=Ext.ComponentManager.create(b,this.defaultFieldXType)}a.field=b},initEvents:function(){var a=this;a.initEditTriggers();a.initCancelTriggers()},initCancelTriggers:Ext.emptyFn,initEditTriggers:function(){var b=this,a=b.view;if(b.triggerEvent=="cellfocus"){b.mon(a,"cellfocus",b.onCellFocus,b)}else{if(b.triggerEvent=="rowfocus"){b.mon(a,"rowfocus",b.onRowFocus,b)}else{if(a.selModel.isCellModel){a.onCellFocus=Ext.Function.bind(b.beforeViewCellFocus,b)}b.mon(a,b.triggerEvent||("cell"+(b.clicksToEdit===1?"click":"dblclick")),b.onCellClick,b)}}b.initAddRemoveHeaderEvents();a.on("render",b.initKeyNavHeaderEvents,b,{single:true})},beforeViewCellFocus:function(a){if(this.view.selModel.keyNavigation||!this.editing||!this.isCellEditable||!this.isCellEditable(a.row,a.columnHeader)){this.view.focusCell.apply(this.view,arguments)}},onRowFocus:function(a,c,b){this.startEdit(c,0)},onCellFocus:function(c,b,a){this.startEdit(a.row,a.column)},onCellClick:function(c,a,i,b,h,d,g){if(!c.expanderSelector||!g.getTarget(c.expanderSelector)){this.startEdit(b,c.getHeaderAtIndex(i))}},initAddRemoveHeaderEvents:function(){var a=this;a.mon(a.grid.headerCt,{scope:a,add:a.onColumnAdd,remove:a.onColumnRemove})},initKeyNavHeaderEvents:function(){var a=this;a.keyNav=Ext.create("Ext.util.KeyNav",a.view.el,{enter:a.onEnterKey,esc:a.onEscKey,scope:a})},onColumnAdd:function(a,b){if(b.isHeader){this.initFieldAccessors(b)}},onColumnRemove:function(a,b){if(b.isHeader){this.removeFieldAccessors(b)}},onEnterKey:function(h){var d=this,c=d.grid,b=c.getSelectionModel(),a,i,g=c.headerCt.getHeaderAtIndex(0);if(b.getCurrentPosition){i=b.getCurrentPosition();if(i){a=c.store.getAt(i.row);g=c.headerCt.getHeaderAtIndex(i.column)}}else{a=b.getLastSelected()}if(a&&g){d.startEdit(a,g)}},onEscKey:function(a){this.cancelEdit()},beforeEdit:Ext.emptyFn,startEdit:function(a,d){var c=this,b=c.getEditingContext(a,d);if(b==null||c.beforeEdit(b)===false||c.fireEvent("beforeedit",c,b)===false||b.cancel||!c.grid.view.isVisible(true)){return false}c.context=b;c.editing=true},getEditingContext:function(b,h){var g=this,c=g.grid,a=c.getView(),e=a.getNode(b),d,i;if(!e){return}h=c.headerCt.getVisibleHeaderClosestToIndex(Ext.isNumber(h)?h:h.getIndex());if(!h){return}i=h.getIndex();if(Ext.isNumber(b)){d=b;b=a.getRecord(e)}else{d=a.indexOf(e)}return{grid:c,record:b,field:h.dataIndex,value:b.get(h.dataIndex),row:a.getNode(d),column:h,rowIdx:d,colIdx:i}},cancelEdit:function(){var a=this;a.editing=false;a.fireEvent("canceledit",a,a.context)},completeEdit:function(){var a=this;if(a.editing&&a.validateEdit()){a.fireEvent("edit",a,a.context)}delete a.context;a.editing=false},validateEdit:function(){var b=this,a=b.context;return b.fireEvent("validateedit",b,a)!==false&&!a.cancel}});Ext.define("Ext.grid.plugin.CellEditing",{alias:"plugin.cellediting",extend:"Ext.grid.plugin.Editing",requires:["Ext.grid.CellEditor","Ext.util.DelayedTask"],constructor:function(){this.callParent(arguments);this.editors=new Ext.util.MixedCollection(false,function(a){return a.editorId});this.editTask=new Ext.util.DelayedTask()},onReconfigure:function(){this.editors.clear();this.callParent()},destroy:function(){var a=this;a.editTask.cancel();a.editors.each(Ext.destroy,Ext);a.editors.clear();a.callParent(arguments)},onBodyScroll:function(){var c=this,b=c.getActiveEditor(),a=c.view.el.getScroll();if(b&&b.editing){if(a.top!==c.scroll.top){if(b.field){if(b.field.triggerBlur){b.field.triggerBlur()}else{b.field.blur()}}}else{b.realign()}}c.scroll=a},initCancelTriggers:function(){var c=this,b=c.grid,a=b.view;a.addElListener("mousewheel",c.cancelEdit,c);c.mon(a,"bodyscroll",c.onBodyScroll,c);c.mon(b,{columnresize:c.cancelEdit,columnmove:c.cancelEdit,scope:c})},isCellEditable:function(a,d){var c=this,b=c.getEditingContext(a,d);if(c.grid.view.isVisible(true)&&b){d=b.column;a=b.record;if(d&&c.getEditor(a,d)){return true}}},startEdit:function(a,g){var d=this,c=d.getEditingContext(a,g),e,b;d.completeEdit();if(!c||!d.grid.view.isVisible(true)){return false}a=c.record;g=c.column;if(g&&!g.getEditor(a)){return false}e=a.get(g.dataIndex);c.originalValue=c.value=e;if(d.beforeEdit(c)===false||d.fireEvent("beforeedit",d,c)===false||c.cancel){return false}b=d.getEditor(a,g);d.grid.view.cancelFocus();d.view.focusCell({row:c.rowIdx,column:c.colIdx});if(b){d.editTask.delay(15,d.showEditor,d,[b,c,e]);return true}return false},showEditor:function(b,c,h){var e=this,a=c.record,g=c.column,i=e.grid.getSelectionModel(),d=i.getCurrentPosition();e.context=c;e.setActiveEditor(b);e.setActiveRecord(a);e.setActiveColumn(g);if(i.selectByPosition&&(!d||d.column!==c.colIdx||d.row!==c.rowIdx)){i.selectByPosition({row:c.rowIdx,column:c.colIdx})}b.startEdit(e.getCell(a,g),h);e.editing=true;e.scroll=e.view.el.getScroll()},completeEdit:function(){var a=this.getActiveEditor();if(a){a.completeEdit();this.editing=false}},setActiveEditor:function(a){this.activeEditor=a},getActiveEditor:function(){return this.activeEditor},setActiveColumn:function(a){this.activeColumn=a},getActiveColumn:function(){return this.activeColumn},setActiveRecord:function(a){this.activeRecord=a},getActiveRecord:function(){return this.activeRecord},getEditor:function(a,d){var g=this,e=g.editors,c=d.getItemId(),b=e.getByKey(c);if(b){return b}else{b=d.getEditor(a);if(!b){return false}if(!(b instanceof Ext.grid.CellEditor)){b=new Ext.grid.CellEditor({editorId:c,field:b,ownerCt:g.grid})}else{b.ownerCt=g.grid}b.editingPlugin=g;b.isForTree=g.grid.isTree;b.on({scope:g,specialkey:g.onSpecialKey,complete:g.onEditComplete,canceledit:g.cancelEdit});e.add(b);return b}},setColumnField:function(b,c){var a=this.editors.getByKey(b.getItemId());Ext.destroy(a,b.field);this.editors.removeAtKey(b.getItemId());this.callParent(arguments)},getCell:function(a,b){return this.grid.getView().getCell(a,b)},onSpecialKey:function(a,g,d){var c=this,b=c.grid,h;if(d.getKey()===d.TAB){d.stopEvent();if(a){a.onEditorTab(d)}h=b.getSelectionModel();if(h.onEditorTab){h.onEditorTab(c,d)}}},onEditComplete:function(c,h,b){var g=this,d=g.grid,e=g.getActiveColumn(),i=d.getSelectionModel(),a;if(e){a=g.context.record;g.setActiveEditor(null);g.setActiveColumn(null);g.setActiveRecord(null);if(!g.validateEdit()){return}if(!a.isEqual(h,b)){a.set(e.dataIndex,h)}if(i.setCurrentPosition){i.setCurrentPosition(i.getCurrentPosition())}d.getView().getEl(e).focus();g.context.value=h;g.fireEvent("edit",g,g.context)}},cancelEdit:function(){var c=this,b=c.getActiveEditor(),a=c.grid.getView().getEl(c.getActiveColumn());c.setActiveEditor(null);c.setActiveColumn(null);c.setActiveRecord(null);if(b){b.cancelEdit();a.focus();c.callParent(arguments)}},startEditByPosition:function(a){a.column=this.view.getHeaderCt().getVisibleHeaderClosestToIndex(a.column).getIndex();return this.startEdit(a.row,a.column)}});Ext.define("Ext.grid.plugin.DragDrop",{extend:"Ext.AbstractPlugin",alias:"plugin.gridviewdragdrop",uses:["Ext.view.DragZone","Ext.grid.ViewDropZone"],dragText:"{0} selected row{1}",ddGroup:"GridDD",enableDrop:true,enableDrag:true,init:function(a){a.on("render",this.onViewRender,this,{single:true})},destroy:function(){Ext.destroy(this.dragZone,this.dropZone)},enable:function(){var a=this;if(a.dragZone){a.dragZone.unlock()}if(a.dropZone){a.dropZone.unlock()}a.callParent()},disable:function(){var a=this;if(a.dragZone){a.dragZone.lock()}if(a.dropZone){a.dropZone.lock()}a.callParent()},onViewRender:function(a){var b=this;if(b.enableDrag){b.dragZone=new Ext.view.DragZone({view:a,ddGroup:b.dragGroup||b.ddGroup,dragText:b.dragText})}if(b.enableDrop){b.dropZone=new Ext.grid.ViewDropZone({view:a,ddGroup:b.dropGroup||b.ddGroup})}}});Ext.define("Ext.grid.plugin.RowEditing",{extend:"Ext.grid.plugin.Editing",alias:"plugin.rowediting",requires:["Ext.grid.RowEditor"],editStyle:"row",autoCancel:true,errorSummary:true,constructor:function(){var a=this;a.callParent(arguments);if(!a.clicksToMoveEditor){a.clicksToMoveEditor=a.clicksToEdit}a.autoCancel=!!a.autoCancel},init:function(a){this.callParent([a])},destroy:function(){var a=this;Ext.destroy(a.editor);a.callParent(arguments)},startEdit:function(a,d){var c=this,b=c.getEditor();if((b.beforeEdit()!==false)&&(c.callParent(arguments)!==false)){b.startEdit(c.context.record,c.context.column);return true}return false},cancelEdit:function(){var a=this;if(a.editing){a.getEditor().cancelEdit();a.callParent(arguments)}},completeEdit:function(){var a=this;if(a.editing&&a.validateEdit()){a.editing=false;a.fireEvent("edit",a,a.context)}},validateEdit:function(){var k=this,h=k.editor,b=k.context,g=b.record,m={},d={},j=h.items.items,i,c=j.length,a,l;for(i=0;i<c;i++){l=j[i];a=l.name;m[a]=l.getValue();d[a]=g.get(a)}Ext.apply(b,{newValues:m,originalValues:d});return k.callParent(arguments)&&k.getEditor().completeEdit()},getEditor:function(){var a=this;if(!a.editor){a.editor=a.initEditor()}return a.editor},initEditor:function(){var h=this,c=h.grid,i=h.view,d=c.headerCt,e=["saveBtnText","cancelBtnText","errorsText","dirtyText"],j,a=e.length,g={autoCancel:h.autoCancel,errorSummary:h.errorSummary,fields:d.getGridColumns(),hidden:true,view:i,editingPlugin:h,renderTo:i.el},k;for(j=0;j<a;j++){k=e[j];if(Ext.isDefined(h[k])){g[k]=h[k]}}return Ext.create("Ext.grid.RowEditor",g)},initEditTriggers:function(){var b=this,a=b.view,c=b.clicksToMoveEditor===1?"click":"dblclick";b.callParent(arguments);if(b.clicksToMoveEditor!==b.clicksToEdit){b.mon(a,"cell"+c,b.moveEditorByClick,b)}a.on({render:function(){b.mon(b.grid.headerCt,{scope:b,columnresize:b.onColumnResize,columnhide:b.onColumnHide,columnshow:b.onColumnShow,columnmove:b.onColumnMove})},single:true})},startEditByClick:function(){var a=this;if(!a.editing||a.clicksToMoveEditor===a.clicksToEdit){a.callParent(arguments)}},moveEditorByClick:function(){var a=this;if(a.editing){a.superclass.onCellClick.apply(a,arguments)}},onColumnAdd:function(a,c){if(c.isHeader){var d=this,b;d.initFieldAccessors(c);b=d.editor;if(b&&b.onColumnAdd){b.onColumnAdd(c)}}},onColumnRemove:function(a,c){if(c.isHeader){var d=this,b=d.getEditor();if(b&&b.onColumnRemove){b.onColumnRemove(c)}d.removeFieldAccessors(c)}},onColumnResize:function(a,d,c){if(d.isHeader){var e=this,b=e.getEditor();if(b&&b.onColumnResize){b.onColumnResize(d,c)}}},onColumnHide:function(a,c){var d=this,b=d.getEditor();if(b&&b.onColumnHide){b.onColumnHide(c)}},onColumnShow:function(a,c){var d=this,b=d.getEditor();if(b&&b.onColumnShow){b.onColumnShow(c)}},onColumnMove:function(a,d,c,g){var e=this,b=e.getEditor();if(b&&b.onColumnMove){b.onColumnMove(d,c,g-(g>c?1:0))}},setColumnField:function(b,d){var c=this,a=c.getEditor();a.removeField(b);c.callParent(arguments);c.getEditor().setField(b)}});Ext.define("Ext.grid.property.Grid",{extend:"Ext.grid.Panel",alias:"widget.propertygrid",alternateClassName:"Ext.grid.PropertyGrid",uses:["Ext.grid.plugin.CellEditing","Ext.grid.property.Store","Ext.grid.property.HeaderContainer","Ext.XTemplate","Ext.grid.CellEditor","Ext.form.field.Date","Ext.form.field.Text","Ext.form.field.Number","Ext.form.field.ComboBox"],valueField:"value",nameField:"name",enableColumnMove:false,columnLines:true,stripeRows:false,trackMouseOver:false,clicksToEdit:1,enableHdMenu:false,initComponent:function(){var a=this;a.addCls(Ext.baseCSSPrefix+"property-grid");a.plugins=a.plugins||[];a.plugins.push(new Ext.grid.plugin.CellEditing({clicksToEdit:a.clicksToEdit,startEdit:function(b,c){return this.self.prototype.startEdit.call(this,b,a.headerCt.child("#"+a.valueField))}}));a.selModel={selType:"cellmodel",onCellSelect:function(b){if(b.column!=1){b.column=1}return this.self.prototype.onCellSelect.call(this,b)}};a.customRenderers=a.customRenderers||{};a.customEditors=a.customEditors||{};if(!a.store){a.propStore=a.store=new Ext.grid.property.Store(a,a.source)}if(a.sortableColumns){a.store.sort("name","ASC")}a.columns=new Ext.grid.property.HeaderContainer(a,a.store);a.addEvents("beforepropertychange","propertychange");a.callParent();a.getView().walkCells=this.walkCells;a.editors={date:new Ext.grid.CellEditor({field:new Ext.form.field.Date({selectOnFocus:true})}),string:new Ext.grid.CellEditor({field:new Ext.form.field.Text({selectOnFocus:true})}),number:new Ext.grid.CellEditor({field:new Ext.form.field.Number({selectOnFocus:true})}),"boolean":new Ext.grid.CellEditor({field:new Ext.form.field.ComboBox({editable:false,store:[[true,a.headerCt.trueText],[false,a.headerCt.falseText]]})})};a.store.on("update",a.onUpdate,a)},onUpdate:function(d,a,c){var g=this,b,e;if(g.rendered&&c==Ext.data.Model.EDIT){b=a.get(g.valueField);e=a.modified.value;if(g.fireEvent("beforepropertychange",g.source,a.getId(),b,e)!==false){if(g.source){g.source[a.getId()]=b}a.commit();g.fireEvent("propertychange",g.source,a.getId(),b,e)}else{a.reject()}}},walkCells:function(h,g,d,c,a,b){if(g=="left"){g="up"}else{if(g=="right"){g="down"}}h=Ext.view.Table.prototype.walkCells.call(this,h,g,d,c,a,b);if(!h.column){h.column=1}return h},getCellEditor:function(a,c){var d=this,e=a.get(d.nameField),g=a.get(d.valueField),b=d.customEditors[e];if(b){if(!(b instanceof Ext.grid.CellEditor)){if(!(b instanceof Ext.form.field.Base)){b=Ext.ComponentManager.create(b,"textfield")}b=d.customEditors[e]=new Ext.grid.CellEditor({field:b})}}else{if(Ext.isDate(g)){b=d.editors.date}else{if(Ext.isNumber(g)){b=d.editors.number}else{if(Ext.isBoolean(g)){b=d.editors["boolean"]}else{b=d.editors.string}}}}b.editorId=e;return b},beforeDestroy:function(){var a=this;a.callParent();a.destroyEditors(a.editors);a.destroyEditors(a.customEditors);delete a.source},destroyEditors:function(b){for(var a in b){if(b.hasOwnProperty(a)){Ext.destroy(b[a])}}},setSource:function(a){this.source=a;this.propStore.setSource(a)},getSource:function(){return this.propStore.getSource()},setProperty:function(c,b,a){this.propStore.setValue(c,b,a)},removeProperty:function(a){this.propStore.remove(a)}});Ext.define("Ext.grid.property.HeaderContainer",{extend:"Ext.grid.header.Container",alternateClassName:"Ext.grid.PropertyColumnModel",nameWidth:115,nameText:"Name",valueText:"Value",dateFormat:"m/j/Y",trueText:"true",falseText:"false",nameColumnCls:Ext.baseCSSPrefix+"grid-property-name",constructor:function(b,a){var c=this;c.grid=b;c.store=a;c.callParent([{items:[{header:c.nameText,width:b.nameColumnWidth||c.nameWidth,sortable:b.sortableColumns,dataIndex:b.nameField,renderer:Ext.Function.bind(c.renderProp,c),itemId:b.nameField,menuDisabled:true,tdCls:c.nameColumnCls},{header:c.valueText,renderer:Ext.Function.bind(c.renderCell,c),getEditor:Ext.Function.bind(c.getCellEditor,c),sortable:b.sortableColumns,flex:1,fixed:true,dataIndex:b.valueField,itemId:b.valueField,menuDisabled:true}]}])},getCellEditor:function(a){return this.grid.getCellEditor(a,this)},renderProp:function(a){return this.getPropertyName(a)},renderCell:function(g,d,e){var b=this,c=b.grid.customRenderers[e.get(b.grid.nameField)],a=g;if(c){return c.apply(b,arguments)}if(Ext.isDate(g)){a=b.renderDate(g)}else{if(Ext.isBoolean(g)){a=b.renderBool(g)}}return Ext.util.Format.htmlEncode(a)},renderDate:Ext.util.Format.date,renderBool:function(a){return this[a?"trueText":"falseText"]},getPropertyName:function(b){var a=this.grid.propertyNames;return a&&a[b]?a[b]:b}});Ext.define("Ext.grid.property.Property",{extend:"Ext.data.Model",alternateClassName:"Ext.PropGridProperty",fields:[{name:"name",type:"string"},{name:"value"}],idProperty:"name"});Ext.define("Ext.grid.property.Store",{extend:"Ext.data.Store",alternateClassName:"Ext.grid.PropertyStore",sortOnLoad:false,uses:["Ext.data.reader.Reader","Ext.data.proxy.Proxy","Ext.data.ResultSet","Ext.grid.property.Property"],constructor:function(a,c){var b=this;b.grid=a;b.source=c;b.callParent([{data:c,model:Ext.grid.property.Property,proxy:b.getProxy()}])},getProxy:function(){if(!this.proxy){Ext.grid.property.Store.prototype.proxy=new Ext.data.proxy.Memory({model:Ext.grid.property.Property,reader:this.getReader()})}return this.proxy},getReader:function(){if(!this.reader){Ext.grid.property.Store.prototype.reader=new Ext.data.reader.Reader({model:Ext.grid.property.Property,buildExtractors:Ext.emptyFn,read:function(a){return this.readRecords(a)},readRecords:function(b){var d,c,a={records:[],success:true};for(c in b){if(b.hasOwnProperty(c)){d=b[c];if(this.isEditableValue(d)){a.records.push(new Ext.grid.property.Property({name:c,value:d},c))}}}a.total=a.count=a.records.length;return new Ext.data.ResultSet(a)},isEditableValue:function(a){return Ext.isPrimitive(a)||Ext.isDate(a)}})}return this.reader},setSource:function(a){var b=this;b.source=a;b.suspendEvents();b.removeAll();b.proxy.data=a;b.load();b.resumeEvents();b.fireEvent("datachanged",b);b.fireEvent("refresh",b)},getProperty:function(a){return Ext.isNumber(a)?this.getAt(a):this.getById(a)},setValue:function(e,c,a){var b=this,d=b.getRec(e);if(d){d.set("value",c);b.source[e]=c}else{if(a){b.source[e]=c;d=new Ext.grid.property.Property({name:e,value:c},e);b.add(d)}}},remove:function(b){var a=this.getRec(b);if(a){this.callParent([a]);delete this.source[b]}},getRec:function(a){return this.getById(a)},getSource:function(){return this.source}});Ext.define("Ext.layout.ClassList",(function(){var b=Ext.String.splitWords,a=Ext.Array.toMap;return{dirty:false,constructor:function(c){this.owner=c;this.map=a(this.classes=b(c.el.className))},add:function(c){var d=this;if(!d.map[c]){d.map[c]=true;d.classes.push(c);if(!d.dirty){d.dirty=true;d.owner.markDirty()}}},addMany:function(c){Ext.each(b(c),this.add,this)},contains:function(c){return this.map[c]},flush:function(){this.owner.el.className=this.classes.join(" ");this.dirty=false},remove:function(c){var d=this;if(d.map[c]){delete d.map[c];d.classes=Ext.Array.filter(d.classes,function(e){return e!=c});if(!d.dirty){d.dirty=true;d.owner.markDirty()}}},removeMany:function(d){var e=this,c=a(b(d));e.classes=Ext.Array.filter(e.classes,function(g){if(!c[g]){return true}delete e.map[g];if(!e.dirty){e.dirty=true;e.owner.markDirty()}return false})}}}()));Ext.define("Ext.util.Queue",{constructor:function(){this.clear()},add:function(c){var b=this,a=b.getKey(c);if(!b.map[a]){++b.length;b.items.push(c);b.map[a]=c}return c},clear:function(){var b=this,a=b.items;b.items=[];b.map={};b.length=0;return a},contains:function(b){var a=this.getKey(b);return this.map.hasOwnProperty(a)},getCount:function(){return this.length},getKey:function(a){return a.id},remove:function(e){var d=this,c=d.getKey(e),a=d.items,b;if(d.map[c]){b=Ext.Array.indexOf(a,e);Ext.Array.erase(a,b,1);delete d.map[c];--d.length}return e}});Ext.define("Ext.layout.ContextItem",{requires:["Ext.layout.ClassList"],heightModel:null,widthModel:null,sizeModel:null,boxChildren:null,boxParent:null,children:[],dirty:null,dirtyCount:0,hasRawContent:true,isContextItem:true,isTopLevel:false,consumersContentHeight:0,consumersContentWidth:0,consumersContainerHeight:0,consumersContainerWidth:0,consumersHeight:0,consumersWidth:0,ownerCtContext:null,remainingChildLayouts:0,remainingComponentChildLayouts:0,remainingContainerChildLayouts:0,props:null,state:null,wrapsComponent:false,constructor:function(b){var g=this,e,d,a,c,h;Ext.apply(g,b);e=g.el;g.id=e.id;g.lastBox=e.lastBox;g.flushedProps={};g.props={};g.styles={};h=g.target;if(h.isComponent){g.wrapsComponent=true;d=h.ownerCt;if(d&&(a=g.context.items[d.el.id])){g.ownerCtContext=a}g.sizeModel=c=h.getSizeModel(a&&a.widthModel.pairsByHeightOrdinal[a.heightModel.ordinal]);g.widthModel=c.width;g.heightModel=c.height}},init:function(j,c){var s=this,a=s.props,d=s.dirty,l=s.ownerCtContext,p=s.target.ownerLayout,h=!s.state,t=j||h,e,o,m,q,b,u,v=s.heightModel,g=s.widthModel,k,r;s.dirty=s.invalid=false;s.props={};if(s.boxChildren){s.boxChildren.length=0}if(!h){s.clearAllBlocks("blocks");s.clearAllBlocks("domBlocks")}if(!s.wrapsComponent){return t}u=s.target;s.state={};if(h){if(u.beforeLayout){u.beforeLayout()}if(!l&&(q=u.ownerCt)){l=s.context.items[q.el.id]}if(l){s.ownerCtContext=l;s.isBoxParent=u.ownerLayout.isItemBoxParent(s)}else{s.isTopLevel=true}s.frameBodyContext=s.getEl("frameBody")}else{l=s.ownerCtContext;s.isTopLevel=!l;e=s.children;for(o=0,m=e.length;o<m;++o){e[o].init(true)}}s.hasRawContent=!(u.isContainer&&u.items.items.length>0);if(j){s.widthModel=s.heightModel=null;b=u.getSizeModel(l&&l.widthModel.pairsByHeightOrdinal[l.heightModel.ordinal]);if(h){s.sizeModel=b}s.widthModel=b.width;s.heightModel=b.height}else{if(a){s.recoverProp("x",a,d);s.recoverProp("y",a,d);if(s.widthModel.calculated){s.recoverProp("width",a,d)}if(s.heightModel.calculated){s.recoverProp("height",a,d)}}}if(a&&p&&p.manageMargins){s.recoverProp("margin-top",a,d);s.recoverProp("margin-right",a,d);s.recoverProp("margin-bottom",a,d);s.recoverProp("margin-left",a,d)}if(c){k=c.heightModel;r=c.widthModel;if(r&&k&&g&&v){if(g.shrinkWrap&&v.shrinkWrap){if(r.constrainedMax&&k.constrainedMin){k=null}}}if(r){s.widthModel=r}if(k){s.heightModel=k}if(c.state){Ext.apply(s.state,c.state)}}return t},initContinue:function(d){var e=this,c=e.ownerCtContext,b=e.widthModel,a;if(d){if(c&&b.shrinkWrap){a=c.isBoxParent?c:c.boxParent;if(a){a.addBoxChild(e)}}else{if(b.natural){e.boxParent=c}}}return d},initDone:function(b,g,a,h){var d=this,c=d.props,e=d.state;if(g){c.componentChildrenDone=true}if(a){c.containerChildrenDone=true}if(h){c.containerLayoutDone=true}if(d.boxChildren&&d.boxChildren.length&&d.widthModel.shrinkWrap){d.el.setWidth(10000);e.blocks=(e.blocks||0)+1}},initAnimation:function(){var b=this,c=b.target,a=b.ownerCtContext;if(a&&a.isTopLevel){b.animatePolicy=c.ownerLayout.getAnimatePolicy(b)}else{if(!a&&c.isCollapsingOrExpanding&&c.animCollapse){b.animatePolicy=c.componentLayout.getAnimatePolicy(b)}}if(b.animatePolicy){b.context.queueAnimation(b)}},noFraming:{left:0,top:0,right:0,bottom:0,width:0,height:0},addCls:function(a){this.getClassList().addMany(a)},removeCls:function(a){this.getClassList().removeMany(a)},addBlock:function(b,d,e){var c=this,g=c[b]||(c[b]={}),a=g[e]||(g[e]={});if(!a[d.id]){a[d.id]=d;++d.blockCount;++c.context.blockCount}},addBoxChild:function(d){var c=this,b,a=d.widthModel;d.boxParent=this;d.measuresBox=a.shrinkWrap?d.hasRawContent:a.natural;if(d.measuresBox){b=c.boxChildren;if(b){b.push(d)}else{c.boxChildren=[d]}}},addTrigger:function(g,h){var e=this,a=h?"domTriggers":"triggers",i=e[a]||(e[a]={}),b=e.context,d=b.currentLayout,c=i[g]||(i[g]={});if(!c[d.id]){c[d.id]=d;++d.triggerCount;c=b.triggers[h?"dom":"data"];(c[d.id]||(c[d.id]=[])).push({item:this,prop:g});if(e.props[g]!==undefined){if(!h||!(e.dirty&&(g in e.dirty))){++d.firedTriggers}}}},boxChildMeasured:function(){var b=this,c=b.state,a=(c.boxesMeasured=(c.boxesMeasured||0)+1);if(a==b.boxChildren.length){c.clearBoxWidth=1;++b.context.progressCount;b.markDirty()}},borderNames:["border-top-width","border-right-width","border-bottom-width","border-left-width"],marginNames:["margin-top","margin-right","margin-bottom","margin-left"],paddingNames:["padding-top","padding-right","padding-bottom","padding-left"],trblNames:["top","right","bottom","left"],cacheMissHandlers:{borderInfo:function(a){var b=a.getStyles(a.borderNames,a.trblNames);b.width=b.left+b.right;b.height=b.top+b.bottom;return b},marginInfo:function(a){var b=a.getStyles(a.marginNames,a.trblNames);b.width=b.left+b.right;b.height=b.top+b.bottom;return b},paddingInfo:function(b){var a=b.frameBodyContext||b,c=a.getStyles(b.paddingNames,b.trblNames);c.width=c.left+c.right;c.height=c.top+c.bottom;return c}},checkCache:function(a){return this.cacheMissHandlers[a](this)},clearAllBlocks:function(a){var c=this[a],b;if(c){for(b in c){this.clearBlocks(a,b)}}},clearBlocks:function(c,g){var h=this[c],b=h&&h[g],d,e,a;if(b){delete h[g];d=this.context;for(a in b){e=b[a];--d.blockCount;if(!--e.blockCount&&!e.pending&&!e.done){d.queueLayout(e)}}}},block:function(a,b){this.addBlock("blocks",a,b)},domBlock:function(a,b){this.addBlock("domBlocks",a,b)},fireTriggers:function(b,g){var h=this[b],d=h&&h[g],c=this.context,e,a;if(d){for(a in d){e=d[a];++e.firedTriggers;if(!e.done&&!e.blockCount&&!e.pending){c.queueLayout(e)}}}},flush:function(){var b=this,a=b.dirty,c=b.state,d=b.el;b.dirtyCount=0;if(b.classList&&b.classList.dirty){b.classList.flush()}if("attributes" in b){d.set(b.attributes);delete b.attributes}if("innerHTML" in b){d.innerHTML=b.innerHTML;delete b.innerHTML}if(c&&c.clearBoxWidth){c.clearBoxWidth=0;b.el.setStyle("width",null);if(!--c.blocks){b.context.queueItemLayouts(b)}}if(a){delete b.dirty;b.writeProps(a,true)}},flushAnimations:function(){var o=this,c=o.lastBox,l,n,e,h,g,d,i,m,k,a,b;if(c){l=o.target;n=l.layout&&l.layout.animate;if(n){e=Ext.isNumber(n)?n:n.duration}h=Ext.Object.getKeys(o.animatePolicy);g=Ext.apply({},{from:{},to:{},duration:e||Ext.fx.Anim.prototype.duration},n);for(d=0,i=0,m=h.length;i<m;i++){k=h[i];a=c[k];b=o.peek(k);if(a!=b){k=o.translateProps[k]||k;g.from[k]=a;g.to[k]=b;++d}}if(d){if(o.isCollapsingOrExpanding===1){l.componentLayout.undoLayout(o)}else{o.writeProps(g.from)}o.el.animate(g);Ext.fx.Manager.getFxQueue(o.el.id)[0].on({afteranimate:function(){if(o.isCollapsingOrExpanding===1){l.componentLayout.redoLayout(o);l.afterCollapse(true)}else{if(o.isCollapsingOrExpanding===2){l.afterExpand(true)}}}})}}},getBorderInfo:function(){var a=this,b=a.borderInfo;if(!b){a.borderInfo=b=a.checkCache("borderInfo")}return b},getClassList:function(){return this.classList||(this.classList=new Ext.layout.ClassList(this))},getEl:function(c,a){var e=this,g,d,b;if(c){if(c.dom){d=c}else{g=e.target;if(a){g=a}d=g[c];if(typeof d=="function"){d=d.call(g);if(d===e.el){return this}}}if(d){b=e.context.getEl(e,d)}}return b||null},getFraming:function(){var a=this;if(!a.framingInfo){a.framingInfo=a.target.frameSize||a.noFraming}return a.framingInfo},getFrameInfo:function(){var b=this,c=b.frameInfo,d,a;if(!c){d=b.getFraming();a=b.getBorderInfo();b.frameInfo=c={top:d.top+a.top,right:d.right+a.right,bottom:d.bottom+a.bottom,left:d.left+a.left,width:d.width+a.width,height:d.height+a.height}}return c},getMarginInfo:function(){var d=this,h=d.marginInfo,b,a,g,e,c;if(!h){if(!d.wrapsComponent){h=d.checkCache("marginInfo")}else{b=d.target;e=b.ownerLayout;c=e?e.id:null;a=e&&e.manageMargins;h=b.margin$;if(h&&h.ownerId!==c){h=null}if(!h){h=d.parseMargins(b.margin)||d.checkCache("marginInfo");if(a){g=d.parseMargins(b.margins,e.defaultMargins);if(g){h={top:h.top+g.top,right:h.right+g.right,bottom:h.bottom+g.bottom,left:h.left+g.left}}d.setProp("margin-top",0);d.setProp("margin-right",0);d.setProp("margin-bottom",0);d.setProp("margin-left",0)}h.ownerId=c;b.margin$=h}h.width=h.left+h.right;h.height=h.top+h.bottom}d.marginInfo=h}return h},clearMarginCache:function(){delete this.marginInfo;delete this.target.margin$},getPaddingInfo:function(){var a=this,b=a.paddingInfo;if(!b){a.paddingInfo=b=a.checkCache("paddingInfo")}return b},getProp:function(c){var b=this,a=b.props[c];b.addTrigger(c);return a},getDomProp:function(c){var b=this,a=(b.dirty&&(c in b.dirty))?undefined:b.props[c];b.addTrigger(c,true);return a},getStyle:function(a){var c=this,b=c.styles,e,d;if(a in b){d=b[a]}else{e=c.styleInfo[a];d=c.el.getStyle(a);if(e&&e.parseInt){d=parseInt(d,10)||0}b[a]=d}return d},getStyles:function(p,b){var m=this,e=m.styles,q={},g=0,d=p.length,k,j,l,a,c,h,r,o;b=b||p;for(k=0;k<d;++k){a=p[k];if(a in e){q[b[k]]=e[a];++g;if(k&&g==1){j=p.slice(0,k);l=b.slice(0,k)}}else{if(g){(j||(j=[])).push(a);(l||(l=[])).push(b[k])}}}if(g<d){j=j||p;l=l||b;h=m.styleInfo;r=m.el.getStyle(j);for(k=j.length;k--;){a=j[k];c=h[a];o=r[a];if(c&&c.parseInt){o=parseInt(o,10)||0}q[l[k]]=o;e[a]=o}}return q},hasProp:function(b){var a=this.getProp(b);return typeof a!="undefined"},hasDomProp:function(b){var a=this.getDomProp(b);return typeof a!="undefined"},invalidate:function(a){this.context.queueInvalidate(this,a)},markDirty:function(){if(++this.dirtyCount==1){this.context.queueFlush(this)}},onBoxMeasured:function(){var a=this.boxParent,b=this.state;if(a&&a.widthModel.shrinkWrap&&!b.boxMeasured&&this.measuresBox){b.boxMeasured=1;a.boxChildMeasured()}},parseMargins:function(d,c){if(d===true){d=5}var b=typeof d,a;if(b=="string"||b=="number"){a=Ext.util.Format.parseBox(d)}else{if(d||c){a={top:0,right:0,bottom:0,left:0};if(c){Ext.apply(a,this.parseMargins(c))}Ext.apply(a,d)}}return a},peek:function(a){return this.props[a]},recoverProp:function(g,b,a){var e=this,d=e.props,c;if(g in b){d[g]=b[g];if(a&&g in a){c=e.dirty||(e.dirty={});c[g]=a[g]}}},redo:function(b){var e=this,c,a,d;e.revertProps(e.props);if(b&&e.wrapsComponent){if(e.childItems){for(d=0,c=e.childItems,a=c.length;d<a;d++){c[d].redo(b)}}for(d=0,c=e.children,a=c.length;d<a;d++){c[d].redo()}}},revertProps:function(d){var a,b=this.flushedProps,c={};for(a in d){if(b.hasOwnProperty(a)){c[a]=d[a]}}this.writeProps(c)},setAttribute:function(a,c){var b=this;if(!b.attributes){b.attributes={}}b.attributes[a]=c;b.markDirty()},setBox:function(b){var a=this;if("left" in b){a.setProp("x",b.left)}if("top" in b){a.setProp("y",b.top)}a.setSize(b.width,b.height)},setContentHeight:function(a,b){if(!b&&this.hasRawContent){return 1}return this.setProp("contentHeight",a)},setContentWidth:function(b,a){if(!a&&this.hasRawContent){return 1}return this.setProp("contentWidth",b)},setContentSize:function(c,a,b){return this.setContentWidth(c,b)+this.setContentHeight(a,b)==2},setProp:function(d,c,a){var b=this,h=typeof c,g,e;if(h=="undefined"||(h==="number"&&isNaN(c))){return 0}if(b.props[d]===c){return 1}b.props[d]=c;++b.context.progressCount;if(a===false){b.fireTriggers("domTriggers",d);b.clearBlocks("domBlocks",d)}else{e=b.styleInfo[d];if(e){if(!b.dirty){b.dirty={}}if(d=="width"||d=="height"){g=b.isBorderBoxValue;if(g==null){b.isBorderBoxValue=g=!!b.el.isBorderBox()}if(!g){b.borderInfo||b.getBorderInfo();b.paddingInfo||b.getPaddingInfo()}}b.dirty[d]=c;b.markDirty()}}b.fireTriggers("triggers",d);b.clearBlocks("blocks",d);return 1},setHeight:function(a,c){var e=this,b=e.target,h,d,g;if(a<0){a=0}if(!e.wrapsComponent){if(!e.setProp("height",a,c)){return NaN}}else{a=Ext.Number.constrain(a,b.minHeight||0,b.maxHeight);if(!e.setProp("height",a,c)){return NaN}h=e.frameBodyContext;if(h){d=e.getFrameInfo();h.setHeight(a-d.height,c)}}return a},setWidth:function(c,b){var e=this,a=e.target,h,d,g;if(c<0){c=0}if(!e.wrapsComponent){if(!e.setProp("width",c,b)){return NaN}}else{c=Ext.Number.constrain(c,a.minWidth||0,a.maxWidth);if(!e.setProp("width",c,b)){return NaN}h=e.frameBodyContext;if(h){d=e.getFrameInfo();h.setWidth(c-d.width,b)}}return c},setSize:function(c,a,b){this.setWidth(c,b);this.setHeight(a,b)},translateProps:{x:"left",y:"top"},undo:function(b){var e=this,c,a,d;e.revertProps(e.lastBox);if(b&&e.wrapsComponent){if(e.childItems){for(d=0,c=e.childItems,a=c.length;d<a;d++){c[d].undo(b)}}for(d=0,c=e.children,a=c.length;d<a;d++){c[d].undo()}}},unsetProp:function(b){var a=this.dirty;delete this.props[b];if(a){delete a[b]}},writeProps:function(e,d){if(!(e&&typeof e=="object")){return}var C=this,c=C.el,i={},h=0,b=C.styleInfo,B,n,r,m="x" in e,l="y" in e,k=e.x,j=e.y,t=e.width,p=e.height,A=C.isBorderBoxValue,D=C.target,v=Math.max,z=0,o=0,g,a,s,u,w,q;if("displayed" in e){c.setDisplayed(e.displayed)}for(n in e){if(d){C.fireTriggers("domTriggers",n);C.clearBlocks("domBlocks",n);C.flushedProps[n]=1}B=b[n];if(B&&B.dom){if(B.suffix&&(r=parseInt(e[n],10))){i[n]=r+B.suffix}else{i[n]=e[n]}++h}}if(m||l){if(D.isComponent){D.setPosition(k||C.props.x,j||C.props.y)}else{if(m){i.left=k+"px";++h}if(l){i.top=j+"px";++h}}}if(!A&&(t>0||p>0)){if(!C.frameBodyContext){z=C.paddingInfo.width;o=C.paddingInfo.height}if(t){t=v(parseInt(t,10)-(C.borderInfo.width+z),0);i.width=t+"px";++h}if(p){p=v(parseInt(p,10)-(C.borderInfo.height+o),0);i.height=p+"px";++h}}if(C.wrapsComponent&&Ext.isIE9&&Ext.isStrict){if((g=t!==undefined&&C.hasOverflowY)||(a=p!==undefined&&C.hasOverflowX)){s=C.isAbsolute;if(s===undefined){s=false;q=C.target.getTargetEl();w=q.getStyle("position");if(w=="absolute"){w=q.getStyle("box-sizing");s=(w=="border-box")}C.isAbsolute=s}if(s){u=Ext.getScrollbarSize();if(g){t=parseInt(t,10)+u.width;i.width=t+"px";++h}if(a){p=parseInt(p,10)+u.height;i.height=p+"px";++h}}}}if(h){c.setStyle(i)}}},function(){var c={dom:true,parseInt:true,suffix:"px"},b={dom:true},a={dom:false};this.prototype.styleInfo={childrenDone:a,componentChildrenDone:a,containerChildrenDone:a,containerLayoutDone:a,displayed:a,done:a,x:a,y:a,columnWidthsDone:a,left:c,top:c,right:c,bottom:c,width:c,height:c,"border-top-width":c,"border-right-width":c,"border-bottom-width":c,"border-left-width":c,"margin-top":c,"margin-right":c,"margin-bottom":c,"margin-left":c,"padding-top":c,"padding-right":c,"padding-bottom":c,"padding-left":c,"line-height":b,display:b}});Ext.define("Ext.layout.Context",{requires:["Ext.util.Queue","Ext.layout.ContextItem","Ext.layout.Layout","Ext.fx.Anim","Ext.fx.Manager"],remainingLayouts:0,state:0,constructor:function(a){var b=this;Ext.apply(b,a);b.items={};b.layouts={};b.blockCount=0;b.cycleCount=0;b.flushCount=0;b.calcCount=0;b.animateQueue=b.newQueue();b.completionQueue=b.newQueue();b.finalizeQueue=b.newQueue();b.finishQueue=b.newQueue();b.flushQueue=b.newQueue();b.invalidateData={};b.layoutQueue=b.newQueue();b.invalidQueue=[];b.triggers={data:{},dom:{}}},callLayout:function(b,a){this.currentLayout=b;b[a](this.getCmp(b.owner))},cancelComponent:function(j,a,m){var p=this,h=j,l=!j.isComponent,b=l?h.length:1,d,c,o,n,g,s,q,r,t,e;for(d=0;d<b;++d){if(l){j=h[d]}if(m&&j.ownerCt){e=this.items[j.ownerCt.el.id];if(e){Ext.Array.remove(e.childItems,p.getCmp(j))}}if(!a){q=p.invalidQueue;o=q.length;if(o){p.invalidQueue=s=[];for(c=0;c<o;++c){r=q[c];t=r.item.target;if(t!=j&&!t.isDescendant(j)){s.push(r)}}}}g=j.componentLayout;p.cancelLayout(g);if(g.getLayoutItems){n=g.getLayoutItems();if(n.length){p.cancelComponent(n,true)}}if(j.isContainer&&!j.collapsed){g=j.layout;p.cancelLayout(g);n=g.getVisibleItems();if(n.length){p.cancelComponent(n,true)}}}},cancelLayout:function(b){var a=this;a.completionQueue.remove(b);a.finalizeQueue.remove(b);a.finishQueue.remove(b);a.layoutQueue.remove(b);if(b.running){a.layoutDone(b)}b.ownerContext=null},clearTriggers:function(g,h){var a=g.id,e=this.triggers[h?"dom":"data"],j=e&&e[a],b=(j&&j.length)||0,e,d,k,c;for(d=0;d<b;++d){c=j[d];k=c.item;e=h?k.domTriggers:k.triggers;delete e[c.prop][a]}},flush:function(){var d=this,a=d.flushQueue.clear(),c=a.length,b;if(c){++d.flushCount;for(b=0;b<c;++b){a[b].flush()}}},flushAnimations:function(){var d=this,b=d.animateQueue.clear(),a=b.length,c;if(a){for(c=0;c<a;c++){if(b[c].target.animate!==false){b[c].flushAnimations()}}Ext.fx.Manager.runner()}},flushInvalidates:function(){var h=this,a=h.invalidQueue,g=a&&a.length,b,e,d,c;h.invalidQueue=[];if(g){e=[];for(c=0;c<g;++c){b=(d=a[c]).item.target;if(!b.container.isDetachedBody){e.push(b);if(d.options){h.invalidateData[b.id]=d.options}}}h.invalidate(e,null)}},flushLayouts:function(h,a,c){var g=this,j=c?g[h].items:g[h].clear(),e=j.length,b,d;if(e){for(b=0;b<e;++b){d=j[b];if(!d.running){g.callLayout(d,a)}}g.currentLayout=null}},getCmp:function(a){return this.getItem(a,a.el)},getEl:function(b,a){var c=this.getItem(a,a);if(!c.parent){c.parent=b;if(b.children.length){b.children.push(c)}else{b.children=[c]}}return c},getItem:function(d,b){var e=b.id,a=this.items,c=a[e]||(a[e]=new Ext.layout.ContextItem({context:this,target:d,el:b}));return c},handleFailure:function(){var c=this.layouts,b,a;Ext.failedLayouts=(Ext.failedLayouts||0)+1;for(a in c){b=c[a];if(c.hasOwnProperty(a)){b.running=false;b.ownerContext=null}}},invalidate:function(n,p){var r=this,o=!n.isComponent,e,g,c,a,j,m,s,q,b,k,l,h,d;for(j=0,b=o?n.length:1;j<b;++j){m=o?n[j]:n;if(m.rendered&&!m.hidden){s=r.getCmp(m);k=m.componentLayout;a=!k.ownerContext;l=(m.isContainer&&!m.collapsed)?m.layout:null;h=r.invalidateData[s.id];delete r.invalidateData[s.id];d=s.init(p,h);if(h){r.processInvalidate(h,s,"before")}if(k.beforeLayoutCycle){k.beforeLayoutCycle(s)}d=s.initContinue(d);e=g=c=true;if(k.getLayoutItems){k.renderChildren();q=k.getLayoutItems();if(q.length){r.invalidate(q,true);e=false}}if(l){c=false;l.renderChildren();q=l.getVisibleItems();if(q.length){r.invalidate(q,true);g=false}}s.initDone(d,e,g,c);r.resetLayout(k,s,a);if(l){r.resetLayout(l,s,a)}s.initAnimation();if(h){r.processInvalidate(h,s,"after")}}}r.currentLayout=null},layoutDone:function(b){var c=b.ownerContext,a;b.running=false;if(b.isComponentLayout){if(c.measuresBox){c.onBoxMeasured()}c.setProp("done",true);a=c.ownerCtContext;if(a){if(c.target.ownerLayout.isComponentLayout){if(!--a.remainingComponentChildLayouts){a.setProp("componentChildrenDone",true)}}else{if(!--a.remainingContainerChildLayouts){a.setProp("containerChildrenDone",true)}}if(!--a.remainingChildLayouts){a.setProp("childrenDone",true)}}}else{c.setProp("containerLayoutDone",true)}--this.remainingLayouts;++this.progressCount},newQueue:function(){return new Ext.util.Queue()},processInvalidate:function(b,e,a){if(b[a]){var d=this,c=d.currentLayout;d.currentLayout=b.layout||null;b[a](e,b);d.currentLayout=c}},queueAnimation:function(a){this.animateQueue.add(a)},queueCompletion:function(a){this.completionQueue.add(a)},queueFinalize:function(a){this.finalizeQueue.add(a)},queueFlush:function(a){this.flushQueue.add(a)},chainFns:function(a,i,g){var d=this,c=a.layout,e=i.layout,b=a[g],h=i[g];return function(j){var k=d.currentLayout;if(b){d.currentLayout=c;b.call(a.scope||a,j,a)}d.currentLayout=e;h.call(i.scope||i,j,i);d.currentLayout=k}},queueInvalidate:function(k,l){var h=this,j=[],i=h.invalidQueue,g=i.length,d,b,e,a,c;if(k.isComponent){k=h.getCmp(d=k)}else{d=k.target}k.invalid=true;while(g--){b=i[g];e=b.item.target;if(d.isDescendant(e)){return}if(e==d){if(!(a=b.options)){b.options=l}else{if(l){if(l.widthModel){a.widthModel=l.widthModel}if(l.heightModel){a.heightModel=l.heightModel}if(!(c=a.state)){a.state=l.state}else{if(l.state){Ext.apply(c,l.state)}}if(l.before){a.before=h.chainFns(a,l,"before")}if(l.after){a.after=h.chainFns(a,l,"after")}}}return}if(!e.isDescendant(d)){j.push(b)}}j.push({item:k,options:l});h.invalidQueue=j},queueItemLayouts:function(c){var a=c.isComponent?c:c.target,b=a.componentLayout;if(!b.pending&&!b.invalid&&!b.done){this.queueLayout(b)}b=a.layout;if(b&&!b.pending&&!b.invalid&&!b.done){this.queueLayout(b)}},queueLayout:function(a){this.layoutQueue.add(a);a.pending=true},resetLayout:function(c,d,e){var b=this,a;b.currentLayout=c;c.done=false;c.pending=true;c.firedTriggers=0;b.layoutQueue.add(c);if(e){b.layouts[c.id]=c;c.running=true;if(c.finishedLayout){b.finishQueue.add(c)}++b.remainingLayouts;++c.layoutCount;c.ownerContext=d;c.beginCount=0;c.blockCount=0;c.calcCount=0;c.triggerCount=0;if(c.isComponentLayout&&(a=d.ownerCtContext)){if(d.target.ownerLayout.isComponentLayout){++a.remainingComponentChildLayouts}else{++a.remainingContainerChildLayouts}++a.remainingChildLayouts}if(!c.initialized){c.initLayout()}c.beginLayout(d)}else{++c.beginCount;if(!c.running){++b.remainingLayouts;c.running=true;if(c.isComponentLayout){d.unsetProp("done");a=d.ownerCtContext;if(a){if(d.target.ownerLayout.isComponentLayout){if(++a.remainingComponentChildLayouts==1){a.unsetProp("componentChildrenDone")}}else{if(++a.remainingContainerChildLayouts==1){a.unsetProp("containerChildrenDone")}}if(++a.remainingChildLayouts==1){a.unsetProp("childrenDone")}}}b.completionQueue.remove(c);b.finalizeQueue.remove(c)}}c.beginLayoutCycle(d,e)},run:function(){var c=this,b=false,a=100;c.flushInvalidates();c.state=1;c.totalCount=c.layoutQueue.getCount();c.flush();while((c.remainingLayouts||c.invalidQueue.length)&&a--){if(c.invalidQueue.length){c.flushInvalidates()}if(c.runCycle()){b=false}else{if(!b){c.flush();b=true;c.flushLayouts("completionQueue","completeLayout")}else{c.state=2;break}}if(!(c.remainingLayouts||c.invalidQueue.length)){c.flush();c.flushLayouts("completionQueue","completeLayout");c.flushLayouts("finalizeQueue","finalizeLayout")}}return c.runComplete()},runComplete:function(){var a=this;a.state=2;if(a.remainingLayouts){a.handleFailure();return false}a.flush();a.flushLayouts("finishQueue","finishedLayout",true);a.flushLayouts("finishQueue","notifyOwner");a.flush();a.flushAnimations();return true},runCycle:function(){var c=this,d=c.layoutQueue.clear(),b=d.length,a;++c.cycleCount;c.progressCount=0;for(a=0;a<b;++a){c.runLayout(c.currentLayout=d[a])}c.currentLayout=null;return c.progressCount>0},runLayout:function(b){var a=this,c=a.getCmp(b.owner);b.pending=false;if(c.state.blocks){return}b.done=true;++b.calcCount;++a.calcCount;b.calculate(c);if(b.done){a.layoutDone(b);if(b.completeLayout){a.queueCompletion(b)}if(b.finalizeLayout){a.queueFinalize(b)}}else{if(!b.pending&&!b.invalid&&!(b.blockCount+b.triggerCount-b.firedTriggers)){a.queueLayout(b)}}},setItemSize:function(h,g,b){var d=h,a=1,c,e;if(h.isComposite){d=h.elements;a=d.length;h=d[0]}else{if(!h.dom&&!h.el){a=d.length;h=d[0]}}for(e=0;e<a;){c=this.get(h);c.setSize(g,b);h=d[++e]}}});Ext.define("Ext.layout.component.Tab",{extend:"Ext.layout.component.Button",alias:"layout.tab",beginLayout:function(c){var b=this,a=b.owner.closable;if(b.lastClosable!==a){b.lastClosable=a;b.clearTargetCache()}b.callParent(arguments)}});Ext.define("Ext.layout.component.field.Slider",{alias:["layout.sliderfield"],extend:"Ext.layout.component.field.Field",type:"sliderfield",beginLayout:function(a){this.callParent(arguments);a.endElContext=a.getEl("endEl");a.innerElContext=a.getEl("innerEl");a.bodyElContext=a.getEl("bodyEl")},publishInnerHeight:function(d,a){var e=a-this.measureLabelErrorHeight(d),c,b;if(this.owner.vertical){c=d.endElContext.getPaddingInfo();b=d.inputContext.getPaddingInfo();d.innerElContext.setHeight(e-b.height-c.height)}else{d.bodyElContext.setHeight(e)}},publishInnerWidth:function(d,c){if(!this.owner.vertical){var b=d.endElContext.getPaddingInfo(),a=d.inputContext.getPaddingInfo();d.innerElContext.setWidth(c-a.left-b.right-d.labelContext.getProp("width"))}},beginLayoutFixed:function(d,a,e){var b=this,c=b.ieInputWidthAdjustment;if(c){b.owner.bodyEl.setStyle("padding-right",c+"px")}b.callParent(arguments)}});Ext.define("Ext.layout.container.Absolute",{alias:"layout.absolute",extend:"Ext.layout.container.Anchor",alternateClassName:"Ext.layout.AbsoluteLayout",targetCls:Ext.baseCSSPrefix+"abs-layout-ct",itemCls:Ext.baseCSSPrefix+"abs-layout-item",ignoreOnContentChange:true,type:"absolute",adjustWidthAnchor:function(c,b){var d=this.targetPadding,a=b.getStyle("left");return c-a+d.left},adjustHeightAnchor:function(b,a){var c=this.targetPadding,d=a.getStyle("top");return b-d+c.top},isItemLayoutRoot:function(a){return this.ignoreOnContentChange||this.callParent(arguments)},isItemShrinkWrap:function(a){return true},beginLayout:function(b){var a=this,c=a.getTarget();a.callParent(arguments);if(c.dom!==document.body){c.position()}a.targetPadding=b.targetContext.getPaddingInfo()},isItemBoxParent:function(a){return true},onContentChange:function(){if(this.ignoreOnContentChange){return false}return this.callParent(arguments)}});Ext.define("Ext.layout.container.Accordion",{extend:"Ext.layout.container.VBox",alias:["layout.accordion"],alternateClassName:"Ext.layout.AccordionLayout",itemCls:[Ext.baseCSSPrefix+"box-item",Ext.baseCSSPrefix+"accordion-item"],align:"stretch",fill:true,titleCollapse:true,hideCollapseTool:false,collapseFirst:false,animate:true,activeOnTop:false,multi:false,defaultAnimatePolicy:{y:true,height:true},constructor:function(){var a=this;a.callParent(arguments);if(a.animate){a.animatePolicy=Ext.apply({},a.defaultAnimatePolicy)}else{a.animatePolicy=null}},beforeRenderItems:function(b){var e=this,d=b.length,c=0,a;for(;c<d;c++){a=b[c];if(!a.rendered){if(e.collapseFirst){a.collapseFirst=e.collapseFirst}if(e.hideCollapseTool){a.hideCollapseTool=e.hideCollapseTool;a.titleCollapse=true}else{if(e.titleCollapse){a.titleCollapse=e.titleCollapse}}delete a.hideHeader;delete a.width;a.collapsible=true;a.title=a.title||" ";a.addBodyCls(Ext.baseCSSPrefix+"accordion-body");if(!e.multi){if(e.expandedItem!==undefined){a.collapsed=true}else{if(a.hasOwnProperty("collapsed")&&a.collapsed===false){e.expandedItem=c}else{a.collapsed=true}}e.owner.mon(a,{show:e.onComponentShow,beforeexpand:e.onComponentExpand,scope:e})}if(e.fill){e.owner.mon(a,{beforecollapse:e.onComponentCollapse,scope:e})}}}if(d&&e.expandedItem===undefined){e.expandedItem=0;b[0].collapsed=false}},getItemsRenderTree:function(a){this.beforeRenderItems(a);return this.callParent(arguments)},renderItems:function(a,b){this.beforeRenderItems(a);this.callParent(arguments)},configureItem:function(a){this.callParent(arguments);a.animCollapse=a.border=false;if(this.fill){a.flex=1}},onChildPanelRender:function(a){a.header.addCls(Ext.baseCSSPrefix+"accordion-hd")},beginLayout:function(a){this.callParent(arguments);this.updatePanelClasses(a)},updatePanelClasses:function(e){var c=e.visibleItems,d=c.length,a=true,b,h,g;for(b=0;b<d;b++){h=c[b];g=h.header;g.addCls(Ext.baseCSSPrefix+"accordion-hd");if(a){g.removeCls(Ext.baseCSSPrefix+"accordion-hd-sibling-expanded")}else{g.addCls(Ext.baseCSSPrefix+"accordion-hd-sibling-expanded")}if(b+1==d&&h.collapsed){g.addCls(Ext.baseCSSPrefix+"accordion-hd-last-collapsed")}else{g.removeCls(Ext.baseCSSPrefix+"accordion-hd-last-collapsed")}a=h.collapsed}},onComponentExpand:function(h){var e=this,a=e.owner,c,g,d,b;if(!e.processing){e.processing=true;b=a.deferLayouts;a.deferLayouts=true;c=e.multi?[]:a.query(">panel:not([collapsed])");g=c.length;for(d=0;d<g;d++){c[d].collapse()}a.deferLayouts=b;e.processing=false}},onComponentCollapse:function(d){var e=this,a=e.owner,g,c,b;if(e.owner.items.getCount()===1){return false}if(!e.processing){e.processing=true;b=a.deferLayouts;a.deferLayouts=true;g=d.next()||d.prev();if(e.multi){c=e.owner.query(">panel:not([collapsed])");if(c.length===1){g.expand()}}else{if(g){g.expand()}}a.deferLayouts=b;e.processing=false}},onComponentShow:function(a){this.onComponentExpand(a)}});Ext.define("Ext.resizer.Splitter",{extend:"Ext.Component",requires:["Ext.XTemplate"],uses:["Ext.resizer.SplitterTracker"],alias:"widget.splitter",childEls:["collapseEl"],renderTpl:['<tpl if="collapsible===true">','<div id="{id}-collapseEl" class="',Ext.baseCSSPrefix,"collapse-el ",Ext.baseCSSPrefix,'layout-split-{collapseDir}"> </div>',"</tpl>"],baseCls:Ext.baseCSSPrefix+"splitter",collapsedClsInternal:Ext.baseCSSPrefix+"splitter-collapsed",canResize:true,collapsible:false,collapseOnDblClick:true,defaultSplitMin:40,defaultSplitMax:1000,collapseTarget:"next",horizontal:false,vertical:false,getTrackerConfig:function(){return{xclass:"Ext.resizer.SplitterTracker",el:this.el,splitter:this}},beforeRender:function(){var d=this,e=d.getCollapseTarget(),g=d.getCollapseDirection(),c=d.vertical,b=c?"width":"height",h=c?"height":"width",a;d.callParent();if(!d.hasOwnProperty(h)){d[h]="100%"}if(!d.hasOwnProperty(b)){d[b]=5}if(e.collapsed){d.addCls(d.collapsedClsInternal)}a=d.baseCls+"-"+d.orientation;d.addCls(a);if(!d.canResize){d.addCls(a+"-noresize")}Ext.applyIf(d.renderData,{collapseDir:g,collapsible:d.collapsible||e.collapsible})},onRender:function(){var a=this;a.callParent(arguments);if(a.performCollapse!==false){if(a.renderData.collapsible){a.mon(a.collapseEl,"click",a.toggleTargetCmp,a)}if(a.collapseOnDblClick){a.mon(a.el,"dblclick",a.toggleTargetCmp,a)}}a.mon(a.getCollapseTarget(),{collapse:a.onTargetCollapse,expand:a.onTargetExpand,scope:a});a.el.unselectable();if(a.canResize){a.tracker=Ext.create(a.getTrackerConfig());a.relayEvents(a.tracker,["beforedragstart","dragstart","dragend"])}},getCollapseDirection:function(){var g=this,c=g.collapseDirection,e,a,b,d;if(!c){e=g.collapseTarget;if(e.isComponent){c=e.collapseDirection}if(!c){d=g.ownerCt.layout.type;if(e.isComponent){b=g.ownerCt.items;a=Number(b.indexOf(e)==b.indexOf(g)-1)<<1|Number(d=="hbox")}else{a=Number(g.collapseTarget=="prev")<<1|Number(d=="hbox")}c=["bottom","right","top","left"][a]}g.collapseDirection=c}g.orientation=(c=="top"||c=="bottom")?"horizontal":"vertical";g[g.orientation]=true;return c},getCollapseTarget:function(){var a=this;return a.collapseTarget.isComponent?a.collapseTarget:a.collapseTarget=="prev"?a.previousSibling():a.nextSibling()},onTargetCollapse:function(a){this.el.addCls([this.collapsedClsInternal,this.collapsedCls])},onTargetExpand:function(a){this.el.removeCls([this.collapsedClsInternal,this.collapsedCls])},toggleTargetCmp:function(d,b){var c=this.getCollapseTarget(),g=c.placeholder,a;if(g&&!g.hidden){a=true}else{a=!c.hidden}if(a){if(c.collapsed){c.expand()}else{if(c.collapseDirection){c.collapse()}else{c.collapse(this.renderData.collapseDir)}}}},setSize:function(){var a=this;a.callParent(arguments);if(Ext.isIE&&a.el){a.el.repaint()}},beforeDestroy:function(){Ext.destroy(this.tracker);this.callParent()}});Ext.define("Ext.resizer.BorderSplitter",{extend:"Ext.resizer.Splitter",uses:["Ext.resizer.BorderSplitterTracker"],alias:"widget.bordersplitter",collapseTarget:null,getTrackerConfig:function(){var a=this.callParent();a.xclass="Ext.resizer.BorderSplitterTracker";return a}});Ext.define("Ext.layout.container.Border",{alias:"layout.border",extend:"Ext.layout.container.Container",requires:["Ext.resizer.BorderSplitter","Ext.Component","Ext.fx.Anim"],alternateClassName:"Ext.layout.BorderLayout",targetCls:Ext.baseCSSPrefix+"border-layout-ct",itemCls:[Ext.baseCSSPrefix+"border-item",Ext.baseCSSPrefix+"box-item"],type:"border",padding:undefined,percentageRe:/(\d+)%/,axisProps:{horz:{borderBegin:"west",borderEnd:"east",horizontal:true,posProp:"x",sizeProp:"width",sizePropCap:"Width"},vert:{borderBegin:"north",borderEnd:"south",horizontal:false,posProp:"y",sizeProp:"height",sizePropCap:"Height"}},centerRegion:null,collapseDirections:{north:"top",south:"bottom",east:"right",west:"left"},manageMargins:true,panelCollapseAnimate:true,panelCollapseMode:"placeholder",regionWeights:{north:20,south:10,center:0,west:-10,east:-20},beginAxis:function(m,b,w){var u=this,c=u.axisProps[w],r=!c.horizontal,l=c.sizeProp,p=0,a=m.childItems,g=a.length,t,q,o,h,s,e,k,n,d,v,j;for(q=0;q<g;++q){o=a[q];s=o.target;o.layoutPos={};if(s.region){o.region=e=s.region;o.isCenter=s.isCenter;o.isHorz=s.isHorz;o.isVert=s.isVert;o.weight=s.weight||u.regionWeights[e]||0;b[s.id]=o;if(s.isCenter){t=o;h=s.flex;m.centerRegion=t;continue}if(r!==o.isVert){continue}o.reverseWeighting=(e==c.borderEnd);n=s[l];d=typeof n;if(!s.collapsed){if(d=="string"&&(k=u.percentageRe.exec(n))){o.percentage=parseInt(k[1],10)}else{if(s.flex){p+=o.flex=s.flex}}}}}if(t){v=t.target;if(j=v.placeholderFor){if(!h&&r===j.collapsedVertical()){h=0;t.collapseAxis=w}}else{if(v.collapsed&&(r===v.collapsedVertical())){h=0;t.collapseAxis=w}}}if(h==null){h=1}p+=h;return Ext.apply({before:r?"top":"left",totalFlex:p},c)},beginLayout:function(d){var l=this,k=l.getLayoutItems(),e=l.padding,m=typeof e,p=false,q,o,b,h,g,a,c,j,n;if(e){if(m=="string"||m=="number"){e=Ext.util.Format.parseBox(e)}}else{e=d.getEl("getTargetEl").getPaddingInfo();p=true}d.outerPad=e;d.padOnContainer=p;for(h=0,b=k.length;h<b;++h){o=k[h];a=l.getSplitterTarget(o);if(a){j=!!o.hidden;if(!a.split){if(a.isCollapsingOrExpanding){c=!!a.collapsed}}else{if(j!==a.hidden){c=!a.hidden}}if(c===true){o.show()}else{if(c===false){o.hide()}}}}l.callParent(arguments);k=d.childItems;b=k.length;g={};d.borderAxisHorz=l.beginAxis(d,g,"horz");d.borderAxisVert=l.beginAxis(d,g,"vert");for(h=0;h<b;++h){q=k[h];a=l.getSplitterTarget(q.target);if(a){n=g[a.id];if(!n){n=d.getEl(a.el,l);n.region=a.region}q.collapseTarget=a=n;q.weight=a.weight;q.reverseWeighting=a.reverseWeighting;a.splitter=q;q.isHorz=a.isHorz;q.isVert=a.isVert}}l.sortWeightedItems(k,"reverseWeighting");l.setupSplitterNeighbors(k)},calculate:function(d){var m=this,a=m.getContainerSize(d),j=d.childItems,c=j.length,b=d.borderAxisHorz,k=d.borderAxisVert,e=d.outerPad,o=d.padOnContainer,h,q,l,p,n,g;b.begin=e.left;k.begin=e.top;n=b.end=b.flexSpace=a.width+(o?e.left:-e.right);g=k.end=k.flexSpace=a.height+(o?e.top:-e.bottom);for(h=0;h<c;++h){q=j[h];l=q.getMarginInfo();if(q.isHorz||q.isCenter){b.addUnflexed(l.width);n-=l.width}if(q.isVert||q.isCenter){k.addUnflexed(l.height);g-=l.height}if(!q.flex&&!q.percentage){if(q.isHorz||(q.isCenter&&q.collapseAxis==="horz")){p=q.getProp("width");b.addUnflexed(p);if(q.collapseTarget){n-=p}}else{if(q.isVert||(q.isCenter&&q.collapseAxis==="vert")){p=q.getProp("height");k.addUnflexed(p);if(q.collapseTarget){g-=p}}}}}for(h=0;h<c;++h){q=j[h];l=q.getMarginInfo();if(q.percentage){if(q.isHorz){p=Math.ceil(n*q.percentage/100);p=q.setWidth(p);b.addUnflexed(p)}else{if(q.isVert){p=Math.ceil(g*q.percentage/100);p=q.setHeight(p);k.addUnflexed(p)}}}}for(h=0;h<c;++h){q=j[h];if(!q.isCenter){m.calculateChildAxis(q,b);m.calculateChildAxis(q,k)}}if(m.finishAxis(d,k)+m.finishAxis(d,b)<2){m.done=false}else{m.finishPositions(j)}},calculateChildAxis:function(l,c){var a=l.collapseTarget,h="set"+c.sizePropCap,e=c.sizeProp,d=l.getMarginInfo()[e],j,b,g,i,k;if(a){j=a.region}else{j=l.region;g=l.flex}b=j==c.borderBegin;if(!b&&j!=c.borderEnd){l[h](c.end-c.begin-d);i=c.begin}else{if(g){k=Math.ceil(c.flexSpace*(g/c.totalFlex));k=l[h](k)}else{if(l.percentage){k=l.peek(e)}else{k=l.getProp(e)}}k+=d;if(b){i=c.begin;c.begin+=k}else{c.end=i=c.end-k}}l.layoutPos[c.posProp]=i},finishAxis:function(d,c){var b=c.end-c.begin,a=d.centerRegion;if(a){a["set"+c.sizePropCap](b-a.getMarginInfo()[c.sizeProp]);a.layoutPos[c.posProp]=c.begin}return Ext.isNumber(b)?1:0},finishPositions:function(d){var c=d.length,b,a;for(b=0;b<c;++b){a=d[b];a.setProp("x",a.layoutPos.x+a.marginInfo.left);a.setProp("y",a.layoutPos.y+a.marginInfo.top)}},getPlaceholder:function(a){return a.getPlaceholder&&a.getPlaceholder()},getSplitterTarget:function(b){var a=b.collapseTarget;if(a&&a.collapsed){return a.placeholder||a}return a},isItemBoxParent:function(a){return true},isItemShrinkWrap:function(a){return true},insertSplitter:function(c,b,e){var g=c.region,d={xtype:"bordersplitter",collapseTarget:c,id:c.id+"-splitter",hidden:e,canResize:c.splitterResize!==false},a=b+((g=="south"||g=="east")?0:1);if(c.isHorz){d.height=null}else{d.width=null}if(c.collapseMode=="mini"){d.collapsedCls=c.collapsedCls}c.splitter=this.owner.add(a,d)},onAdd:function(d,a){var c=this,h=d.placeholderFor,g=d.region,b,e;c.callParent(arguments);if(g){Ext.apply(d,c.regionFlags[g]);if(g=="center"){c.centerRegion=d}else{d.collapseDirection=this.collapseDirections[g];b=d.split;e=!!d.hidden;if((d.isHorz||d.isVert)&&(b||d.collapseMode=="mini")){c.insertSplitter(d,a,e||!b)}}if(!d.hasOwnProperty("collapseMode")){d.collapseMode=c.panelCollapseMode}if(!d.hasOwnProperty("animCollapse")){if(d.collapseMode!="placeholder"){d.animCollapse=false}else{d.animCollapse=c.panelCollapseAnimate}}}else{if(h){Ext.apply(d,c.regionFlags[h.region]);d.region=h.region;d.weight=h.weight}}},onDestroy:function(){this.centerRegion=null;this.callParent()},onRemove:function(b){var a=this,d=b.region,c=b.splitter;if(d){if(b.isCenter){a.centerRegion=null}delete b.isCenter;delete b.isHorz;delete b.isVert;if(c){a.owner.doRemove(c,true);delete b.splitter}}a.callParent(arguments)},regionFlags:{center:{isCenter:true,isHorz:false,isVert:false},north:{isCenter:false,isHorz:false,isVert:true},south:{isCenter:false,isHorz:false,isVert:true},west:{isCenter:false,isHorz:true,isVert:false},east:{isCenter:false,isHorz:true,isVert:false}},setupSplitterNeighbors:function(m){var p={},e=m.length,o=this.touchedRegions,h,g,a,l,d,k,n,b,c;for(h=0;h<e;++h){k=m[h].target;n=k.region;if(k.isCenter){a=k}else{if(n){c=o[n];for(g=0,l=c.length;g<l;++g){d=p[c[g]];if(d){d.neighbors.push(k)}}if(k.placeholderFor){b=k.placeholderFor.splitter}else{b=k.splitter}if(b){b.neighbors=[]}p[n]=b}}}if(a){c=o.center;for(g=0,l=c.length;g<l;++g){d=p[c[g]];if(d){d.neighbors.push(a)}}}},touchedRegions:{center:["north","south","east","west"],north:["north","east","west"],south:["south","east","west"],east:["east","north","south"],west:["west","north","south"]},sizePolicies:{vert:{setsWidth:1,setsHeight:0},horz:{setsWidth:0,setsHeight:1},flexAll:{setsWidth:1,setsHeight:1}},getItemSizePolicy:function(e){var d=this,a=this.sizePolicies,c,b,g,h;if(e.isCenter){h=e.placeholderFor;if(h){if(h.collapsedVertical()){return a.vert}return a.horz}if(e.collapsed){if(e.collapsedVertical()){return a.vert}return a.horz}return a.flexAll}c=e.collapseTarget;if(c){return c.isVert?a.vert:a.horz}if(e.region){if(e.isVert){b=e.height;g=a.vert}else{b=e.width;g=a.horz}if(e.flex||(typeof b=="string"&&d.percentageRe.test(b))){return a.flexAll}return g}return d.autoSizePolicy}},function(){var a={addUnflexed:function(c){this.flexSpace=Math.max(this.flexSpace-c,0)}},b=this.prototype.axisProps;Ext.apply(b.horz,a);Ext.apply(b.vert,a)});Ext.define("Ext.layout.container.Card",{extend:"Ext.layout.container.Fit",alternateClassName:"Ext.layout.CardLayout",alias:"layout.card",type:"card",hideInactive:true,deferredRender:false,getRenderTree:function(){var a=this,b=a.getActiveItem();if(b){if(b.hasListeners.beforeactivate&&b.fireEvent("beforeactivate",b)===false){b=a.activeItem=a.owner.activeItem=null}else{if(b.hasListeners.activate){b.on({boxready:function(){b.fireEvent("activate",b)},single:true})}}if(a.deferredRender){if(b){return a.getItemsRenderTree([b])}}else{return a.callParent(arguments)}}},renderChildren:function(){var a=this,b=a.getActiveItem();if(!a.deferredRender){a.callParent()}else{if(b){a.renderItems([b],a.getRenderTarget())}}},isValidParent:function(c,d,a){var b=c.el?c.el.dom:Ext.getDom(c);return(b&&b.parentNode===(d.dom||d))||false},getActiveItem:function(){var b=this,a=b.parseActiveItem(b.activeItem||(b.owner&&b.owner.activeItem));if(a&&b.owner.items.indexOf(a)!=-1){b.activeItem=a}else{b.activeItem=null}return b.activeItem},parseActiveItem:function(a){if(a&&a.isComponent){return a}else{if(typeof a=="number"||a===undefined){return this.getLayoutItems()[a||0]}else{return this.owner.getComponent(a)}}},configureItem:function(a){if(a===this.getActiveItem()){a.hidden=false}else{a.hidden=true}this.callParent(arguments)},onRemove:function(a){var b=this;if(a===b.activeItem){b.activeItem=null}},getAnimation:function(b,a){var c=(b||{}).cardSwitchAnimation;if(c===false){return false}return c||a.cardSwitchAnimation},getNext:function(){var c=arguments[0],a=this.getLayoutItems(),b=Ext.Array.indexOf(a,this.activeItem);return a[b+1]||(c?a[0]:false)},next:function(){var b=arguments[0],a=arguments[1];return this.setActiveItem(this.getNext(a),b)},getPrev:function(){var c=arguments[0],a=this.getLayoutItems(),b=Ext.Array.indexOf(a,this.activeItem);return a[b-1]||(c?a[a.length-1]:false)},prev:function(){var b=arguments[0],a=arguments[1];return this.setActiveItem(this.getPrev(a),b)},setActiveItem:function(b){var e=this,a=e.owner,d=e.activeItem,g=a.rendered,c;b=e.parseActiveItem(b);c=a.items.indexOf(b);if(c==-1){c=a.items.items.length;Ext.suspendLayouts();b=a.add(b);Ext.resumeLayouts()}if(b&&d!=b){if(b.fireEvent("beforeactivate",b,d)===false){return false}if(d&&d.fireEvent("beforedeactivate",d,b)===false){return false}if(g){Ext.suspendLayouts();if(!b.rendered){e.renderItem(b,e.getRenderTarget(),a.items.length)}if(d){if(e.hideInactive){d.hide();d.hiddenByLayout=true}d.fireEvent("deactivate",d,b)}if(b.hidden){b.show()}if(!b.hidden){e.activeItem=b}Ext.resumeLayouts(true)}else{e.activeItem=b}b.fireEvent("activate",b,d);return e.activeItem}return false}});Ext.define("Ext.layout.container.Column",{extend:"Ext.layout.container.Container",alias:["layout.column"],alternateClassName:"Ext.layout.ColumnLayout",type:"column",itemCls:Ext.baseCSSPrefix+"column",targetCls:Ext.baseCSSPrefix+"column-layout-ct",columnWidthSizePolicy:{setsWidth:1,setsHeight:0},childEls:["innerCt"],manageOverflow:2,renderTpl:['<div id="{ownerId}-innerCt" class="',Ext.baseCSSPrefix,'column-inner">',"{%this.renderBody(out,values)%}",'<div class="',Ext.baseCSSPrefix,'clear"></div>',"</div>","{%this.renderPadder(out,values)%}"],getItemSizePolicy:function(a){if(a.columnWidth){return this.columnWidthSizePolicy}return this.autoSizePolicy},beginLayout:function(){this.callParent(arguments);this.innerCt.dom.style.width=""},calculate:function(c){var a=this,d=a.getContainerSize(c),b=c.state;if(b.calculatedColumns||(b.calculatedColumns=a.calculateColumns(c))){if(a.calculateHeights(c)){a.calculateOverflow(c,d);return}}a.done=false},calculateColumns:function(d){var m=this,a=m.getContainerSize(d),o=d.getEl("innerCt",m),l=d.childItems,j=l.length,b=0,g,n,e,c,h,k;if(!d.heightModel.shrinkWrap&&!d.targetContext.hasProp("height")){return false}if(!a.gotWidth){d.targetContext.block(m,"width");g=true}else{n=a.width;o.setWidth(n)}for(e=0;e<j;++e){c=l[e];h=c.getMarginInfo().width;if(!c.widthModel.calculated){k=c.getProp("width");if(typeof k!="number"){c.block(m,"width");g=true}b+=k+h}}if(!g){n=(n<b)?0:n-b;for(e=0;e<j;++e){c=l[e];if(c.widthModel.calculated){h=c.marginInfo.width;k=c.target.columnWidth;k=Math.floor(k*n)-h;k=c.setWidth(k);b+=k+h}}d.setContentWidth(b)}return !g},calculateHeights:function(h){var g=this,b=h.childItems,a=b.length,c,d,e;c=false;for(d=0;d<a;++d){e=b[d];if(!e.hasDomProp("height")){e.domBlock(g,"height");c=true}}if(!c){h.setContentHeight(g.innerCt.getHeight()+h.targetContext.getPaddingInfo().height)}return !c},finishedLayout:function(a){var b=a.bodyContext;if(b&&(Ext.isIE6||Ext.isIE7||Ext.isIEQuirks)){b.el.repaint()}this.callParent(arguments)},getRenderTarget:function(){return this.innerCt}});Ext.define("Ext.layout.container.Form",{alias:"layout.form",extend:"Ext.layout.container.Auto",alternateClassName:"Ext.layout.FormLayout",tableCls:Ext.baseCSSPrefix+"form-layout-table",type:"form",manageOverflow:2,childEls:["formTable"],padRow:'<tr><td class="'+Ext.baseCSSPrefix+'form-item-pad" colspan="3"></td></tr>',renderTpl:['<table id="{ownerId}-formTable" class="{tableCls}" style="width:100%" cellpadding="0">',"{%this.renderBody(out,values)%}","</table>","{%this.renderPadder(out,values)%}"],getRenderData:function(){var a=this.callParent();a.tableCls=this.tableCls;return a},calculate:function(e){var d=this,h=d.getContainerSize(e,true),a,g,b=0,c;if(h.gotWidth){this.callParent(arguments);a=d.formTable.dom.offsetWidth;g=e.childItems;for(c=g.length;b<c;++b){g[b].setWidth(a,false)}}else{d.done=false}},getRenderTarget:function(){return this.formTable},getRenderTree:function(){var d=this,b=d.callParent(arguments),c,a;for(c=0,a=b.length;c<a;c++){b[c]=d.transformItemRenderTree(b[c])}return b},transformItemRenderTree:function(a){if(a.tag&&a.tag=="table"){a.tag="tbody";delete a.cellspacing;delete a.cellpadding;if(Ext.isIE6){a.cn=this.padRow}return a}return{tag:"tbody",cn:{tag:"tr",cn:{tag:"td",colspan:3,style:"width:100%",cn:a}}}},isValidParent:function(b,c,a){return true},isItemShrinkWrap:function(a){return((a.shrinkWrap===true)?3:a.shrinkWrap||0)&2},getItemSizePolicy:function(a){return{setsWidth:1,setsHeight:0}}});Ext.define("Ext.menu.Item",{extend:"Ext.Component",alias:"widget.menuitem",alternateClassName:"Ext.menu.TextItem",activeCls:Ext.baseCSSPrefix+"menu-item-active",ariaRole:"menuitem",canActivate:true,clickHideDelay:1,destroyMenu:true,disabledCls:Ext.baseCSSPrefix+"menu-item-disabled",hideOnClick:true,isMenuItem:true,menuAlign:"tl-tr?",menuExpandDelay:200,menuHideDelay:200,tooltipType:"qtip",arrowCls:Ext.baseCSSPrefix+"menu-item-arrow",childEls:["itemEl","iconEl","textEl","arrowEl"],renderTpl:['<tpl if="plain">',"{text}","<tpl else>",'<a id="{id}-itemEl" class="'+Ext.baseCSSPrefix+'menu-item-link" href="{href}" <tpl if="hrefTarget">target="{hrefTarget}"</tpl> hidefocus="true" unselectable="on">','<img id="{id}-iconEl" src="{icon}" class="'+Ext.baseCSSPrefix+'menu-item-icon {iconCls}" />','<span id="{id}-textEl" class="'+Ext.baseCSSPrefix+'menu-item-text" <tpl if="arrowCls">style="margin-right: 17px;"</tpl> >{text}</span>','<img id="{id}-arrowEl" src="{blank}" class="{arrowCls}" />',"</a>","</tpl>"],maskOnDisable:false,activate:function(){var a=this;if(!a.activated&&a.canActivate&&a.rendered&&!a.isDisabled()&&a.isVisible()){a.el.addCls(a.activeCls);a.focus();a.activated=true;a.fireEvent("activate",a)}},getFocusEl:function(){return this.itemEl},deactivate:function(){var a=this;if(a.activated){a.el.removeCls(a.activeCls);a.blur();a.hideMenu();a.activated=false;a.fireEvent("deactivate",a)}},deferExpandMenu:function(){var a=this;if(a.activated&&(!a.menu.rendered||!a.menu.isVisible())){a.parentMenu.activeChild=a.menu;a.menu.parentItem=a;a.menu.parentMenu=a.menu.ownerCt=a.parentMenu;a.menu.showBy(a,a.menuAlign)}},deferHideMenu:function(){if(this.menu.isVisible()){this.menu.hide()}},cancelDeferHide:function(){clearTimeout(this.hideMenuTimer)},deferHideParentMenus:function(){var a;Ext.menu.Manager.hideAll();if(!Ext.Element.getActiveElement()){a=this.up(":not([hidden])");if(a){a.focus()}}},expandMenu:function(a){var b=this;if(b.menu){b.cancelDeferHide();if(a===0){b.deferExpandMenu()}else{b.expandMenuTimer=Ext.defer(b.deferExpandMenu,Ext.isNumber(a)?a:b.menuExpandDelay,b)}}},getRefItems:function(a){var c=this.menu,b;if(c){b=c.getRefItems(a);b.unshift(c)}return b||[]},hideMenu:function(a){var b=this;if(b.menu){clearTimeout(b.expandMenuTimer);b.hideMenuTimer=Ext.defer(b.deferHideMenu,Ext.isNumber(a)?a:b.menuHideDelay,b)}},initComponent:function(){var b=this,c=Ext.baseCSSPrefix,a=[c+"menu-item"],d;b.addEvents("activate","click","deactivate");if(b.plain){a.push(c+"menu-item-plain")}if(b.cls){a.push(b.cls)}b.cls=a.join(" ");if(b.menu){d=b.menu;delete b.menu;b.setMenu(d)}b.callParent(arguments)},onClick:function(b){var a=this;if(!a.href){b.stopEvent()}if(a.disabled){return}if(a.hideOnClick){a.deferHideParentMenusTimer=Ext.defer(a.deferHideParentMenus,a.clickHideDelay,a)}Ext.callback(a.handler,a.scope||a,[a,b]);a.fireEvent("click",a,b);if(!a.hideOnClick){a.focus()}},onRemoved:function(){var a=this;if(a.activated&&a.parentMenu.activeItem===a){a.parentMenu.deactivateActiveItem()}a.callParent(arguments);delete a.parentMenu;delete a.ownerButton},beforeDestroy:function(){var a=this;if(a.rendered){a.clearTip()}a.callParent()},onDestroy:function(){var a=this;clearTimeout(a.expandMenuTimer);a.cancelDeferHide();clearTimeout(a.deferHideParentMenusTimer);a.setMenu(null);a.callParent(arguments)},beforeRender:function(){var b=this,d=Ext.BLANK_IMAGE_URL,a,c;b.callParent();if(b.iconAlign==="right"){a=b.checkChangeDisabled?b.disabledCls:"";c=Ext.baseCSSPrefix+"menu-item-icon-right "+b.iconCls}else{a=b.iconCls+(b.checkChangeDisabled?" "+b.disabledCls:"");c=b.menu?b.arrowCls:""}Ext.applyIf(b.renderData,{href:b.href||"#",hrefTarget:b.hrefTarget,icon:b.icon||d,iconCls:a,plain:b.plain,text:b.text,arrowCls:c,blank:d})},onRender:function(){var a=this;a.callParent(arguments);if(a.tooltip){a.setTooltip(a.tooltip,true)}},setMenu:function(e,d){var c=this,b=c.menu,a=c.arrowEl;if(b){delete b.parentItem;delete b.parentMenu;delete b.ownerCt;delete b.ownerItem;if(d===true||(d!==false&&c.destroyMenu)){Ext.destroy(b)}}if(e){c.menu=Ext.menu.Manager.get(e);c.menu.ownerItem=c}else{c.menu=null}if(c.rendered&&!c.destroying&&a){a[c.menu?"addCls":"removeCls"](c.arrowCls)}},setHandler:function(b,a){this.handler=b||null;this.scope=a},setIcon:function(b){var a=this.iconEl;if(a){a.src=b||Ext.BLANK_IMAGE_URL}this.icon=b},setIconCls:function(b){var c=this,a=c.iconEl;if(a){if(c.iconCls){a.removeCls(c.iconCls)}if(b){a.addCls(b)}}c.iconCls=b},setText:function(c){var b=this,a=b.textEl||b.el;b.text=c;if(b.rendered){a.update(c||"");b.ownerCt.updateLayout()}},getTipAttr:function(){return this.tooltipType=="qtip"?"data-qtip":"title"},clearTip:function(){if(Ext.isObject(this.tooltip)){Ext.tip.QuickTipManager.unregister(this.itemEl)}},setTooltip:function(c,a){var b=this;if(b.rendered){if(!a){b.clearTip()}if(Ext.isObject(c)){Ext.tip.QuickTipManager.register(Ext.apply({target:b.itemEl.id},c));b.tooltip=c}else{b.itemEl.dom.setAttribute(b.getTipAttr(),c)}}else{b.tooltip=c}return b}});Ext.define("Ext.menu.CheckItem",{extend:"Ext.menu.Item",alias:"widget.menucheckitem",checkedCls:Ext.baseCSSPrefix+"menu-item-checked",uncheckedCls:Ext.baseCSSPrefix+"menu-item-unchecked",groupCls:Ext.baseCSSPrefix+"menu-group-icon",hideOnClick:false,checkChangeDisabled:false,afterRender:function(){var a=this;a.callParent();a.checked=!a.checked;a.setChecked(!a.checked,true);if(a.checkChangeDisabled){a.disableCheckChange()}},initComponent:function(){var a=this;a.addEvents("beforecheckchange","checkchange");a.callParent(arguments);Ext.menu.Manager.registerCheckable(a);if(a.group){if(!a.iconCls){a.iconCls=a.groupCls}if(a.initialConfig.hideOnClick!==false){a.hideOnClick=true}}},disableCheckChange:function(){var b=this,a=b.iconEl;if(a){a.addCls(b.disabledCls)}if(!(Ext.isIE9&&Ext.isStrict)&&b.rendered){b.el.repaint()}b.checkChangeDisabled=true},enableCheckChange:function(){var b=this,a=b.iconEl;if(a){a.removeCls(b.disabledCls)}b.checkChangeDisabled=false},onClick:function(b){var a=this;if(!a.disabled&&!a.checkChangeDisabled&&!(a.checked&&a.group)){a.setChecked(!a.checked)}this.callParent([b])},onDestroy:function(){Ext.menu.Manager.unregisterCheckable(this);this.callParent(arguments)},setChecked:function(c,a){var b=this;if(b.checked!==c&&(a||b.fireEvent("beforecheckchange",b,c)!==false)){if(b.el){b.el[c?"addCls":"removeCls"](b.checkedCls)[!c?"addCls":"removeCls"](b.uncheckedCls)}b.checked=c;Ext.menu.Manager.onCheckChange(b,c);if(!a){Ext.callback(b.checkHandler,b.scope,[b,c]);b.fireEvent("checkchange",b,c)}}}});Ext.define("Ext.menu.KeyNav",{extend:"Ext.util.KeyNav",requires:["Ext.FocusManager"],constructor:function(b){var a=this;a.menu=b;a.callParent([b.el,{down:a.down,enter:a.enter,esc:a.escape,left:a.left,right:a.right,space:a.enter,tab:a.tab,up:a.up}])},down:function(b){var a=this,c=a.menu.focusedItem;if(c&&b.getKey()==Ext.EventObject.DOWN&&a.isWhitelisted(c)){return true}a.focusNextItem(1)},enter:function(b){var c=this.menu,a=c.focusedItem;if(c.activeItem){c.onClick(b)}else{if(a&&a.isFormField){return true}}},escape:function(a){Ext.menu.Manager.hideAll()},focusNextItem:function(g){var h=this.menu,b=h.items,d=h.focusedItem,c=d?b.indexOf(d):-1,a=c+g,e;while(a!=c){if(a<0){a=b.length-1}else{if(a>=b.length){a=0}}e=b.getAt(a);if(h.canActivateItem(e)){h.setActiveItem(e);break}a+=g}},isWhitelisted:function(a){return Ext.FocusManager.isWhitelisted(a)},left:function(b){var c=this.menu,d=c.focusedItem,a=c.activeItem;if(d&&this.isWhitelisted(d)){return true}c.hide();if(c.parentMenu){c.parentMenu.focus()}},right:function(c){var d=this.menu,g=d.focusedItem,a=d.activeItem,b;if(g&&this.isWhitelisted(g)){return true}if(a){b=d.activeItem.menu;if(b){a.expandMenu(0);Ext.defer(function(){b.setActiveItem(b.items.getAt(0))},25)}}},tab:function(b){var a=this;if(b.shiftKey){a.up(b)}else{a.down(b)}},up:function(b){var a=this,c=a.menu.focusedItem;if(c&&b.getKey()==Ext.EventObject.UP&&a.isWhitelisted(c)){return true}a.focusNextItem(-1)}});Ext.define("Ext.menu.Separator",{extend:"Ext.menu.Item",alias:"widget.menuseparator",canActivate:false,focusable:false,hideOnClick:false,plain:true,separatorCls:Ext.baseCSSPrefix+"menu-item-separator",text:" ",beforeRender:function(a,c){var b=this;b.callParent();b.addCls(b.separatorCls)}});Ext.define("Ext.menu.Menu",{extend:"Ext.panel.Panel",alias:"widget.menu",requires:["Ext.layout.container.Fit","Ext.layout.container.VBox","Ext.menu.CheckItem","Ext.menu.Item","Ext.menu.KeyNav","Ext.menu.Manager","Ext.menu.Separator"],enableKeyNav:true,allowOtherMenus:false,ariaRole:"menu",defaultAlign:"tl-bl?",floating:true,constrain:true,hidden:true,hideMode:"visibility",ignoreParentClicks:false,isMenu:true,showSeparator:true,minWidth:undefined,defaultMinWidth:120,initComponent:function(){var b=this,d=Ext.baseCSSPrefix,a=[d+"menu"],c=b.bodyCls?[b.bodyCls]:[],e=b.floating!==false;b.addEvents("click","mouseenter","mouseleave","mouseover");Ext.menu.Manager.register(b);if(b.plain){a.push(d+"menu-plain")}b.cls=a.join(" ");c.unshift(d+"menu-body");b.bodyCls=c.join(" ");if(!b.layout){b.layout={type:"vbox",align:"stretchmax",overflowHandler:"Scroller"}}if(e&&b.minWidth===undefined){b.minWidth=b.defaultMinWidth}if(!e&&b.initialConfig.hidden!==true){b.hidden=false}b.callParent(arguments);b.on("beforeshow",function(){var g=!!b.items.length;if(g&&b.rendered){b.el.setStyle("visibility",null)}return g})},beforeRender:function(){this.callParent(arguments);if(!this.getSizeModel().width.shrinkWrap){this.layout.align="stretch"}},onBoxReady:function(){var a=this,b;a.callParent(arguments);if(a.showSeparator){b={cls:Ext.baseCSSPrefix+"menu-icon-separator",html:" "};if((!Ext.isStrict&&Ext.isIE)||Ext.isIE6){b.style="height:"+a.el.getHeight()+"px"}a.iconSepEl=a.layout.getElementTarget().insertFirst(b)}a.mon(a.el,{click:a.onClick,mouseover:a.onMouseOver,scope:a});a.mouseMonitor=a.el.monitorMouseLeave(100,a.onMouseLeave,a);if(a.enableKeyNav){a.keyNav=new Ext.menu.KeyNav(a)}},getBubbleTarget:function(){return this.parentMenu||this.ownerButton||this.callParent(arguments)},canActivateItem:function(a){return a&&!a.isDisabled()&&a.isVisible()&&(a.canActivate||a.getXTypes().indexOf("menuitem")<0)},deactivateActiveItem:function(b){var c=this,d=c.activeItem,a=c.focusedItem;if(d){d.deactivate();if(!d.activated){delete c.activeItem}}if(a&&b){a.blur();delete c.focusedItem}},getFocusEl:function(){return this.focusedItem||this.el},hide:function(){this.deactivateActiveItem(true);this.callParent(arguments)},getItemFromEvent:function(a){return this.getChildByElement(a.getTarget())},lookupComponent:function(b){var a=this;if(typeof b=="string"){b=a.lookupItemFromString(b)}else{if(Ext.isObject(b)){b=a.lookupItemFromObject(b)}}b.minWidth=b.minWidth||a.minWidth;return b},lookupItemFromObject:function(c){var b=this,d=Ext.baseCSSPrefix,a;if(!c.isComponent){if(!c.xtype){c=Ext.create("Ext.menu."+(Ext.isBoolean(c.checked)?"Check":"")+"Item",c)}else{c=Ext.ComponentManager.create(c,c.xtype)}}if(c.isMenuItem){c.parentMenu=b}if(!c.isMenuItem&&!c.dock){a=[d+"menu-item",d+"menu-item-cmp"];if(!b.plain&&(c.indent===true||c.iconCls==="no-icon")){a.push(d+"menu-item-indent")}if(c.rendered){c.el.addCls(a)}else{c.cls=(c.cls?c.cls:"")+" "+a.join(" ")}}return c},lookupItemFromString:function(a){return(a=="separator"||a=="-")?new Ext.menu.Separator():new Ext.menu.Item({canActivate:false,hideOnClick:false,plain:true,text:a})},onClick:function(c){var b=this,a;if(b.disabled){c.stopEvent();return}a=(c.type==="click")?b.getItemFromEvent(c):b.activeItem;if(a&&a.isMenuItem){if(!a.menu||!b.ignoreParentClicks){a.onClick(c)}else{c.stopEvent()}}if(!a||a.disabled){a=undefined}b.fireEvent("click",b,a,c)},onDestroy:function(){var a=this;Ext.menu.Manager.unregister(a);delete a.parentMenu;delete a.ownerButton;if(a.rendered){a.el.un(a.mouseMonitor);Ext.destroy(a.keyNav);delete a.keyNav}a.callParent(arguments)},onMouseLeave:function(b){var a=this;a.deactivateActiveItem();if(a.disabled){return}a.fireEvent("mouseleave",a,b)},onMouseOver:function(h){var g=this,i=h.getRelatedTarget(),b=!g.el.contains(i),d=g.getItemFromEvent(h),c=g.parentMenu,a=g.parentItem;if(b&&c){c.setActiveItem(a);a.cancelDeferHide();c.mouseMonitor.mouseenter()}if(g.disabled){return}if(d&&!d.activated){g.setActiveItem(d);if(d.activated&&d.expandMenu){d.expandMenu()}}if(b){g.fireEvent("mouseenter",g,h)}g.fireEvent("mouseover",g,d,h)},setActiveItem:function(b){var a=this;if(b&&(b!=a.activeItem)){a.deactivateActiveItem();if(a.canActivateItem(b)){if(b.activate){b.activate();if(b.activated){a.activeItem=b;a.focusedItem=b;a.focus()}}else{b.focus();a.focusedItem=b}}b.el.scrollIntoView(a.layout.getRenderTarget())}},showBy:function(b,d,c){var a=this;if(a.floating&&b){a.show();a.setPagePosition(a.el.getAlignToXY(b.el||b,d||a.defaultAlign,c));a.setVerticalPosition()}return a},show:function(){var d=this,c,b,a,e=d.maxHeight;if(!d.rendered){d.doAutoRender()}if(d.floating){c=Ext.fly(d.el.getScopeParent());b=c.getViewSize().height;d.maxHeight=Math.min(e||b,b)}a=d.callParent(arguments);d.maxHeight=e;return a},afterComponentLayout:function(c,a,b,e){var d=this;d.callParent(arguments);if(d.showSeparator){d.iconSepEl.setHeight(d.componentLayout.lastComponentSize.contentHeight)}},setVerticalPosition:function(){var d=this,g,e=d.el.getY(),h=e,j=d.getHeight(),b=Ext.Element.getViewportHeight().height,c=Ext.fly(d.el.getScopeParent()),a=c.getViewSize().height,i=e-c.getScroll().top;c=null;if(d.floating){g=d.maxHeight?d.maxHeight:a-i;if(j>a){h=e-i}else{if(g<j){h=e-(j-g)}else{if((e+j)>b){h=b-j}}}}d.el.setY(h)}});Ext.define("Ext.menu.ColorPicker",{extend:"Ext.menu.Menu",alias:"widget.colormenu",requires:["Ext.picker.Color"],hideOnClick:true,pickerId:null,initComponent:function(){var b=this,a=Ext.apply({},b.initialConfig);delete a.listeners;Ext.apply(b,{plain:true,showSeparator:false,items:Ext.applyIf({cls:Ext.baseCSSPrefix+"menu-color-item",id:b.pickerId,xtype:"colorpicker"},a)});b.callParent(arguments);b.picker=b.down("colorpicker");b.relayEvents(b.picker,["select"]);if(b.hideOnClick){b.on("select",b.hidePickerOnSelect,b)}},hidePickerOnSelect:function(){Ext.menu.Manager.hideAll()}});Ext.define("Ext.menu.DatePicker",{extend:"Ext.menu.Menu",alias:"widget.datemenu",requires:["Ext.picker.Date"],hideOnClick:true,pickerId:null,initComponent:function(){var b=this,a=Ext.apply({},b.initialConfig);delete a.listeners;Ext.apply(b,{showSeparator:false,plain:true,border:false,bodyPadding:0,items:Ext.applyIf({cls:Ext.baseCSSPrefix+"menu-date-item",id:b.pickerId,xtype:"datepicker"},a)});b.callParent(arguments);b.picker=b.down("datepicker");b.relayEvents(b.picker,["select"]);if(b.hideOnClick){b.on("select",b.hidePickerOnSelect,b)}},hidePickerOnSelect:function(){Ext.menu.Manager.hideAll()}});Ext.define("Ext.panel.Tool",{extend:"Ext.Component",requires:["Ext.tip.QuickTipManager"],alias:"widget.tool",baseCls:Ext.baseCSSPrefix+"tool",disabledCls:Ext.baseCSSPrefix+"tool-disabled",toolPressedCls:Ext.baseCSSPrefix+"tool-pressed",toolOverCls:Ext.baseCSSPrefix+"tool-over",ariaRole:"button",childEls:["toolEl"],renderTpl:['<img id="{id}-toolEl" src="{blank}" class="{baseCls}-{type}" role="presentation"/>'],tooltipType:"qtip",stopEvent:true,height:15,width:15,initComponent:function(){var a=this;a.addEvents("click");a.type=a.type||a.id;Ext.applyIf(a.renderData,{baseCls:a.baseCls,blank:Ext.BLANK_IMAGE_URL,type:a.type});a.tooltip=a.tooltip||a.qtip;a.callParent();a.on({element:"toolEl",click:a.onClick,mousedown:a.onMouseDown,mouseover:a.onMouseOver,mouseout:a.onMouseOut,scope:a})},afterRender:function(){var b=this,a;b.callParent(arguments);if(b.tooltip){if(Ext.isObject(b.tooltip)){Ext.tip.QuickTipManager.register(Ext.apply({target:b.id},b.tooltip))}else{a=b.tooltipType=="qtip"?"data-qtip":"title";b.toolEl.dom.setAttribute(a,b.tooltip)}}},getFocusEl:function(){return this.el},setType:function(a){var b=this;b.type=a;if(b.rendered){b.toolEl.dom.className=b.baseCls+"-"+a}return b},bindTo:function(a){this.owner=a},onClick:function(d,c){var b=this,a;if(b.disabled){return false}a=b.owner||b.ownerCt;b.el.removeCls(b.toolPressedCls);b.el.removeCls(b.toolOverCls);if(b.stopEvent!==false){d.stopEvent()}Ext.callback(b.handler,b.scope||b,[d,c,a,b]);b.fireEvent("click",b,d);return true},onDestroy:function(){if(Ext.isObject(this.tooltip)){Ext.tip.QuickTipManager.unregister(this.id)}this.callParent()},onMouseDown:function(){if(this.disabled){return false}this.el.addCls(this.toolPressedCls)},onMouseOver:function(){if(this.disabled){return false}this.el.addCls(this.toolOverCls)},onMouseOut:function(){this.el.removeCls(this.toolOverCls)}});Ext.define("Ext.resizer.SplitterTracker",{extend:"Ext.dd.DragTracker",requires:["Ext.util.Region"],enabled:true,overlayCls:Ext.baseCSSPrefix+"resizable-overlay",createDragOverlay:function(){var a;a=this.overlay=Ext.getBody().createChild({cls:this.overlayCls,html:" "});a.unselectable();a.setSize(Ext.Element.getViewWidth(true),Ext.Element.getViewHeight(true));a.show()},getPrevCmp:function(){var a=this.getSplitter();return a.previousSibling()},getNextCmp:function(){var a=this.getSplitter();return a.nextSibling()},onBeforeStart:function(i){var d=this,g=d.getPrevCmp(),a=d.getNextCmp(),c=d.getSplitter().collapseEl,h=i.getTarget(),b;if(c&&h===d.getSplitter().collapseEl.dom){return false}if(a.collapsed||g.collapsed){return false}d.prevBox=g.getEl().getBox();d.nextBox=a.getEl().getBox();d.constrainTo=b=d.calculateConstrainRegion();if(!b){return false}d.createDragOverlay();return b},onStart:function(b){var a=this.getSplitter();a.addCls(a.baseCls+"-active")},calculateConstrainRegion:function(){var g=this,a=g.getSplitter(),h=a.getWidth(),i=a.defaultSplitMin,b=a.orientation,d=g.prevBox,j=g.getPrevCmp(),c=g.nextBox,e=g.getNextCmp(),l,k;if(b==="vertical"){l=new Ext.util.Region(d.y,(j.maxWidth?d.x+j.maxWidth:c.right-(e.minWidth||i))+h,d.bottom,d.x+(j.minWidth||i));k=new Ext.util.Region(c.y,c.right-(e.minWidth||i),c.bottom,(e.maxWidth?c.right-e.maxWidth:d.x+(d.minWidth||i))-h)}else{l=new Ext.util.Region(d.y+(j.minHeight||i),d.right,(j.maxHeight?d.y+j.maxHeight:c.bottom-(e.minHeight||i))+h,d.x);k=new Ext.util.Region((e.maxHeight?c.bottom-e.maxHeight:d.y+(j.minHeight||i))-h,c.right,c.bottom-(e.minHeight||i),c.x)}return l.intersect(k)},performResize:function(m,g){var o=this,a=o.getSplitter(),h=a.orientation,p=o.getPrevCmp(),n=o.getNextCmp(),b=a.ownerCt,k=b.query(">[flex]"),l=k.length,j=0,d,q,c=0;for(;j<l;j++){q=k[j].getWidth();c+=q;k[j].flex=q}g=g||o.getOffset("dragTarget");if(h==="vertical"){g=g[0];d="width"}else{d="height";g=g[1]}if(p){q=o.prevBox[d]+g;if(p.flex){p.flex=q}else{p[d]=q}}if(n){q=o.nextBox[d]-g;if(n.flex){n.flex=q}else{n[d]=q}}b.updateLayout()},endDrag:function(){var a=this;if(a.overlay){a.overlay.remove();delete a.overlay}a.callParent(arguments)},onEnd:function(c){var a=this,b=a.getSplitter();b.removeCls(b.baseCls+"-active");a.performResize(c,a.getOffset("dragTarget"))},onDrag:function(g){var c=this,h=c.getOffset("dragTarget"),d=c.getSplitter(),b=d.getEl(),a=d.orientation;if(a==="vertical"){b.setX(c.startRegion.left+h[0])}else{b.setY(c.startRegion.top+h[1])}},getSplitter:function(){return this.splitter}});Ext.define("Ext.resizer.BorderSplitterTracker",{extend:"Ext.resizer.SplitterTracker",requires:["Ext.util.Region"],getPrevCmp:null,getNextCmp:null,calculateConstrainRegion:function(){var y=this,a=y.splitter,o=a.collapseTarget,d=a.defaultSplitMin,h=a.vertical?"Width":"Height",c="min"+h,u="max"+h,j="get"+h,t=a.neighbors,e=t.length,n=o.el.getBox(),g=n.x,p=n.y,x=n.right,k=n.bottom,r=a.vertical?(x-g):(k-p),w,l,m,v,s,q,b;m=(o[c]||Math.min(r,d))-r;v=o[u];if(!v){v=1000000000}else{v-=r}b=r;for(w=0;w<e;++w){l=t[w];r=l[j]();s=r-l[u];q=r-(l[c]||Math.min(r,d));if(!isNaN(s)){if(m<s){m=s}}if(v>q){v=q}}if(v-m<2){return null}n=new Ext.util.Region(p,x,k,g);y.constraintAdjusters[a.collapseDirection](n,m,v,a);y.dragInfo={minRange:m,maxRange:v,targetSize:b};return n},constraintAdjusters:{left:function(c,a,b,d){c[0]=c.x=c.left=c.right+a;c.right+=b+d.getWidth()},top:function(c,a,b,d){c[1]=c.y=c.top=c.bottom+a;c.bottom+=b+d.getHeight()},bottom:function(c,a,b,d){c.bottom=c.top-a;c.top-=b+d.getHeight()},right:function(c,a,b,d){c.right=c.left-a;c.left-=b+d.getWidth()}},onBeforeStart:function(h){var k=this,b=k.splitter,a=b.collapseTarget,m=b.neighbors,d=k.getSplitter().collapseEl,j=h.getTarget(),c=m.length,g,l;if(d&&j===b.collapseEl.dom){return false}if(a.collapsed){return false}for(g=0;g<c;++g){l=m[g];if(l.collapsed&&l.isHorz===a.isHorz){return false}}if(!(k.constrainTo=k.calculateConstrainRegion())){return false}k.createDragOverlay();return true},performResize:function(j,i){var k=this,b=k.splitter,h=b.collapseDirection,a=b.collapseTarget,g=k.splitAdjusters[b.vertical?"horz":"vert"],l=i[g.index],d=k.dragInfo,c;if(h=="right"||h=="bottom"){l=-l}l=Math.min(Math.max(d.minRange,l),d.maxRange);if(l){(c=b.ownerCt).suspendLayouts();g.adjustTarget(a,d.targetSize,l);c.resumeLayouts(true)}},splitAdjusters:{horz:{index:0,adjustTarget:function(b,a,c){b.flex=null;b.setSize(a+c)}},vert:{index:1,adjustTarget:function(b,a,c){b.flex=null;b.setSize(undefined,a+c)}}}});Ext.define("Ext.resizer.Handle",{extend:"Ext.Component",handleCls:"",baseHandleCls:Ext.baseCSSPrefix+"resizable-handle",region:"",beforeRender:function(){var a=this;a.callParent();a.addCls(a.baseHandleCls,a.baseHandleCls+"-"+a.region,a.handleCls)},onRender:function(){this.callParent(arguments);this.el.unselectable()}});Ext.define("Ext.resizer.ResizeTracker",{extend:"Ext.dd.DragTracker",dynamic:true,preserveRatio:false,constrainTo:null,proxyCls:Ext.baseCSSPrefix+"resizable-proxy",constructor:function(b){var d=this,c,a,e;if(!b.el){if(b.target.isComponent){d.el=b.target.getEl()}else{d.el=b.target}}this.callParent(arguments);if(d.preserveRatio&&d.minWidth&&d.minHeight){c=d.minWidth/d.el.getWidth();a=d.minHeight/d.el.getHeight();if(a>c){d.minWidth=d.el.getWidth()*a}else{d.minHeight=d.el.getHeight()*c}}if(d.throttle){e=Ext.Function.createThrottled(function(){Ext.resizer.ResizeTracker.prototype.resize.apply(d,arguments)},d.throttle);d.resize=function(h,i,g){if(g){Ext.resizer.ResizeTracker.prototype.resize.apply(d,arguments)}else{e.apply(null,arguments)}}}},onBeforeStart:function(a){this.startBox=this.el.getBox()},getDynamicTarget:function(){var a=this,b=a.target;if(a.dynamic){return b}else{if(!a.proxy){a.proxy=a.createProxy(b)}}a.proxy.show();return a.proxy},createProxy:function(c){var b,a=this.proxyCls,d;if(c.isComponent){b=c.getProxy().addCls(a)}else{d=Ext.getBody();if(Ext.scopeResetCSS){d=Ext.getBody().createChild({cls:Ext.resetCls})}b=c.createProxy({tag:"div",cls:a,id:c.id+"-rzproxy"},d)}b.removeCls(Ext.baseCSSPrefix+"proxy-el");return b},onStart:function(a){this.activeResizeHandle=Ext.get(this.getDragTarget().id);if(!this.dynamic){this.resize(this.startBox,{horizontal:"none",vertical:"none"})}},onDrag:function(a){if(this.dynamic||this.proxy){this.updateDimensions(a)}},updateDimensions:function(s,m){var t=this,c=t.activeResizeHandle.region,g=t.getOffset(t.constrainTo?"dragTarget":null),k=t.startBox,h,p=0,u=0,j,q,a=0,w=0,v,n=g[0]<0?"right":"left",r=g[1]<0?"down":"up",i,b,d,o,l;switch(c){case"south":u=g[1];b=2;break;case"north":u=-g[1];w=-u;b=2;break;case"east":p=g[0];b=1;break;case"west":p=-g[0];a=-p;b=1;break;case"northeast":u=-g[1];w=-u;p=g[0];i=[k.x,k.y+k.height];b=3;break;case"southeast":u=g[1];p=g[0];i=[k.x,k.y];b=3;break;case"southwest":p=-g[0];a=-p;u=g[1];i=[k.x+k.width,k.y];b=3;break;case"northwest":u=-g[1];w=-u;p=-g[0];a=-p;i=[k.x+k.width,k.y+k.height];b=3;break}d={width:k.width+p,height:k.height+u,x:k.x+a,y:k.y+w};j=Ext.Number.snap(d.width,t.widthIncrement);q=Ext.Number.snap(d.height,t.heightIncrement);if(j!=d.width||q!=d.height){switch(c){case"northeast":d.y-=q-d.height;break;case"north":d.y-=q-d.height;break;case"southwest":d.x-=j-d.width;break;case"west":d.x-=j-d.width;break;case"northwest":d.x-=j-d.width;d.y-=q-d.height}d.width=j;d.height=q}if(d.width<t.minWidth||d.width>t.maxWidth){d.width=Ext.Number.constrain(d.width,t.minWidth,t.maxWidth);if(a){d.x=k.x+(k.width-d.width)}}else{t.lastX=d.x}if(d.height<t.minHeight||d.height>t.maxHeight){d.height=Ext.Number.constrain(d.height,t.minHeight,t.maxHeight);if(w){d.y=k.y+(k.height-d.height)}}else{t.lastY=d.y}if(t.preserveRatio||s.shiftKey){h=t.startBox.width/t.startBox.height;o=Math.min(Math.max(t.minHeight,d.width/h),t.maxHeight);l=Math.min(Math.max(t.minWidth,d.height*h),t.maxWidth);if(b==1){d.height=o}else{if(b==2){d.width=l}else{v=Math.abs(i[0]-this.lastXY[0])/Math.abs(i[1]-this.lastXY[1]);if(v>h){d.height=o}else{d.width=l}if(c=="northeast"){d.y=k.y-(d.height-k.height)}else{if(c=="northwest"){d.y=k.y-(d.height-k.height);d.x=k.x-(d.width-k.width)}else{if(c=="southwest"){d.x=k.x-(d.width-k.width)}}}}}}if(u===0){r="none"}if(p===0){n="none"}t.resize(d,{horizontal:n,vertical:r},m)},getResizeTarget:function(a){return a?this.target:this.getDynamicTarget()},resize:function(b,d,a){var c=this.getResizeTarget(a);if(c.isComponent){c.setSize(b.width,b.height);if(c.floating){c.setPagePosition(b.x,b.y)}}else{c.setBox(b)}c=this.originalTarget;if(c&&(this.dynamic||a)){if(c.isComponent){c.setSize(b.width,b.height);if(c.floating){c.setPagePosition(b.x,b.y)}}else{c.setBox(b)}}},onEnd:function(a){this.updateDimensions(a,true);if(this.proxy){this.proxy.hide()}}});Ext.define("Ext.resizer.Resizer",{mixins:{observable:"Ext.util.Observable"},uses:["Ext.resizer.ResizeTracker","Ext.Component"],alternateClassName:"Ext.Resizable",handleCls:Ext.baseCSSPrefix+"resizable-handle",pinnedCls:Ext.baseCSSPrefix+"resizable-pinned",overCls:Ext.baseCSSPrefix+"resizable-over",wrapCls:Ext.baseCSSPrefix+"resizable-wrap",dynamic:true,handles:"s e se",height:null,width:null,heightIncrement:0,widthIncrement:0,minHeight:20,minWidth:20,maxHeight:10000,maxWidth:10000,pinned:false,preserveRatio:false,transparent:false,possiblePositions:{n:"north",s:"south",e:"east",w:"west",se:"southeast",sw:"southwest",nw:"northwest",ne:"northeast"},constructor:function(b){var k=this,j,o,q,p=k.handles,c,n,g,d=0,m,l=[],h,a,e;k.addEvents("beforeresize","resizedrag","resize");if(Ext.isString(b)||Ext.isElement(b)||b.dom){j=b;b=arguments[1]||{};b.target=j}k.mixins.observable.constructor.call(k,b);j=k.target;if(j){if(j.isComponent){k.el=j.getEl();if(j.minWidth){k.minWidth=j.minWidth}if(j.minHeight){k.minHeight=j.minHeight}if(j.maxWidth){k.maxWidth=j.maxWidth}if(j.maxHeight){k.maxHeight=j.maxHeight}if(j.floating){if(!k.hasOwnProperty("handles")){k.handles="n ne e se s sw w nw"}}}else{k.el=k.target=Ext.get(j)}}else{k.target=k.el=Ext.get(k.el)}q=k.el.dom.tagName.toUpperCase();if(q=="TEXTAREA"||q=="IMG"||q=="TABLE"){k.originalTarget=k.target;o=k.el;e=o.getBox();k.target=k.el=k.el.wrap({cls:k.wrapCls,id:k.el.id+"-rzwrap",style:o.getStyles("margin-top","margin-bottom")});k.el.setPositioning(o.getPositioning());o.clearPositioning();k.el.setBox(e);o.setStyle("position","absolute")}k.el.position();if(k.pinned){k.el.addCls(k.pinnedCls)}k.resizeTracker=new Ext.resizer.ResizeTracker({disabled:k.disabled,target:k.target,constrainTo:k.constrainTo,overCls:k.overCls,throttle:k.throttle,originalTarget:k.originalTarget,delegate:"."+k.handleCls,dynamic:k.dynamic,preserveRatio:k.preserveRatio,heightIncrement:k.heightIncrement,widthIncrement:k.widthIncrement,minHeight:k.minHeight,maxHeight:k.maxHeight,minWidth:k.minWidth,maxWidth:k.maxWidth});k.resizeTracker.on({mousedown:k.onBeforeResize,drag:k.onResize,dragend:k.onResizeEnd,scope:k});if(k.handles=="all"){k.handles="n s e w ne nw se sw"}p=k.handles=k.handles.split(/ |\s*?[,;]\s*?/);n=k.possiblePositions;g=p.length;c=k.handleCls+" "+(k.target.isComponent?(k.target.baseCls+"-handle "):"")+k.handleCls+"-";h=Ext.isIE6?' style="height:'+k.el.getHeight()+'px"':"";for(;d<g;d++){if(p[d]&&n[p[d]]){m=n[p[d]];if(m==="east"||m==="west"){a=h}else{a=""}l.push('<div id="'+k.el.id+"-"+m+'-handle" class="'+c+m+" "+Ext.baseCSSPrefix+'unselectable"'+a+"></div>")}}Ext.DomHelper.append(k.el,l.join(""));for(d=0;d<g;d++){if(p[d]&&n[p[d]]){m=n[p[d]];k[m]=k.el.getById(k.el.id+"-"+m+"-handle");k[m].region=m;k[m].unselectable();if(k.transparent){k[m].setOpacity(0)}}}if(Ext.isNumber(k.width)){k.width=Ext.Number.constrain(k.width,k.minWidth,k.maxWidth)}if(Ext.isNumber(k.height)){k.height=Ext.Number.constrain(k.height,k.minHeight,k.maxHeight)}if(k.width!==null||k.height!==null){if(k.originalTarget){k.originalTarget.setWidth(k.width);k.originalTarget.setHeight(k.height)}k.resizeTo(k.width,k.height)}k.forceHandlesHeight()},disable:function(){this.resizeTracker.disable()},enable:function(){this.resizeTracker.enable()},onBeforeResize:function(b,c){var a=this.el.getBox();return this.fireEvent("beforeresize",this,a.width,a.height,c)},onResize:function(c,d){var b=this,a=b.el.getBox();b.forceHandlesHeight();return b.fireEvent("resizedrag",b,a.width,a.height,d)},onResizeEnd:function(c,d){var b=this,a=b.el.getBox();b.forceHandlesHeight();return b.fireEvent("resize",b,a.width,a.height,d)},resizeTo:function(b,a){var c=this;c.target.setSize(b,a);c.fireEvent("resize",c,b,a,null)},getEl:function(){return this.el},getTarget:function(){return this.target},destroy:function(){var d=0,c=this.handles,a=c.length,b=this.possiblePositions;for(;d<a;d++){this[b[c[d]]].remove()}},forceHandlesHeight:function(){var a=this,b;if(Ext.isIE6){b=a.east;if(b){b.setHeight(a.el.getHeight())}b=a.west;if(b){b.setHeight(a.el.getHeight())}a.el.repaint()}}});Ext.define("Ext.selection.CellModel",{extend:"Ext.selection.Model",alias:"selection.cellmodel",requires:["Ext.util.KeyNav"],isCellModel:true,enableKeyNav:true,preventWrap:false,noSelection:{row:-1,column:-1},constructor:function(){this.addEvents("deselect","select");this.callParent(arguments)},bindComponent:function(a){var c=this,b=a.ownerCt;c.primaryView=a;c.views=c.views||[];c.views.push(a);c.bindStore(a.getStore(),true);a.on({cellmousedown:c.onMouseDown,refresh:c.onViewRefresh,scope:c});if(b.optimizedColumnMove!==false){b.on("columnmove",c.onColumnMove,c)}if(c.enableKeyNav){c.initKeyNav(a)}},initKeyNav:function(a){var b=this;if(!a.rendered){a.on("render",Ext.Function.bind(b.initKeyNav,b,[a],0),b,{single:true});return}a.el.set({tabIndex:-1});b.keyNav=new Ext.util.KeyNav({target:a.el,ignoreInputFields:true,up:b.onKeyUp,down:b.onKeyDown,right:b.onKeyRight,left:b.onKeyLeft,tab:b.onKeyTab,scope:b})},getHeaderCt:function(){var b=this.getCurrentPosition(),a=b?b.view:this.primaryView;return a.headerCt},onKeyUp:function(b,a){this.keyNavigation=true;this.move("up",b);this.keyNavigation=false},onKeyDown:function(b,a){this.keyNavigation=true;this.move("down",b);this.keyNavigation=false},onKeyLeft:function(b,a){this.keyNavigation=true;this.move("left",b);this.keyNavigation=false},onKeyRight:function(b,a){this.keyNavigation=true;this.move("right",b);this.keyNavigation=false},move:function(a,d){var c=this,g=c.getCurrentPosition(),b=g.view.walkCells(g,a,d,c.preventWrap);if(b){b.view=g.view;return c.setCurrentPosition(b)}},getCurrentPosition:function(){return this.selection},setCurrentPosition:function(b){var a=this;a.lastSelection=a.selection;if(a.selection){a.onCellDeselect(a.selection)}if(b){a.nextSelection=new a.Selection(a);a.nextSelection.setPosition(b);a.onCellSelect(a.nextSelection);return a.selection=a.nextSelection}},onStoreRemove:function(b,a,c){var d=this,e=d.getCurrentPosition();d.callParent(arguments);if(e){if(e.row==c){if(c<b.getCount()-1){e.setPosition(c,e.column);d.setCurrentPosition(e)}else{delete d.selection}}else{if(c<e.row){e.setPosition(e.row-1,e.column);d.setCurrentPosition(e)}}}},onMouseDown:function(c,a,d,b,h,i,g){this.setCurrentPosition({view:c,row:i,column:d})},onCellSelect:function(a,b){if(a&&a.row!==undefined&&a.row>-1){this.doSelect(a.view.getStore().getAt(a.row),false,b)}},onCellDeselect:function(a,b){if(a&&a.row!==undefined){this.doDeselect(a.view.getStore().getAt(a.row),b)}},onSelectChange:function(b,e,d,h){var g=this,i,c,a;if(e){i=g.nextSelection;c="select"}else{i=g.lastSelection||g.noSelection;c="deselect"}a=i.view||g.primaryView;if((d||g.fireEvent("before"+c,g,b,i.row,i.column))!==false&&h()!==false){if(e){a.onCellSelect(i);a.onCellFocus(i)}else{a.onCellDeselect(i);delete g.selection}if(!d){g.fireEvent(c,g,b,i.row,i.column)}}},onKeyTab:function(d,b){var c=this,a=c.getCurrentPosition().view.editingPlugin;if(a&&c.wasEditing){c.onEditorTab(a,d)}else{c.move(d.shiftKey?"left":"right",d)}},onEditorTab:function(b,g){var c=this,d=g.shiftKey?"left":"right",a=c.move(d,g);if(a){if(b.startEditByPosition(a)){c.wasEditing=false}else{c.wasEditing=true;if(!a.columnHeader.dataIndex){c.onEditorTab(b,g)}}}},refresh:function(){var b=this.getCurrentPosition(),a;if(b&&(a=this.store.indexOf(this.selected.last()))!==-1){b.row=a}},onColumnMove:function(d,e,b,c){var a=d.up("tablepanel");if(a){this.onViewRefresh(a.view)}},onViewRefresh:function(b){var c=this,g=c.getCurrentPosition(),e=b.headerCt,a,d;if(g&&g.view===b){a=g.record;d=g.columnHeader;if(!d.isDescendantOf(e)){d=e.queryById(d.id)||e.down('[text="'+d.text+'"]')||e.down('[dataIndex="'+d.dataIndex+'"]')}if(d&&(b.store.indexOfId(a.getId())!==-1)){c.setCurrentPosition({row:a,column:d,view:b})}}},selectByPosition:function(a){this.setCurrentPosition(a)}},function(){var a=this.prototype.Selection=function(b){this.model=b};a.prototype.setPosition=function(e,c){var d=this,b;if(arguments.length===1){if(e.view){d.view=b=e.view}c=e.column;e=e.row}if(!b){d.view=b=d.model.primaryView}if(typeof e==="number"){d.row=e;d.record=b.store.getAt(e)}else{if(e.isModel){d.record=e;d.row=b.indexOf(e)}else{if(e.tagName){d.record=b.getRecord(e);d.row=b.indexOf(d.record)}}}if(typeof c==="number"){d.column=c;d.columnHeader=b.getHeaderAtIndex(c)}else{d.columnHeader=c;d.column=c.getIndex()}return d}});Ext.define("Ext.selection.RowModel",{extend:"Ext.selection.Model",alias:"selection.rowmodel",requires:["Ext.util.KeyNav"],deltaScroll:5,enableKeyNav:true,ignoreRightMouseSelection:false,constructor:function(){this.addEvents("beforedeselect","beforeselect","deselect","select");this.views=[];this.callParent(arguments)},bindComponent:function(a){var b=this;b.views=b.views||[];b.views.push(a);b.bindStore(a.getStore(),true);a.on({itemmousedown:b.onRowMouseDown,scope:b});if(b.enableKeyNav){b.initKeyNav(a)}},initKeyNav:function(a){var b=this;if(!a.rendered){a.on("render",Ext.Function.bind(b.initKeyNav,b,[a],0),b,{single:true});return}a.el.set({tabIndex:-1});b.keyNav=new Ext.util.KeyNav({target:a,ignoreInputFields:true,eventName:"itemkeydown",processEvent:function(d,c,h,e,g){g.record=c;g.recordIndex=e;return g},up:b.onKeyUp,down:b.onKeyDown,right:b.onKeyRight,left:b.onKeyLeft,pageDown:b.onKeyPageDown,pageUp:b.onKeyPageUp,home:b.onKeyHome,end:b.onKeyEnd,space:b.onKeySpace,enter:b.onKeyEnter,scope:b})},getRowsVisible:function(){var e=false,a=this.views[0],d=a.getNode(0),b,c;if(d){b=Ext.fly(d).getHeight();c=a.el.getHeight();e=Math.floor(c/b)}return e},onKeyEnd:function(c){var b=this,a=b.store.getAt(b.store.getCount()-1);if(a){if(c.shiftKey){b.selectRange(a,b.lastFocused||0);b.setLastFocused(a)}else{if(c.ctrlKey){b.setLastFocused(a)}else{b.doSelect(a)}}}},onKeyHome:function(b){var a=this,c=a.store.getAt(0);if(c){if(b.shiftKey){a.selectRange(c,a.lastFocused||0);a.setLastFocused(c)}else{if(b.ctrlKey){a.setLastFocused(c)}else{a.doSelect(c,false)}}}},onKeyPageUp:function(g){var d=this,h=d.getRowsVisible(),b,c,a;if(h){b=g.recordIndex;c=b-h;if(c<0){c=0}a=d.store.getAt(c);if(g.shiftKey){d.selectRange(a,g.record,g.ctrlKey,"up");d.setLastFocused(a)}else{if(g.ctrlKey){g.preventDefault();d.setLastFocused(a)}else{d.doSelect(a)}}}},onKeyPageDown:function(g){var c=this,h=c.getRowsVisible(),a,d,b;if(h){a=g.recordIndex;d=a+h;if(d>=c.store.getCount()){d=c.store.getCount()-1}b=c.store.getAt(d);if(g.shiftKey){c.selectRange(b,g.record,g.ctrlKey,"down");c.setLastFocused(b)}else{if(g.ctrlKey){g.preventDefault();c.setLastFocused(b)}else{c.doSelect(b)}}}},onKeySpace:function(c){var b=this,a=b.lastFocused;if(a){if(b.isSelected(a)){b.doDeselect(a,false)}else{b.doSelect(a,true)}}},onKeyEnter:Ext.emptyFn,onKeyUp:function(d){var c=this,a=c.store.indexOf(c.lastFocused),b;if(a>0){b=c.store.getAt(a-1);if(d.shiftKey&&c.lastFocused){if(c.isSelected(c.lastFocused)&&c.isSelected(b)){c.doDeselect(c.lastFocused,true);c.setLastFocused(b)}else{if(!c.isSelected(c.lastFocused)){c.doSelect(c.lastFocused,true);c.doSelect(b,true)}else{c.doSelect(b,true)}}}else{if(d.ctrlKey){c.setLastFocused(b)}else{c.doSelect(b)}}}},onKeyDown:function(d){var c=this,a=c.store.indexOf(c.lastFocused),b;if(a+1<c.store.getCount()){b=c.store.getAt(a+1);if(c.selected.getCount()===0){if(!d.ctrlKey){c.doSelect(b)}else{c.setLastFocused(b)}}else{if(d.shiftKey&&c.lastFocused){if(c.isSelected(c.lastFocused)&&c.isSelected(b)){c.doDeselect(c.lastFocused,true);c.setLastFocused(b)}else{if(!c.isSelected(c.lastFocused)){c.doSelect(c.lastFocused,true);c.doSelect(b,true)}else{c.doSelect(b,true)}}}else{if(d.ctrlKey){c.setLastFocused(b)}else{c.doSelect(b)}}}}},scrollByDeltaX:function(d){var a=this.views[0],c=a.up(),b=c.horizontalScroller;if(b){b.scrollByDeltaX(d)}},onKeyLeft:function(a){this.scrollByDeltaX(-this.deltaScroll)},onKeyRight:function(a){this.scrollByDeltaX(this.deltaScroll)},onRowMouseDown:function(b,a,d,c,g){if(!this.allowRightMouseSelection(g)){return}if(g.button===0||!this.isSelected(a)){this.selectWithEvent(a,g)}},allowRightMouseSelection:function(a){var b=this.ignoreRightMouseSelection&&a.button!==0;if(b){b=this.hasSelection()}return !b},onSelectChange:function(g,c,l,a){var j=this,m=j.views,d=m.length,k=j.store,b=k.indexOf(g),h=c?"select":"deselect",e=0;if((l||j.fireEvent("before"+h,j,g,b))!==false&&a()!==false){for(;e<d;e++){if(c){m[e].onRowSelect(b,l)}else{m[e].onRowDeselect(b,l)}}if(!l){j.fireEvent(h,j,g,b)}}},onLastFocusChanged:function(j,d,b){var a=this.views,h=a.length,c=this.store,g,e=0;if(j){g=c.indexOf(j);if(g!=-1){for(;e<h;e++){a[e].onRowFocus(g,false)}}}if(d){g=c.indexOf(d);if(g!=-1){for(e=0;e<h;e++){a[e].onRowFocus(g,true,b)}}}this.callParent()},onEditorTab:function(d,i){var g=this,c=g.views[0],b=d.getActiveRecord(),j=d.getActiveColumn(),a=c.getPosition(b,j),h=i.shiftKey?"left":"right";do{a=c.walkCells(a,h,i,g.preventWrap)}while(a&&!c.headerCt.getHeaderAtIndex(a.column).getEditor());if(a){d.startEditByPosition(a)}},getCurrentPosition:function(){var a=this.selected.items[0];if(a){return{row:this.store.indexOf(a),column:0}}},selectByPosition:function(a){var b=this.store.getAt(a.row);this.select(b)},selectNext:function(h,c){var g=this,b=g.store,e=g.getSelection(),a=e[e.length-1],d=b.indexOf(a)+1,i;if(d===b.getCount()||d===0){i=false}else{g.doSelect(d,h,c);i=true}return i},selectPrevious:function(g,b){var e=this,d=e.getSelection(),a=d[0],c=e.store.indexOf(a)-1,h;if(c<0){h=false}else{e.doSelect(c,g,b);h=true}return h}});Ext.define("Ext.selection.CheckboxModel",{alias:"selection.checkboxmodel",extend:"Ext.selection.RowModel",mode:"MULTI",injectCheckbox:0,checkOnly:false,showHeaderCheckbox:true,headerWidth:24,checkerOnCls:Ext.baseCSSPrefix+"grid-hd-checker-on",refreshOnRemove:true,beforeViewRender:function(a){var b=this;b.callParent(arguments);if(!b.hasLockedHeader()||a.headerCt.lockedCt){if(b.showHeaderCheckbox!==false){a.headerCt.on("headerclick",b.onHeaderClick,b)}b.addCheckbox(a,true);b.mon(a.ownerCt,"reconfigure",b.onReconfigure,b)}},bindComponent:function(a){var b=this;b.sortable=false;b.callParent(arguments)},hasLockedHeader:function(){var a=this.views,c=a.length,b;for(b=0;b<c;b++){if(a[b].headerCt.lockedCt){return true}}return false},addCheckbox:function(a,b){var c=this,d=c.injectCheckbox,e=a.headerCt;if(d!==false){if(d=="first"){d=0}else{if(d=="last"){d=e.getColumnCount()}}Ext.suspendLayouts();e.add(d,c.getHeaderConfig());Ext.resumeLayouts()}if(b!==true){a.refresh()}},onReconfigure:function(c,a,b){if(b){this.addCheckbox(this.views[0])}},toggleUiHeader:function(d){var a=this.views[0],c=a.headerCt,b=c.child("gridcolumn[isCheckerHd]");if(b){if(d){b.el.addCls(this.checkerOnCls)}else{b.el.removeCls(this.checkerOnCls)}}},onHeaderClick:function(c,g,b){if(g.isCheckerHd){b.stopEvent();var a=this,d=g.el.hasCls(Ext.baseCSSPrefix+"grid-hd-checker-on");a.preventFocus=true;if(d){a.deselectAll()}else{a.selectAll()}delete a.preventFocus}},getHeaderConfig:function(){var a=this,b=a.showHeaderCheckbox!==false;return{isCheckerHd:b,text:" ",width:a.headerWidth,sortable:false,draggable:false,resizable:false,hideable:false,menuDisabled:true,dataIndex:"",cls:b?Ext.baseCSSPrefix+"column-header-checkbox ":"",renderer:Ext.Function.bind(a.renderer,a),editRenderer:a.editRenderer||a.renderEmpty,locked:a.hasLockedHeader()}},renderEmpty:function(){return" "},renderer:function(h,c,b,i,e,d,a){var g=Ext.baseCSSPrefix;c.tdCls=g+"grid-cell-special "+g+"grid-cell-row-checker";return'<div class="'+g+'grid-row-checker"> </div>'},onRowMouseDown:function(b,a,h,d,i){b.el.focus();var g=this,c=i.getTarget("."+Ext.baseCSSPrefix+"grid-row-checker"),j;if(!g.allowRightMouseSelection(i)){return}if(g.checkOnly&&!c){return}if(c){j=g.getSelectionMode();if(j!=="SINGLE"){g.setSelectionMode("SIMPLE")}g.selectWithEvent(a,i);g.setSelectionMode(j)}else{g.selectWithEvent(a,i)}},onSelectChange:function(){var a=this;a.callParent(arguments);a.updateHeaderState()},onStoreLoad:function(){var a=this;a.callParent(arguments);a.updateHeaderState()},updateHeaderState:function(){var a=this.selected.getCount()===this.store.getCount();this.toggleUiHeader(a)}});Ext.define("Ext.selection.TreeModel",{extend:"Ext.selection.RowModel",alias:"selection.treemodel",pruneRemoved:false,onKeyRight:function(d,b){var c=this.getLastFocused(),a=this.view;if(c){if(c.isExpanded()){this.onKeyDown(d,b)}else{if(c.isExpandable()){a.expand(c)}}}},onKeyLeft:function(i,d){var h=this.getLastFocused(),c=this.view,b=c.getSelectionModel(),a,g;if(h){a=h.parentNode;if(h.isExpanded()){c.collapse(h)}else{if(a&&!a.isRoot()){if(i.shiftKey){b.selectRange(a,h,i.ctrlKey,"up");b.setLastFocused(a)}else{if(i.ctrlKey){b.setLastFocused(a)}else{b.select(a)}}}}}},onKeySpace:function(b,a){this.toggleCheck(b)},onKeyEnter:function(b,a){this.toggleCheck(b)},toggleCheck:function(b){b.stopEvent();var a=this.getLastSelected();if(a){this.view.onCheckChange(a)}}});Ext.define("Ext.slider.Thumb",{requires:["Ext.dd.DragTracker","Ext.util.Format"],topZIndex:10000,constructor:function(a){var b=this;Ext.apply(b,a||{},{cls:Ext.baseCSSPrefix+"slider-thumb",constrain:false});b.callParent([a])},render:function(){var a=this;a.el=a.slider.innerEl.insertFirst(a.getElConfig());a.onRender()},onRender:function(){if(this.disabled){this.disable()}this.initEvents()},getElConfig:function(){var c=this,b=c.slider,a={};a[b.vertical?"bottom":"left"]=b.calculateThumbPosition(b.normalizeValue(c.value))+"%";return{style:a,id:this.id,cls:this.cls}},move:function(c,b){var d=this.el,a=this.slider.vertical?"bottom":"left",g,e;c+="%";if(!b){d.dom.style[a]=c}else{g={};g[a]=c;if(!Ext.supports.GetPositionPercentage){e={};e[a]=d.dom.style[a]}new Ext.fx.Anim({target:d,duration:350,from:e,to:g})}},bringToFront:function(){this.el.setStyle("zIndex",this.topZIndex)},sendToBack:function(){this.el.setStyle("zIndex","")},enable:function(){var a=this;a.disabled=false;if(a.el){a.el.removeCls(a.slider.disabledCls)}},disable:function(){var a=this;a.disabled=true;if(a.el){a.el.addCls(a.slider.disabledCls)}},initEvents:function(){var b=this,a=b.el;b.tracker=new Ext.dd.DragTracker({onBeforeStart:Ext.Function.bind(b.onBeforeDragStart,b),onStart:Ext.Function.bind(b.onDragStart,b),onDrag:Ext.Function.bind(b.onDrag,b),onEnd:Ext.Function.bind(b.onDragEnd,b),tolerance:3,autoStart:300,overCls:Ext.baseCSSPrefix+"slider-thumb-over"});b.tracker.initEl(a)},onBeforeDragStart:function(a){if(this.disabled){return false}else{this.slider.promoteThumb(this);return true}},onDragStart:function(b){var a=this;a.el.addCls(Ext.baseCSSPrefix+"slider-thumb-drag");a.dragging=a.slider.dragging=true;a.dragStartValue=a.value;a.slider.fireEvent("dragstart",a.slider,b,a)},onDrag:function(h){var d=this,c=d.slider,b=d.index,g=d.getValueFromTracker(),a,i;if(g!==undefined){if(d.constrain){a=c.thumbs[b+1];i=c.thumbs[b-1];if(i!==undefined&&g<=i.value){g=i.value}if(a!==undefined&&g>=a.value){g=a.value}}c.setValue(b,g,false);c.fireEvent("drag",c,h,d)}},getValueFromTracker:function(){var a=this.slider,b=a.getTrackpoint(this.tracker.getXY());if(b!==undefined){return a.reversePixelValue(b)}},onDragEnd:function(d){var b=this,a=b.slider,c=b.value;b.el.removeCls(Ext.baseCSSPrefix+"slider-thumb-drag");b.dragging=a.dragging=false;a.fireEvent("dragend",a,d);if(b.dragStartValue!=c){a.fireEvent("changecomplete",a,c,b)}},destroy:function(){Ext.destroy(this.tracker)}});Ext.define("Ext.slider.Tip",{extend:"Ext.tip.Tip",minWidth:10,alias:"widget.slidertip",offsets:null,align:null,position:"",defaultVerticalPosition:"left",defaultHorizontalPosition:"top",isSliderTip:true,init:function(c){var b=this,d,a;if(!b.position){b.position=c.vertical?b.defaultVerticalPosition:b.defaultHorizontalPosition}switch(b.position){case"top":a=[0,-10];d="b-t?";break;case"bottom":a=[0,10];d="t-b?";break;case"left":a=[-10,0];d="r-l?";break;case"right":a=[10,0];d="l-r?"}if(!b.align){b.align=d}if(!b.offsets){b.offsets=a}c.on({scope:b,dragstart:b.onSlide,drag:b.onSlide,dragend:b.hide,destroy:b.destroy})},onSlide:function(c,d,a){var b=this;b.show();b.update(b.getText(a));b.el.alignTo(a.el,b.align,b.offsets)},getText:function(a){return String(a.value)}});Ext.define("Ext.slider.Multi",{extend:"Ext.form.field.Base",alias:"widget.multislider",alternateClassName:"Ext.slider.MultiSlider",requires:["Ext.slider.Thumb","Ext.slider.Tip","Ext.Number","Ext.util.Format","Ext.Template","Ext.layout.component.field.Slider"],childEls:["endEl","innerEl"],fieldSubTpl:['<div id="{id}" class="'+Ext.baseCSSPrefix+'slider {fieldCls} {vertical}" aria-valuemin="{minValue}" aria-valuemax="{maxValue}" aria-valuenow="{value}" aria-valuetext="{value}">','<div id="{cmpId}-endEl" class="'+Ext.baseCSSPrefix+'slider-end" role="presentation">','<div id="{cmpId}-innerEl" class="'+Ext.baseCSSPrefix+'slider-inner" role="presentation">',"{%this.renderThumbs(out, values)%}","</div>","</div>","</div>",{renderThumbs:function(g,e){var j=e.$comp,h=0,c=j.thumbs,b=c.length,d,a;for(;h<b;h++){d=c[h];a=d.getElConfig();a.id=j.id+"-thumb-"+h;Ext.DomHelper.generateMarkup(a,g)}},disableFormats:true}],vertical:false,minValue:0,maxValue:100,decimalPrecision:0,keyIncrement:1,increment:0,clickRange:[5,15],clickToChange:true,animate:true,dragging:false,constrainThumbs:true,componentLayout:"sliderfield",useTips:true,tipText:null,ariaRole:"slider",initValue:function(){var e=this,c=Ext.value,b=c(e.values,[c(e.value,c(e.minValue,0))]),d=0,a=b.length;e.originalValue=b;for(;d<a;d++){e.addThumb(b[d])}},initComponent:function(){var e=this,c,d,g,b,a;e.thumbs=[];e.keyIncrement=Math.max(e.increment,e.keyIncrement);e.addEvents("beforechange","change","changecomplete","dragstart","drag","dragend");if(e.increment){e.maxValue=Ext.Number.snapInRange(e.maxValue,e.increment,e.minValue);e.value=e.normalizeValue(e.value)}e.callParent();if(e.useTips){if(Ext.isObject(e.useTips)){c=Ext.apply({},e.useTips)}else{c=e.tipText?{getText:e.tipText}:{}}a=e.plugins=e.plugins||[];b=a.length;for(g=0;g<b;g++){if(a[g].isSliderTip){d=true;break}}if(!d){e.plugins.push(new Ext.slider.Tip(c))}}},addThumb:function(c){var b=this,a=new Ext.slider.Thumb({ownerCt:b,ownerLayout:b.getComponentLayout(),value:c,slider:b,index:b.thumbs.length,constrain:b.constrainThumbs,disabled:!!b.readOnly});b.thumbs.push(a);if(b.rendered){a.render()}return a},promoteThumb:function(c){var a=this.thumbs,e=a.length,g,b,d;for(d=0;d<e;d++){b=a[d];if(b==c){b.bringToFront()}else{b.sendToBack()}}},getSubTplData:function(){var a=this;return Ext.apply(a.callParent(),{$comp:a,vertical:a.vertical?Ext.baseCSSPrefix+"slider-vert":Ext.baseCSSPrefix+"slider-horz",minValue:a.minValue,maxValue:a.maxValue,value:a.value})},onRender:function(){var e=this,b=e.thumbs,a=b.length,d=0,c;e.callParent(arguments);for(d=0;d<a;d++){c=b[d];c.el=e.el.getById(e.id+"-thumb-"+d);c.onRender()}},initEvents:function(){var a=this;a.mon(a.el,{scope:a,mousedown:a.onMouseDown,keydown:a.onKeyDown})},getTrackpoint:function(g){var e=this,b,d,c=e.innerEl,a;if(e.vertical){d="top";a=c.getHeight()}else{d="left";a=c.getWidth()}b=Ext.Number.constrain(c.translatePoints(g)[d],0,a);return e.vertical?a-b:b},onMouseDown:function(j){var d=this,h=false,c=0,b=d.thumbs,a=b.length,g;if(d.disabled){return}for(;c<a;c++){h=h||j.target==b[c].el.dom}if(d.clickToChange&&!h){g=d.getTrackpoint(j.getXY());if(g!==undefined){d.onClickChange(g)}}d.focus()},onClickChange:function(d){var c=this,a,b;a=c.getNearest(d);if(!a.disabled){b=a.index;c.setValue(b,Ext.util.Format.round(c.reversePixelValue(d),c.decimalPrecision),undefined,true)}},getNearest:function(j){var k=this,g=k.reversePixelValue(j),l=(k.maxValue-k.minValue)+5,b=null,e=k.thumbs,c=0,d=e.length,a,m,h;for(;c<d;c++){a=k.thumbs[c];m=a.value;h=Math.abs(m-g);if(Math.abs(h<=l)){b=a;l=h}}return b},onKeyDown:function(c){var b=this,a,d;if(b.disabled||b.thumbs.length!==1){c.preventDefault();return}a=c.getKey();switch(a){case c.UP:case c.RIGHT:c.stopEvent();d=c.ctrlKey?b.maxValue:b.getValue(0)+b.keyIncrement;b.setValue(0,d,undefined,true);break;case c.DOWN:case c.LEFT:c.stopEvent();d=c.ctrlKey?b.minValue:b.getValue(0)-b.keyIncrement;b.setValue(0,d,undefined,true);break;default:c.preventDefault()}},normalizeValue:function(b){var c=this,d=Ext.Number,a=d[c.zeroBasedSnapping?"snap":"snapInRange"];b=a.call(d,b,c.increment,c.minValue,c.maxValue);b=Ext.util.Format.round(b,c.decimalPrecision);b=Ext.Number.constrain(b,c.minValue,c.maxValue);return b},setMinValue:function(g){var e=this,d=0,b=e.thumbs,a=b.length,c;e.minValue=g;if(e.rendered){e.inputEl.dom.setAttribute("aria-valuemin",g)}for(;d<a;++d){c=b[d];c.value=c.value<g?g:c.value}e.syncThumbs()},setMaxValue:function(g){var e=this,d=0,b=e.thumbs,a=b.length,c;e.maxValue=g;if(e.rendered){e.inputEl.dom.setAttribute("aria-valuemax",g)}for(;d<a;++d){c=b[d];c.value=c.value>g?g:c.value}e.syncThumbs()},setValue:function(c,g,b,e){var d=this,a=d.thumbs[c];g=d.normalizeValue(g);if(g!==a.value&&d.fireEvent("beforechange",d,g,a.value,a)!==false){a.value=g;if(d.rendered){d.inputEl.set({"aria-valuenow":g,"aria-valuetext":g});a.move(d.calculateThumbPosition(g),Ext.isDefined(b)?b!==false:d.animate);d.fireEvent("change",d,g,a);d.checkDirty();if(e){d.fireEvent("changecomplete",d,g,a)}}}},calculateThumbPosition:function(a){return(a-this.minValue)/(this.maxValue-this.minValue)*100},getRatio:function(){var b=this,a=this.vertical?this.innerEl.getHeight():this.innerEl.getWidth(),c=this.maxValue-this.minValue;return c===0?a:(a/c)},reversePixelValue:function(a){return this.minValue+(a/this.getRatio())},reversePercentageValue:function(a){return this.minValue+(this.maxValue-this.minValue)*(a/100)},onDisable:function(){var g=this,d=0,b=g.thumbs,a=b.length,c,e,h;g.callParent();for(;d<a;d++){c=b[d];e=c.el;c.disable();if(Ext.isIE){h=e.getXY();e.hide();g.innerEl.addCls(g.disabledCls).dom.disabled=true;if(!g.thumbHolder){g.thumbHolder=g.endEl.createChild({cls:Ext.baseCSSPrefix+"slider-thumb "+g.disabledCls})}g.thumbHolder.show().setXY(h)}}},onEnable:function(){var g=this,d=0,b=g.thumbs,a=b.length,c,e;this.callParent();for(;d<a;d++){c=b[d];e=c.el;c.enable();if(Ext.isIE){g.innerEl.removeCls(g.disabledCls).dom.disabled=false;if(g.thumbHolder){g.thumbHolder.hide()}e.show();g.syncThumbs()}}},syncThumbs:function(){if(this.rendered){var a=this.thumbs,c=a.length,b=0;for(;b<c;b++){a[b].move(this.calculateThumbPosition(a[b].value))}}},getValue:function(a){return Ext.isNumber(a)?this.thumbs[a].value:this.getValues()},getValues:function(){var c=[],d=0,b=this.thumbs,a=b.length;for(;d<a;d++){c.push(b[d].value)}return c},getSubmitValue:function(){var a=this;return(a.disabled||!a.submitValue)?null:a.getValue()},reset:function(){var e=this,b=[].concat(e.originalValue),c=0,d=b.length,g;for(;c<d;c++){g=b[c];e.setValue(c,g)}e.clearInvalid();delete e.wasValid},setReadOnly:function(e){var d=this,b=d.thumbs,a=b.length,c=0;d.callParent(arguments);e=d.readOnly;for(;c<a;++c){if(e){b[c].disable()}else{b[c].enable()}}},beforeDestroy:function(){var e=this,b=e.thumbs,d=0,a=b.length,c;Ext.destroy(e.innerEl,e.endEl,e.focusEl);for(;d<a;d++){c=b[d];Ext.destroy(c)}e.callParent()}});Ext.define("Ext.slider.Single",{extend:"Ext.slider.Multi",alias:["widget.slider","widget.sliderfield"],alternateClassName:["Ext.Slider","Ext.form.SliderField","Ext.slider.SingleSlider","Ext.slider.Slider"],getValue:function(){return this.callParent([0])},setValue:function(d,b){var c=arguments,a=c.length;if(a==1||(a<=3&&typeof c[1]!="number")){c=Ext.toArray(c);c.unshift(0)}return this.callParent(c)},getNearest:function(){return this.thumbs[0]}});Ext.define("Ext.state.CookieProvider",{extend:"Ext.state.Provider",constructor:function(a){var b=this;b.path="/";b.expires=new Date(new Date().getTime()+(1000*60*60*24*7));b.domain=null;b.secure=false;b.callParent(arguments);b.state=b.readCookies()},set:function(a,c){var b=this;if(typeof c=="undefined"||c===null){b.clear(a);return}b.setCookie(a,c);b.callParent(arguments)},clear:function(a){this.clearCookie(a);this.callParent(arguments)},readCookies:function(){var e={},j=document.cookie+";",d=/\s?(.*?)=(.*?);/g,i=this.prefix,a=i.length,h,b,g;while((h=d.exec(j))!=null){b=h[1];g=h[2];if(b&&b.substring(0,a)==i){e[b.substr(a)]=this.decodeValue(g)}}return e},setCookie:function(a,c){var b=this;document.cookie=b.prefix+a+"="+b.encodeValue(c)+((b.expires==null)?"":("; expires="+b.expires.toGMTString()))+((b.path==null)?"":("; path="+b.path))+((b.domain==null)?"":("; domain="+b.domain))+((b.secure==true)?"; secure":"")},clearCookie:function(a){var b=this;document.cookie=b.prefix+a+"=null; expires=Thu, 01-Jan-70 00:00:01 GMT"+((b.path==null)?"":("; path="+b.path))+((b.domain==null)?"":("; domain="+b.domain))+((b.secure==true)?"; secure":"")}});Ext.define("Ext.state.LocalStorageProvider",{extend:"Ext.state.Provider",alias:"state.localstorage",constructor:function(){var a=this;a.callParent(arguments);a.store=a.getStorageObject();a.state=a.readLocalStorage()},readLocalStorage:function(){var c=this.store,e=0,a=c.length,h=this.prefix,b=h.length,g={},d;for(;e<a;++e){d=c.key(e);if(d.substring(0,b)==h){g[d.substr(b)]=this.decodeValue(c.getItem(d))}}return g},set:function(a,c){var b=this;b.clear(a);if(typeof c=="undefined"||c===null){return}b.store.setItem(b.prefix+a,b.encodeValue(c));b.callParent(arguments)},clear:function(a){this.store.removeItem(this.prefix+a);this.callParent(arguments)},getStorageObject:function(){try{var a="localStorage" in window&&window.localStorage!==null;if(a){return window.localStorage}}catch(b){return false}}});Ext.define("Ext.tab.Tab",{extend:"Ext.button.Button",alias:"widget.tab",requires:["Ext.layout.component.Tab","Ext.util.KeyNav"],componentLayout:"tab",isTab:true,baseCls:Ext.baseCSSPrefix+"tab",activeCls:"active",closableCls:"closable",closable:true,closeText:"Close Tab",active:false,childEls:["closeEl"],scale:false,position:"top",initComponent:function(){var a=this;a.addEvents("activate","deactivate","beforeclose","close");a.callParent(arguments);if(a.card){a.setCard(a.card)}},getTemplateArgs:function(){var b=this,a=b.callParent();a.closable=b.closable;a.closeText=b.closeText;return a},beforeRender:function(){var b=this,a=b.up("tabbar"),c=b.up("tabpanel");b.callParent();b.addClsWithUI(b.position);b.syncClosableUI();if(!b.minWidth){b.minWidth=(a)?a.minTabWidth:b.minWidth;if(!b.minWidth&&c){b.minWidth=c.minTabWidth}if(b.minWidth&&b.iconCls){b.minWidth+=25}}if(!b.maxWidth){b.maxWidth=(a)?a.maxTabWidth:b.maxWidth;if(!b.maxWidth&&c){b.maxWidth=c.maxTabWidth}}},onRender:function(){var a=this;a.callParent(arguments);a.keyNav=new Ext.util.KeyNav(a.el,{enter:a.onEnterKey,del:a.onDeleteKey,scope:a})},enable:function(a){var b=this;b.callParent(arguments);b.removeClsWithUI(b.position+"-disabled");return b},disable:function(a){var b=this;b.callParent(arguments);b.addClsWithUI(b.position+"-disabled");return b},onDestroy:function(){var a=this;Ext.destroy(a.keyNav);delete a.keyNav;a.callParent(arguments)},setClosable:function(a){var b=this;a=(!arguments.length||!!a);if(b.closable!=a){b.closable=a;if(b.card){b.card.closable=a}b.syncClosableUI();if(b.rendered){b.syncClosableElements();b.updateLayout()}}},syncClosableElements:function(){var a=this,b=a.closeEl;if(a.closable){if(!b){a.closeEl=a.btnWrap.insertSibling({tag:"a",cls:a.baseCls+"-close-btn",href:"#",title:a.closeText},"after")}}else{if(b){b.remove();delete a.closeEl}}},syncClosableUI:function(){var b=this,a=[b.closableCls,b.closableCls+"-"+b.position];if(b.closable){b.addClsWithUI(a)}else{b.removeClsWithUI(a)}},setCard:function(a){var b=this;b.card=a;b.setText(b.title||a.title);b.setIconCls(b.iconCls||a.iconCls);b.setIcon(b.icon||a.icon)},onCloseClick:function(){var a=this;if(a.fireEvent("beforeclose",a)!==false){if(a.tabBar){if(a.tabBar.closeTab(a)===false){return}}else{a.fireClose()}}},fireClose:function(){this.fireEvent("close",this)},onEnterKey:function(b){var a=this;if(a.tabBar){a.tabBar.onClick(b,a.el)}},onDeleteKey:function(a){if(this.closable){this.onCloseClick()}},activate:function(b){var a=this;a.active=true;a.addClsWithUI([a.activeCls,a.position+"-"+a.activeCls]);if(b!==true){a.fireEvent("activate",a)}},deactivate:function(b){var a=this;a.active=false;a.removeClsWithUI([a.activeCls,a.position+"-"+a.activeCls]);if(b!==true){a.fireEvent("deactivate",a)}}});Ext.define("Ext.tab.Bar",{extend:"Ext.panel.Header",alias:"widget.tabbar",baseCls:Ext.baseCSSPrefix+"tab-bar",requires:["Ext.tab.Tab"],isTabBar:true,defaultType:"tab",plain:false,childEls:["body","strip"],renderTpl:['<div id="{id}-body" class="{baseCls}-body {bodyCls}<tpl if="ui"> {baseCls}-body-{ui}<tpl for="uiCls"> {parent.baseCls}-body-{parent.ui}-{.}</tpl></tpl>"<tpl if="bodyStyle"> style="{bodyStyle}"</tpl>>',"{%this.renderContainer(out,values)%}","</div>",'<div id="{id}-strip" class="{baseCls}-strip<tpl if="ui"> {baseCls}-strip-{ui}<tpl for="uiCls"> {parent.baseCls}-strip-{parent.ui}-{.}</tpl></tpl>"></div>'],initComponent:function(){var a=this;if(a.plain){a.setUI(a.ui+"-plain")}a.addClsWithUI(a.dock);a.addEvents("change");a.callParent(arguments);a.layout.align=(a.orientation=="vertical")?"left":"top";a.layout.overflowHandler=new Ext.layout.container.boxOverflow.Scroller(a.layout);a.remove(a.titleCmp);delete a.titleCmp;Ext.apply(a.renderData,{bodyCls:a.bodyCls})},getLayout:function(){var a=this;a.layout.type=(a.dock==="top"||a.dock==="bottom")?"hbox":"vbox";return a.callParent(arguments)},onAdd:function(a){a.position=this.dock;this.callParent(arguments)},onRemove:function(a){var b=this;if(a===b.previousTab){b.previousTab=null}b.callParent(arguments)},afterComponentLayout:function(a){this.callParent(arguments);this.strip.setWidth(a)},onClick:function(g,d){var c=this,i=g.getTarget("."+Ext.tab.Tab.prototype.baseCls),b=i&&Ext.getCmp(i.id),h=c.tabPanel,a=b&&b.closeEl&&(d===b.closeEl.dom);if(a){g.preventDefault()}if(b&&b.isDisabled&&!b.isDisabled()){if(b.closable&&a){b.onCloseClick()}else{if(h){h.setActiveTab(b.card)}else{c.setActiveTab(b)}b.focus()}}},closeTab:function(c){var d=this,b=c.card,e=d.tabPanel,a;if(b&&b.fireEvent("beforeclose",b)===false){return false}a=d.findNextActivatable(c);Ext.suspendLayouts();if(e&&b){delete c.ownerCt;b.fireEvent("close",b);e.remove(b);if(!e.getComponent(b)){c.fireClose();d.remove(c)}else{c.ownerCt=d;Ext.resumeLayouts(true);return false}}if(a){if(e){e.setActiveTab(a.card)}else{d.setActiveTab(a)}a.focus()}Ext.resumeLayouts(true)},findNextActivatable:function(a){var b=this;if(a.active&&b.items.getCount()>1){return(b.previousTab&&b.previousTab!==a&&!b.previousTab.disabled)?b.previousTab:(a.next("tab[disabled=false]")||a.prev("tab[disabled=false]"))}},setActiveTab:function(a){var b=this;if(!a.disabled&&a!==b.activeTab){if(b.activeTab){if(b.activeTab.isDestroyed){b.previousTab=null}else{b.previousTab=b.activeTab;b.activeTab.deactivate()}}a.activate();b.activeTab=a;b.fireEvent("change",b,a,a.card);b.on({afterlayout:b.afterTabActivate,scope:b,single:true});b.updateLayout()}},afterTabActivate:function(){this.layout.overflowHandler.scrollToItem(this.activeTab)}});Ext.define("Ext.tab.Panel",{extend:"Ext.panel.Panel",alias:"widget.tabpanel",alternateClassName:["Ext.TabPanel"],requires:["Ext.layout.container.Card","Ext.tab.Bar"],tabPosition:"top",removePanelHeader:true,plain:false,itemCls:Ext.baseCSSPrefix+"tabpanel-child",minTabWidth:undefined,maxTabWidth:undefined,deferredRender:true,initComponent:function(){var c=this,b=[].concat(c.dockedItems||[]),a=c.activeTab||(c.activeTab=0);c.layout=new Ext.layout.container.Card(Ext.apply({owner:c,deferredRender:c.deferredRender,itemCls:c.itemCls,activeItem:c.activeTab},c.layout));c.tabBar=new Ext.tab.Bar(Ext.apply({dock:c.tabPosition,plain:c.plain,border:c.border,cardLayout:c.layout,tabPanel:c},c.tabBar));b.push(c.tabBar);c.dockedItems=b;c.addEvents("beforetabchange","tabchange");c.callParent(arguments);c.activeTab=c.getComponent(a);if(c.activeTab){c.activeTab.tab.activate(true);c.tabBar.activeTab=c.activeTab.tab}},setActiveTab:function(a){var c=this,b;a=c.getComponent(a);if(a){b=c.getActiveTab();if(b!==a&&c.fireEvent("beforetabchange",c,a,b)===false){return false}if(!a.isComponent){Ext.suspendLayouts();a=c.add(a);Ext.resumeLayouts()}c.activeTab=a;Ext.suspendLayouts();c.layout.setActiveItem(a);a=c.activeTab=c.layout.getActiveItem();if(a&&a!==b){c.tabBar.setActiveTab(a.tab);Ext.resumeLayouts(true);if(b!==a){c.fireEvent("tabchange",c,a,b)}}else{Ext.resumeLayouts(true)}return a}},getActiveTab:function(){var b=this,a=b.getComponent(b.activeTab);if(a&&b.items.indexOf(a)!=-1){b.activeTab=a}else{b.activeTab=null}return b.activeTab},getTabBar:function(){return this.tabBar},onAdd:function(e,c){var d=this,b=e.tabConfig||{},a={xtype:"tab",card:e,disabled:e.disabled,closable:e.closable,hidden:e.hidden&&!e.hiddenByLayout,tooltip:e.tooltip,tabBar:d.tabBar,closeText:e.closeText};b=Ext.applyIf(b,a);e.tab=d.tabBar.insert(c,b);e.on({scope:d,enable:d.onItemEnable,disable:d.onItemDisable,beforeshow:d.onItemBeforeShow,iconchange:d.onItemIconChange,iconclschange:d.onItemIconClsChange,titlechange:d.onItemTitleChange});if(e.isPanel){if(d.removePanelHeader){if(e.rendered){if(e.header){e.header.hide()}}else{e.header=false}}if(e.isPanel&&d.border){e.setBorder(false)}}},onItemEnable:function(a){a.tab.enable()},onItemDisable:function(a){a.tab.disable()},onItemBeforeShow:function(a){if(a!==this.activeTab){this.setActiveTab(a);return false}},onItemIconChange:function(b,a){b.tab.setIcon(a)},onItemIconClsChange:function(b,a){b.tab.setIconCls(a)},onItemTitleChange:function(a,b){a.tab.setText(b)},doRemove:function(d,b){var c=this,a;if(c.destroying||c.items.getCount()==1){c.activeTab=null}else{if((a=c.tabBar.items.indexOf(c.tabBar.findNextActivatable(d.tab)))!==-1){c.setActiveTab(a)}}this.callParent(arguments);delete d.tab.card;delete d.tab},onRemove:function(b,c){var a=this;b.un({scope:a,enable:a.onItemEnable,disable:a.onItemDisable,beforeshow:a.onItemBeforeShow});if(!a.destroying&&b.tab.ownerCt===a.tabBar){a.tabBar.remove(b.tab)}}});Ext.define("Ext.toolbar.Spacer",{extend:"Ext.Component",alias:"widget.tbspacer",alternateClassName:"Ext.Toolbar.Spacer",baseCls:Ext.baseCSSPrefix+"toolbar-spacer",focusable:false});Ext.define("Ext.tree.Column",{extend:"Ext.grid.column.Column",alias:"widget.treecolumn",tdCls:Ext.baseCSSPrefix+"grid-cell-treecolumn",treePrefix:Ext.baseCSSPrefix+"tree-",elbowPrefix:Ext.baseCSSPrefix+"tree-elbow-",expanderCls:Ext.baseCSSPrefix+"tree-expander",imgText:'<img src="{1}" class="{0}" />',checkboxText:'<input type="button" role="checkbox" class="{0}" {1} />',initComponent:function(){var a=this;a.origRenderer=a.renderer||a.defaultRenderer;a.origScope=a.scope||window;a.renderer=a.treeRenderer;a.scope=a;a.callParent()},treeRenderer:function(l,n,c,b,k,e,j){var s=this,r=[],p=Ext.String.format,u=c.getDepth(),q=s.treePrefix,d=s.elbowPrefix,m=s.expanderCls,i=s.imgText,v=s.checkboxText,h=s.origRenderer.apply(s.origScope,arguments),g=Ext.BLANK_IMAGE_URL,o=c.get("href"),t=c.get("hrefTarget"),a=c.get("cls");while(c){if(!c.isRoot()||(c.isRoot()&&j.rootVisible)){if(c.getDepth()===u){r.unshift(p(i,q+"icon "+q+"icon"+(c.get("icon")?"-inline ":(c.isLeaf()?"-leaf ":"-parent "))+(c.get("iconCls")||""),c.get("icon")||g));if(c.get("checked")!==null){r.unshift(p(v,(q+"checkbox")+(c.get("checked")?" "+q+"checkbox-checked":""),c.get("checked")?'aria-checked="true"':""));if(c.get("checked")){n.tdCls+=(" "+q+"checked")}}if(c.isLast()){if(c.isExpandable()){r.unshift(p(i,(d+"end-plus "+m),g))}else{r.unshift(p(i,(d+"end"),g))}}else{if(c.isExpandable()){r.unshift(p(i,(d+"plus "+m),g))}else{r.unshift(p(i,(q+"elbow"),g))}}}else{if(c.isLast()||c.getDepth()===0){r.unshift(p(i,(d+"empty"),g))}else{if(c.getDepth()!==0){r.unshift(p(i,(d+"line"),g))}}}}c=c.parentNode}if(o){r.push('<a href="',o,'" target="',t,'">',h,"</a>")}else{r.push(h)}if(a){n.tdCls+=" "+a}return r.join("")},defaultRenderer:function(a){return a}});Ext.define("Ext.tree.View",{extend:"Ext.view.Table",alias:"widget.treeview",requires:["Ext.data.NodeStore"],loadingCls:Ext.baseCSSPrefix+"grid-tree-loading",expandedCls:Ext.baseCSSPrefix+"grid-tree-node-expanded",leafCls:Ext.baseCSSPrefix+"grid-tree-node-leaf",expanderSelector:"."+Ext.baseCSSPrefix+"tree-expander",checkboxSelector:"."+Ext.baseCSSPrefix+"tree-checkbox",expanderIconOverCls:Ext.baseCSSPrefix+"tree-expander-over",nodeAnimWrapCls:Ext.baseCSSPrefix+"tree-animator-wrap",blockRefresh:true,loadMask:false,rootVisible:true,deferInitialRefresh:false,expandDuration:250,collapseDuration:250,toggleOnDblClick:true,stripeRows:false,uiFields:["expanded","loaded","checked","expandable","leaf","icon","iconCls","loading","qtip","qtitle"],initComponent:function(){var a=this,b=a.panel.getStore();if(a.initialConfig.animate===undefined){a.animate=Ext.enableFx}a.store=new Ext.data.NodeStore({treeStore:b,recursive:true,rootVisible:a.rootVisible,listeners:{beforeexpand:a.onBeforeExpand,expand:a.onExpand,beforecollapse:a.onBeforeCollapse,collapse:a.onCollapse,write:a.onStoreWrite,datachanged:a.onStoreDataChanged,scope:a}});if(a.node){a.setRootNode(a.node)}a.animQueue={};a.animWraps={};a.addEvents("afteritemexpand","afteritemcollapse");a.callParent(arguments);a.on({element:"el",scope:a,delegate:a.expanderSelector,mouseover:a.onExpanderMouseOver,mouseout:a.onExpanderMouseOut});a.on({element:"el",scope:a,delegate:a.checkboxSelector,click:a.onCheckboxChange})},getMaskStore:function(){return this.panel.getStore()},afterComponentLayout:function(){this.callParent(arguments);var a=this.stretcher;if(a){a.setWidth((this.getWidth()-Ext.getScrollbarSize().width))}},processUIEvent:function(a){if(a.getTarget("."+this.nodeAnimWrapCls,this.el)){return false}return this.callParent(arguments)},onClear:function(){this.store.removeAll()},setRootNode:function(b){var a=this;a.store.setNode(b);a.node=b},onCheckboxChange:function(d,a){var c=this,b=d.getTarget(c.getItemSelector(),c.getTargetEl());if(b){c.onCheckChange(c.getRecord(b))}},onCheckChange:function(a){var b=a.get("checked");if(Ext.isBoolean(b)){b=!b;a.set("checked",b);this.fireEvent("checkchange",a,b)}},getChecked:function(){var a=[];this.node.cascadeBy(function(b){if(b.get("checked")){a.push(b)}});return a},isItemChecked:function(a){return a.get("checked")},createAnimWrap:function(j,k){var g="",e=this.panel.headerCt,b=e.getGridColumns(),h=0,l=b.length,m,d=this.getNode(j),a,c;for(;h<l;h++){m=b[h];g+='<th style="width: '+(m.hidden?0:m.getDesiredWidth())+'px; height: 0px;"></th>'}c=Ext.get(d);a=c.insertSibling({tag:"tr",html:['<td colspan="'+e.getColumnCount()+'">','<div class="'+this.nodeAnimWrapCls+'">','<table class="'+Ext.baseCSSPrefix+'grid-table" style="width: '+e.getFullWidth()+'px;"><tbody>',g,"</tbody></table>","</div>","</td>"].join("")},"after");return{record:j,node:d,el:a,expanding:false,collapsing:false,animating:false,animateEl:a.down("div"),targetEl:a.down("tbody")}},getAnimWrap:function(d,a){if(!this.animate){return null}var b=this.animWraps,c=b[d.internalId];if(a!==false){while(!c&&d){d=d.parentNode;if(d){c=b[d.internalId]}}}return c},doAdd:function(b,d,i){var j=this,g=d[0],l=g.parentNode,k=j.all.elements,n=0,e=j.getAnimWrap(l),m,c,h;if(!e||!e.expanding){return j.callParent(arguments)}l=e.record;m=e.targetEl;c=m.dom.childNodes;h=c.length-1;n=i-j.indexOf(l)-1;if(!h||n>=h){m.appendChild(b)}else{Ext.fly(c[n+1]).insertSibling(b,"before",true)}Ext.Array.insert(k,i,b);if(e.isAnimating){j.onExpand(l)}},beginBulkUpdate:function(){this.bulkUpdate=true},endBulkUpdate:function(){this.bulkUpdate=false},onRemove:function(e,a,b){var d=this,c=d.bulkUpdate;if(d.viewReady){d.doRemove(a,b);if(!c){d.updateIndexes(b)}if(d.store.getCount()===0){d.refresh()}if(!c){d.fireEvent("itemremove",a,b)}}},doRemove:function(a,c){var h=this,d=h.all,b=h.getAnimWrap(a),g=d.item(c),e=g?g.dom:null;if(!e||!b||!b.collapsing){return h.callParent(arguments)}b.targetEl.appendChild(e);d.removeElement(c)},onBeforeExpand:function(d,b,c){var e=this,a;if(!e.rendered||!e.animate){return}if(e.getNode(d)){a=e.getAnimWrap(d,false);if(!a){a=e.animWraps[d.internalId]=e.createAnimWrap(d);a.animateEl.setHeight(0)}else{if(a.collapsing){a.targetEl.select(e.itemSelector).remove()}}a.expanding=true;a.collapsing=false}},onExpand:function(i){var h=this,e=h.animQueue,a=i.getId(),c=h.getNode(i),g=c?h.indexOf(c):-1,d,b,j;if(h.singleExpand){h.ensureSingleExpand(i)}if(g===-1){return}d=h.getAnimWrap(i,false);if(!d){h.isExpandingOrCollapsing=false;h.fireEvent("afteritemexpand",i,g,c);return}b=d.animateEl;j=d.targetEl;b.stopAnimation();e[a]=true;b.slideIn("t",{duration:h.expandDuration,listeners:{scope:h,lastframe:function(){d.el.insertSibling(j.query(h.itemSelector),"before");d.el.remove();h.refreshSize();delete h.animWraps[d.record.internalId];delete e[a]}},callback:function(){h.isExpandingOrCollapsing=false;h.fireEvent("afteritemexpand",i,g,c)}});d.isAnimating=true},onBeforeCollapse:function(d,b,c){var e=this,a;if(!e.rendered||!e.animate){return}if(e.getNode(d)){a=e.getAnimWrap(d);if(!a){a=e.animWraps[d.internalId]=e.createAnimWrap(d,c)}else{if(a.expanding){a.targetEl.select(this.itemSelector).remove()}}a.expanding=false;a.collapsing=true}},onCollapse:function(i){var h=this,e=h.animQueue,a=i.getId(),c=h.getNode(i),g=c?h.indexOf(c):-1,d=h.getAnimWrap(i),b,j;if(g===-1){return}if(!d){h.isExpandingOrCollapsing=false;h.fireEvent("afteritemcollapse",i,g,c);return}b=d.animateEl;j=d.targetEl;e[a]=true;b.stopAnimation();b.slideOut("t",{duration:h.collapseDuration,listeners:{scope:h,lastframe:function(){d.el.remove();h.refreshSize();delete h.animWraps[d.record.internalId];delete e[a]}},callback:function(){h.isExpandingOrCollapsing=false;h.fireEvent("afteritemcollapse",i,g,c)}});d.isAnimating=true},isAnimating:function(a){return !!this.animQueue[a.getId()]},collectData:function(c){var g=this.callParent(arguments),e=g.rows,a=e.length,d=0,h,b;for(;d<a;d++){h=e[d];b=c[d];if(b.get("qtip")){h.rowAttr='data-qtip="'+b.get("qtip")+'"';if(b.get("qtitle")){h.rowAttr+=' data-qtitle="'+b.get("qtitle")+'"'}}if(b.isExpanded()){h.rowCls=(h.rowCls||"")+" "+this.expandedCls}if(b.isLeaf()){h.rowCls=(h.rowCls||"")+" "+this.leafCls}if(b.isLoading()){h.rowCls=(h.rowCls||"")+" "+this.loadingCls}}return g},expand:function(b,a,d,c){return b.expand(a,d,c)},collapse:function(b,a,d,c){return b.collapse(a,d,c)},toggle:function(c,b,g,d){var e=this,a=!!this.animate;if(!a||!this.isExpandingOrCollapsing){if(!c.isLeaf()){this.isExpandingOrCollapsing=a}if(c.isExpanded()){e.collapse(c,b,g,d)}else{e.expand(c,b,g,d)}}},onItemDblClick:function(a,e,c){var d=this,b=d.editingPlugin;d.callParent(arguments);if(d.toggleOnDblClick&&a.isExpandable()&&!(b&&b.clicksToEdit===2)){d.toggle(a)}},onBeforeItemMouseDown:function(a,c,b,d){if(d.getTarget(this.expanderSelector,c)){return false}return this.callParent(arguments)},onItemClick:function(a,c,b,d){if(d.getTarget(this.expanderSelector,c)&&a.isExpandable()){this.toggle(a,d.ctrlKey);return false}return this.callParent(arguments)},onExpanderMouseOver:function(b,a){b.getTarget(this.cellSelector,10,true).addCls(this.expanderIconOverCls)},onExpanderMouseOut:function(b,a){b.getTarget(this.cellSelector,10,true).removeCls(this.expanderIconOverCls)},getTreeStore:function(){return this.panel.store},ensureSingleExpand:function(b){var a=b.parentNode;if(a){a.eachChild(function(c){if(c!==b&&c.isExpanded()){c.collapse()}})}},shouldUpdateCell:function(d,c){if(c){var b=0,a=c.length;for(;b<a;++b){if(Ext.Array.contains(this.uiFields,c[b])){return true}}}return this.callParent(arguments)},onStoreWrite:function(b,a){var c=this.panel.store;c.fireEvent("write",c,a)},onStoreDataChanged:function(b,a){var c=this.panel.store;c.fireEvent("datachanged",c)}});Ext.define("Ext.tree.Panel",{extend:"Ext.panel.Table",alias:"widget.treepanel",alternateClassName:["Ext.tree.TreePanel","Ext.TreePanel"],requires:["Ext.tree.View","Ext.selection.TreeModel","Ext.tree.Column","Ext.data.TreeStore"],viewType:"treeview",selType:"treemodel",treeCls:Ext.baseCSSPrefix+"tree-panel",deferRowRender:false,rowLines:false,lines:true,useArrows:false,singleExpand:false,ddConfig:{enableDrag:true,enableDrop:true},rootVisible:true,displayField:"text",root:null,normalCfgCopy:["displayField","root","singleExpand","useArrows","lines","rootVisible","scroll"],lockedCfgCopy:["displayField","root","singleExpand","useArrows","lines","rootVisible"],isTree:true,constructor:function(a){a=a||{};if(a.animate===undefined){a.animate=Ext.isDefined(this.animate)?this.animate:Ext.enableFx}this.enableAnimations=a.animate;delete a.animate;this.callParent([a])},initComponent:function(){var c=this,b=[c.treeCls],a;if(c.useArrows){b.push(Ext.baseCSSPrefix+"tree-arrows");c.lines=false}if(c.lines){b.push(Ext.baseCSSPrefix+"tree-lines")}else{if(!c.useArrows){b.push(Ext.baseCSSPrefix+"tree-no-lines")}}if(Ext.isString(c.store)){c.store=Ext.StoreMgr.lookup(c.store)}else{if(!c.store||Ext.isObject(c.store)&&!c.store.isStore){c.store=new Ext.data.TreeStore(Ext.apply({},c.store||{},{root:c.root,fields:c.fields,model:c.model,folderSort:c.folderSort}))}else{if(c.root){c.store=Ext.data.StoreManager.lookup(c.store);c.store.setRootNode(c.root);if(c.folderSort!==undefined){c.store.folderSort=c.folderSort;c.store.sort()}}}}c.viewConfig=Ext.apply({},c.viewConfig);c.viewConfig=Ext.applyIf(c.viewConfig,{rootVisible:c.rootVisible,animate:c.enableAnimations,singleExpand:c.singleExpand,node:c.store.getRootNode(),hideHeaders:c.hideHeaders});c.mon(c.store,{scope:c,rootchange:c.onRootChange,clear:c.onClear});c.relayEvents(c.store,["beforeload","load"]);c.mon(c.store,{append:c.createRelayer("itemappend"),remove:c.createRelayer("itemremove"),move:c.createRelayer("itemmove",[0,4]),insert:c.createRelayer("iteminsert"),beforeappend:c.createRelayer("beforeitemappend"),beforeremove:c.createRelayer("beforeitemremove"),beforemove:c.createRelayer("beforeitemmove"),beforeinsert:c.createRelayer("beforeiteminsert"),expand:c.createRelayer("itemexpand",[0,1]),collapse:c.createRelayer("itemcollapse",[0,1]),beforeexpand:c.createRelayer("beforeitemexpand",[0,1]),beforecollapse:c.createRelayer("beforeitemcollapse",[0,1])});if(!c.columns){if(c.initialConfig.hideHeaders===undefined){c.hideHeaders=true}c.addCls(Ext.baseCSSPrefix+"autowidth-table");c.columns=[{xtype:"treecolumn",text:"Name",width:Ext.isIE6?null:10000,dataIndex:c.displayField}]}if(c.cls){b.push(c.cls)}c.cls=b.join(" ");c.callParent();a=c.getView();c.relayEvents(a,["checkchange","afteritemexpand","afteritemcollapse"]);if(!a.rootVisible&&!c.getRootNode()){c.setRootNode({expanded:true})}},onClear:function(){this.view.onClear()},setRootNode:function(){return this.store.setRootNode.apply(this.store,arguments)},getRootNode:function(){return this.store.getRootNode()},onRootChange:function(a){this.view.setRootNode(a)},getChecked:function(){return this.getView().getChecked()},isItemChecked:function(a){return a.get("checked")},expandNode:function(b,a,d,c){return this.getView().expand(b,a,d,c||this)},collapseNode:function(b,a,d,c){return this.getView().collapse(b,a,d,c||this)},expandAll:function(g,d){var e=this,b=e.getRootNode(),c=e.enableAnimations,a=e.getView();if(b){if(!c){a.beginBulkUpdate()}b.expand(true,g,d||e);if(!c){a.endBulkUpdate()}}},collapseAll:function(g,d){var e=this,b=e.getRootNode(),c=e.enableAnimations,a=e.getView();if(b){if(!c){a.beginBulkUpdate()}d=d||e;if(a.rootVisible){b.collapse(true,g,d)}else{b.collapseChildren(true,g,d)}if(!c){a.endBulkUpdate()}}},expandPath:function(l,g,a,h,k){var d=this,c=d.getRootNode(),b=1,e=d.getView(),j,i;g=g||d.getRootNode().idProperty;a=a||"/";if(Ext.isEmpty(l)){Ext.callback(h,k||d,[false,null]);return}j=l.split(a);if(c.get(g)!=j[1]){Ext.callback(h,k||d,[false,c]);return}i=function(){if(++b===j.length){Ext.callback(h,k||d,[true,c]);return}var m=c.findChild(g,j[b]);if(!m){Ext.callback(h,k||d,[false,c]);return}c=m;c.expand(false,i)};c.expand(false,i)},selectPath:function(j,d,a,g,i){var b=this,c,h,e;d=d||b.getRootNode().idProperty;a=a||"/";h=j.split(a);e=h.pop();if(h.length>1){b.expandPath(h.join(a),d,a,function(m,l){var k=l;if(m&&l){l=l.findChild(d,e);if(l){b.getSelectionModel().select(l);Ext.callback(g,i||b,[true,l]);return}}Ext.callback(g,i||b,[false,k])},b)}else{c=b.getRootNode();if(c.getId()===e){b.getSelectionModel().select(c);Ext.callback(g,i||b,[true,c])}else{Ext.callback(g,i||b,[false,null])}}}});Ext.define("Ext.view.DragZone",{extend:"Ext.dd.DragZone",containerScroll:false,constructor:function(b){var e=this,a,d,c;Ext.apply(e,b);if(!e.ddGroup){e.ddGroup="view-dd-zone-"+e.view.id}a=e.view;d=a.ownerCt;if(d){c=d.getTargetEl().dom}else{c=a.el.dom.parentNode}e.callParent([c]);e.ddel=Ext.get(document.createElement("div"));e.ddel.addCls(Ext.baseCSSPrefix+"grid-dd-wrap")},init:function(c,a,b){this.initTarget(c,a,b);this.view.mon(this.view,{itemmousedown:this.onItemMouseDown,scope:this})},onValidDrop:function(b,a,c){this.callParent();b.el.focus()},onItemMouseDown:function(b,a,d,c,g){if(!this.isPreventDrag(g,a,d,c)){this.view.focus();this.handleMouseDown(g);if(b.getSelectionModel().selectionMode=="MULTI"&&!g.ctrlKey&&b.getSelectionModel().isSelected(a)){return false}}},isPreventDrag:function(a){return false},getDragData:function(c){var a=this.view,b=c.getTarget(a.getItemSelector());if(b){return{copy:a.copy||(a.allowCopy&&c.ctrlKey),event:new Ext.EventObjectImpl(c),view:a,ddel:this.ddel,item:b,records:a.getSelectionModel().getSelection(),fromPosition:Ext.fly(b).getXY()}}},onInitDrag:function(b,j){var g=this,h=g.dragData,d=h.view,a=d.getSelectionModel(),c=d.getRecord(h.item),i=h.event;if(!a.isSelected(c)){a.select(c,true)}h.records=a.getSelection();g.ddel.update(g.getDragText());g.proxy.update(g.ddel.dom);g.onStartDrag(b,j);return true},getDragText:function(){var a=this.dragData.records.length;return Ext.String.format(this.dragText,a,a==1?"":"s")},getRepairXY:function(b,a){return a?a.fromPosition:false}});Ext.define("Ext.tree.ViewDragZone",{extend:"Ext.view.DragZone",isPreventDrag:function(b,a){return(a.get("allowDrag")===false)||!!b.getTarget(this.view.expanderSelector)},afterRepair:function(){var h=this,a=h.view,i=a.selectedItemCls,b=h.dragData.records,g,e=b.length,c=Ext.fly,d;if(Ext.enableFx&&h.repairHighlight){for(g=0;g<e;g++){d=a.getNode(b[g]);c(d.firstChild).highlight(h.repairHighlightColor,{listeners:{beforeanimate:function(){if(a.isSelected(d)){c(d).removeCls(i)}},afteranimate:function(){if(a.isSelected(d)){c(d).addCls(i)}}}})}}h.dragging=false}});Ext.define("Ext.tree.ViewDropZone",{extend:"Ext.view.DropZone",allowParentInserts:false,allowContainerDrops:false,appendOnly:false,expandDelay:500,indicatorCls:Ext.baseCSSPrefix+"tree-ddindicator",expandNode:function(b){var a=this.view;if(!b.isLeaf()&&!b.isExpanded()){a.expand(b);this.expandProcId=false}},queueExpand:function(a){this.expandProcId=Ext.Function.defer(this.expandNode,this.expandDelay,this,[a])},cancelExpand:function(){if(this.expandProcId){clearTimeout(this.expandProcId);this.expandProcId=false}},getPosition:function(g,b){var j=this.view,c=j.getRecord(b),h=g.getPageY(),k=c.isLeaf(),a=false,i=Ext.fly(b).getRegion(),d;if(c.isRoot()){return"append"}if(this.appendOnly){return k?false:"append"}if(!this.allowParentInsert){a=c.hasChildNodes()&&c.isExpanded()}d=(i.bottom-i.top)/(k?2:3);if(h>=i.top&&h<(i.top+d)){return"before"}else{if(!a&&(k||(h>=(i.bottom-d)&&h<=i.bottom))){return"after"}else{return"append"}}},isValidDropPoint:function(b,j,n,k,g){if(!b||!g.item){return false}var o=this.view,l=o.getRecord(b),d=g.records,a=d.length,m=d.length,c,h;if(!(l&&j&&a)){return false}for(c=0;c<m;c++){h=d[c];if(h.isNode&&h.contains(l)){return false}}if(j==="append"&&l.get("allowDrop")===false){return false}else{if(j!="append"&&l.parentNode.get("allowDrop")===false){return false}}if(Ext.Array.contains(d,l)){return false}return true},onNodeOver:function(a,i,g,c){var d=this.getPosition(g,a),b=this.dropNotAllowed,j=this.view,h=j.getRecord(a),k=this.getIndicator(),m=0,l=0;this.cancelExpand();if(d=="append"&&!this.expandProcId&&!Ext.Array.contains(c.records,h)&&!h.isLeaf()&&!h.isExpanded()){this.queueExpand(h)}if(this.isValidDropPoint(a,d,i,g,c)){this.valid=true;this.currentPosition=d;this.overRecord=h;k.setWidth(Ext.fly(a).getWidth());l=Ext.fly(a).getY()-Ext.fly(j.el).getY()-1;if(d=="before"){b=h.isFirst()?Ext.baseCSSPrefix+"tree-drop-ok-above":Ext.baseCSSPrefix+"tree-drop-ok-between";k.showAt(0,l);i.proxy.show()}else{if(d=="after"){b=h.isLast()?Ext.baseCSSPrefix+"tree-drop-ok-below":Ext.baseCSSPrefix+"tree-drop-ok-between";l+=Ext.fly(a).getHeight();k.showAt(0,l);i.proxy.show()}else{b=Ext.baseCSSPrefix+"tree-drop-ok-append";k.hide()}}}else{this.valid=false}this.currentCls=b;return b},onContainerOver:function(a,c,b){return c.getTarget("."+this.indicatorCls)?this.currentCls:this.dropNotAllowed},notifyOut:function(){this.callParent(arguments);this.cancelExpand()},handleNodeDrop:function(d,l,e){var n=this,o=n.view,g=l.parentNode,p=o.getStore(),r=[],a,c,k,b,j,m,q,h;if(d.copy){a=d.records;d.records=[];for(c=0,k=a.length;c<k;c++){d.records.push(Ext.apply({},a[c].data))}}n.cancelExpand();if(e=="before"){b=g.insertBefore;j=[null,l];l=g}else{if(e=="after"){if(l.nextSibling){b=g.insertBefore;j=[null,l.nextSibling]}else{b=g.appendChild;j=[null]}l=g}else{if(!l.isExpanded()){m=true}b=l.appendChild;j=[null]}}q=function(){var u,t,s,i,v;for(c=0,k=d.records.length;c<k;c++){j[0]=d.records[c];u=b.apply(l,j);if(Ext.enableFx&&n.dropHighlight){r.push(o.getNode(u))}}if(Ext.enableFx&&n.dropHighlight){s=r.length;i=n.dropHighlightColor;for(t=0;t<s;t++){v=r[t];if(v){Ext.fly(v.firstChild?v.firstChild:v).highlight(i)}}}};if(m){l.expand(false,q)}else{q()}}});Ext.define("Ext.tree.plugin.TreeViewDragDrop",{extend:"Ext.AbstractPlugin",alias:"plugin.treeviewdragdrop",uses:["Ext.tree.ViewDragZone","Ext.tree.ViewDropZone"],dragText:"{0} selected node{1}",allowParentInserts:false,allowContainerDrops:false,appendOnly:false,ddGroup:"TreeDD",expandDelay:1000,enableDrop:true,enableDrag:true,nodeHighlightColor:"c3daf9",nodeHighlightOnDrop:Ext.enableFx,nodeHighlightOnRepair:Ext.enableFx,init:function(a){a.on("render",this.onViewRender,this,{single:true})},destroy:function(){Ext.destroy(this.dragZone,this.dropZone)},onViewRender:function(a){var b=this;if(b.enableDrag){b.dragZone=new Ext.tree.ViewDragZone({view:a,ddGroup:b.dragGroup||b.ddGroup,dragText:b.dragText,repairHighlightColor:b.nodeHighlightColor,repairHighlight:b.nodeHighlightOnRepair})}if(b.enableDrop){b.dropZone=new Ext.tree.ViewDropZone({view:a,ddGroup:b.dropGroup||b.ddGroup,allowContainerDrops:b.allowContainerDrops,appendOnly:b.appendOnly,allowParentInserts:b.allowParentInserts,expandDelay:b.expandDelay,dropHighlightColor:b.nodeHighlightColor,dropHighlight:b.nodeHighlightOnDrop})}}});Ext.define("Ext.util.CSS",(function(){var d=null,c=document,b=/(-[a-z])/gi,a=function(e,g){return g.charAt(1).toUpperCase()};return{singleton:true,constructor:function(){this.rules={};this.initialized=false},createStyleSheet:function(i,l){var h,g=c.getElementsByTagName("head")[0],k=c.createElement("style");k.setAttribute("type","text/css");if(l){k.setAttribute("id",l)}if(Ext.isIE){g.appendChild(k);h=k.styleSheet;h.cssText=i}else{try{k.appendChild(c.createTextNode(i))}catch(j){k.cssText=i}g.appendChild(k);h=k.styleSheet?k.styleSheet:(k.sheet||c.styleSheets[c.styleSheets.length-1])}this.cacheStyleSheet(h);return h},removeStyleSheet:function(g){var e=document.getElementById(g);if(e){e.parentNode.removeChild(e)}},swapStyleSheet:function(i,e){var h=document,g;this.removeStyleSheet(i);g=h.createElement("link");g.setAttribute("rel","stylesheet");g.setAttribute("type","text/css");g.setAttribute("id",i);g.setAttribute("href",e);h.getElementsByTagName("head")[0].appendChild(g)},refreshCache:function(){return this.getRules(true)},cacheStyleSheet:function(l){if(!d){d={}}try{var o=l.cssRules||l.rules,m,k=o.length-1,g,h;for(;k>=0;--k){m=o[k].selectorText;if(m){m=m.split(",");h=m.length;for(g=0;g<h;g++){d[Ext.String.trim(m[g]).toLowerCase()]=o[k]}}}}catch(n){}},getRules:function(h){if(d===null||h){d={};var k=c.styleSheets,j=0,g=k.length;for(;j<g;j++){try{if(!k[j].disabled){this.cacheStyleSheet(k[j])}}catch(l){}}}return d},getRule:function(e,h){var g=this.getRules(h),j;if(!Ext.isArray(e)){return g[e.toLowerCase()]}for(j=0;j<e.length;j++){if(g[e[j]]){return g[e[j].toLowerCase()]}}return null},updateRule:function(e,j,h){var k,g;if(!Ext.isArray(e)){k=this.getRule(e);if(k){k.style[j.replace(b,a)]=h;return true}}else{for(g=0;g<e.length;g++){if(this.updateRule(e[g],j,h)){return true}}}return false}}}()));Ext.define("Ext.util.Cookies",{singleton:true,set:function(c,e){var a=arguments,i=arguments.length,b=(i>2)?a[2]:null,h=(i>3)?a[3]:"/",d=(i>4)?a[4]:null,g=(i>5)?a[5]:false;document.cookie=c+"="+escape(e)+((b===null)?"":("; expires="+b.toGMTString()))+((h===null)?"":("; path="+h))+((d===null)?"":("; domain="+d))+((g===true)?"; secure":"")},get:function(d){var b=d+"=",g=b.length,a=document.cookie.length,e=0,c=0;while(e<a){c=e+g;if(document.cookie.substring(e,c)==b){return this.getCookieVal(c)}e=document.cookie.indexOf(" ",e)+1;if(e===0){break}}return null},clear:function(a,b){if(this.get(a)){b=b||"/";document.cookie=a+"=; expires=Thu, 01-Jan-70 00:00:01 GMT; path="+b}},getCookieVal:function(b){var a=document.cookie.indexOf(";",b);if(a==-1){a=document.cookie.length}return unescape(document.cookie.substring(b,a))}});Ext.define("Ext.util.Grouper",{extend:"Ext.util.Sorter",isGrouper:true,getGroupString:function(a){return a.get(this.property)}});Ext.define("Ext.util.History",{singleton:true,alternateClassName:"Ext.History",mixins:{observable:"Ext.util.Observable"},useTopWindow:true,fieldId:Ext.baseCSSPrefix+"history-field",iframeId:Ext.baseCSSPrefix+"history-frame",constructor:function(){var a=this;a.oldIEMode=Ext.isIE6||Ext.isIE7||!Ext.isStrict&&Ext.isIE8;a.iframe=null;a.hiddenField=null;a.ready=false;a.currentToken=null;a.mixins.observable.constructor.call(a)},getHash:function(){var a=window.location.href,b=a.indexOf("#");return b>=0?a.substr(b+1):null},setHash:function(d){var a=this,c=a.useTopWindow?window.top:window;try{c.location.hash=d}catch(b){}},doSave:function(){this.hiddenField.value=this.currentToken},handleStateChange:function(a){this.currentToken=a;this.fireEvent("change",a)},updateIFrame:function(b){var a='<html><body><div id="state">'+Ext.util.Format.htmlEncode(b)+"</div></body></html>",d;try{d=this.iframe.contentWindow.document;d.open();d.write(a);d.close();return true}catch(c){return false}},checkIFrame:function(){var d=this,b=d.iframe.contentWindow,e,c,a,g;if(!b||!b.document){Ext.Function.defer(this.checkIFrame,10,this);return}e=b.document;c=e.getElementById("state");a=c?c.innerText:null;g=d.getHash();Ext.TaskManager.start({run:function(){var k=b.document,j=k.getElementById("state"),h=j?j.innerText:null,i=d.getHash();if(h!==a){a=h;d.handleStateChange(h);d.setHash(h);g=h;d.doSave()}else{if(i!==g){g=i;d.updateIFrame(i)}}},interval:50,scope:d});d.ready=true;d.fireEvent("ready",d)},startUp:function(){var a=this,b;a.currentToken=a.hiddenField.value||this.getHash();if(a.oldIEMode){a.checkIFrame()}else{b=a.getHash();Ext.TaskManager.start({run:function(){var c=a.getHash();if(c!==b){b=c;a.handleStateChange(b);a.doSave()}},interval:50,scope:a});a.ready=true;a.fireEvent("ready",a)}},init:function(d,b){var c=this,a=Ext.DomHelper;if(c.ready){Ext.callback(d,b,[c]);return}if(!Ext.isReady){Ext.onReady(function(){c.init(d,b)});return}c.hiddenField=Ext.getDom(c.fieldId);if(!c.hiddenField){c.hiddenField=Ext.getBody().createChild({id:Ext.id(),tag:"form",cls:Ext.baseCSSPrefix+"hide-display",children:[{tag:"input",type:"hidden",id:c.fieldId}]},false,true).firstChild}if(c.oldIEMode){c.iframe=Ext.getDom(c.iframeId);if(!c.iframe){c.iframe=a.append(c.hiddenField.parentNode,{tag:"iframe",id:c.iframeId,src:Ext.SSL_SECURE_URL})}}c.addEvents("ready","change");if(d){c.on("ready",d,b,{single:true})}c.startUp()},add:function(a,c){var b=this;if(c!==false){if(b.getToken()===a){return true}}if(b.oldIEMode){return b.updateIFrame(a)}else{b.setHash(a);return true}},back:function(){window.history.go(-1)},forward:function(){window.history.go(1)},getToken:function(){return this.ready?this.currentToken:this.getHash()}});Ext.define("Ext.util.Point",{extend:"Ext.util.Region",statics:{fromEvent:function(a){a=(a.changedTouches&&a.changedTouches.length>0)?a.changedTouches[0]:a;return new this(a.pageX,a.pageY)}},constructor:function(a,b){this.callParent([b,a,b,a])},toString:function(){return"Point["+this.x+","+this.y+"]"},equals:function(a){return(this.x==a.x&&this.y==a.y)},isWithin:function(b,a){if(!Ext.isObject(a)){a={x:a,y:a}}return(this.x<=b.x+a.x&&this.x>=b.x-a.x&&this.y<=b.y+a.y&&this.y>=b.y-a.y)},roundedEquals:function(a){return(Math.round(this.x)==Math.round(a.x)&&Math.round(this.y)==Math.round(a.y))}},function(){this.prototype.translate=Ext.util.Region.prototype.translateBy});Ext.define("Ext.view.TableChunker",{singleton:true,requires:["Ext.XTemplate"],metaTableTpl:["{%if (this.openTableWrap)out.push(this.openTableWrap())%}",'<table class="'+Ext.baseCSSPrefix+"grid-table "+Ext.baseCSSPrefix+'grid-table-resizer" border="0" cellspacing="0" cellpadding="0" {[this.embedFullWidth(values)]}>',"<tbody>",'<tr class="'+Ext.baseCSSPrefix+'grid-header-row">','<tpl for="columns">','<th class="'+Ext.baseCSSPrefix+'grid-col-resizer-{id}" style="width: {width}px; height: 0px;"></th>',"</tpl>","</tr>","{[this.openRows()]}","{row}",'<tpl for="features">',"{[this.embedFeature(values, parent, xindex, xcount)]}","</tpl>","{[this.closeRows()]}","</tbody>","</table>","{%if (this.closeTableWrap)out.push(this.closeTableWrap())%}"],constructor:function(){Ext.XTemplate.prototype.recurse=function(b,a){return this.apply(a?b[a]:b)}},embedFeature:function(b,d,a,e){var c="";if(!b.disabled){c=b.getFeatureTpl(b,d,a,e)}return c},embedFullWidth:function(b){var a='style="width:{fullWidth}px;';if(!b.rowCount){a+="height:1px;"}return a+'"'},openRows:function(){return'<tpl for="rows">'},closeRows:function(){return"</tpl>"},metaRowTpl:['<tr class="'+Ext.baseCSSPrefix+'grid-row {[this.embedRowCls()]}" {[this.embedRowAttr()]}>','<tpl for="columns">','<td class="{cls} '+Ext.baseCSSPrefix+"grid-cell "+Ext.baseCSSPrefix+'grid-cell-{columnId} {{id}-modified} {{id}-tdCls} {[this.firstOrLastCls(xindex, xcount)]}" {{id}-tdAttr}>','<div {unselectableAttr} class="'+Ext.baseCSSPrefix+'grid-cell-inner {unselectableCls}" style="text-align: {align}; {{id}-style};">{{id}}</div>',"</td>","</tpl>","</tr>"],firstOrLastCls:function(a,b){if(a===1){return Ext.view.Table.prototype.firstCls}else{if(a===b){return Ext.view.Table.prototype.lastCls}}},embedRowCls:function(){return"{rowCls}"},embedRowAttr:function(){return"{rowAttr}"},openTableWrap:undefined,closeTableWrap:undefined,getTableTpl:function(k,b){var j,h={openRows:this.openRows,closeRows:this.closeRows,embedFeature:this.embedFeature,embedFullWidth:this.embedFullWidth,openTableWrap:this.openTableWrap,closeTableWrap:this.closeTableWrap},g={},c=k.features||[],m=c.length,e=0,l={embedRowCls:this.embedRowCls,embedRowAttr:this.embedRowAttr,firstOrLastCls:this.firstOrLastCls,unselectableAttr:k.enableTextSelection?"":'unselectable="on"',unselectableCls:k.enableTextSelection?"":Ext.baseCSSPrefix+"unselectable"},d=Array.prototype.slice.call(this.metaRowTpl,0),a;for(;e<m;e++){if(!c[e].disabled){c[e].mutateMetaRowTpl(d);Ext.apply(l,c[e].getMetaRowTplFragments());Ext.apply(g,c[e].getFragmentTpl());Ext.apply(h,c[e].getTableFragments())}}d=new Ext.XTemplate(d.join(""),l);k.row=d.applyTemplate(k);a=new Ext.XTemplate(this.metaTableTpl.join(""),h);j=a.applyTemplate(k);if(!b){j=new Ext.XTemplate(j,g)}return j}});Ext._endTime=new Date().getTime();if(Ext._beforereadyhandler){Ext._beforereadyhandler()}; \ No newline at end of file diff --git a/docs/extjs/resources/themes/images/default/boundlist/trigger-arrow.png b/docs/extjs/resources/themes/images/default/boundlist/trigger-arrow.png new file mode 100755 index 0000000000000000000000000000000000000000..11daac3da8202dec764b68145cb16d1693090e1a GIT binary patch literal 2869 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 TCTt#-00000NkvXXu0mjfpUP1v literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/box/corners-blue.gif b/docs/extjs/resources/themes/images/default/box/corners-blue.gif new file mode 100755 index 0000000000000000000000000000000000000000..fa419b50abe5030db04492578d5dfd39c02fb6ab GIT binary patch literal 1010 zcmZ?wbhEHb<X})>XlGzpbnMH9^WV;$J9qKo#mkp3U%h(u+O=ypZrr$e^X8p9ckbT3 zd+*-8gExOZc<|ui!-tO^J$n53@slS{o<4p0?Af#D&!4}1`SR7PSFc~ce)Hzd+qZAu zy?gim{reZ6{(SiG;p4}TpFVy1{Q2{jFJHcX{rc_Ox9{J-|M>Ca=g*(NfB*jT=g;52 zfB*ga_y7NYhEYJJ5ODbKKqZq#iZO~mS(q6ZW-;i1JPgVc3>@bfOgUvd3KTeaMcKM` zTmT9+Dym5^6eP5&35jyCL~LwoUdG4CQ1IlzMJEOhS<kFl3=FKEQ(0NVE-)-&ab#eW ziV-j@ILgStrqLpBqA|IFNz@}l>7<|o6TkONJB|cJt&_qGY8j_CFdSfKOOVXz5IAt4 zV}p{G0>c6amIz;I6#<3?kJdQw@UbxnC^#-)=MmtuQ0WM8YMvo$(vtdt@jw$#qNfCh wKq7O5AQyweiU(yaTnsEKITutM85$V*3^<NdGBB~Nm?h;g!*hr8nFa=H05=J^^Z)<= literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/box/corners.gif b/docs/extjs/resources/themes/images/default/box/corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..8aa8cae5c83d8f17aefadb93aa9a6f95d6069c40 GIT binary patch literal 1005 zcmZ?wbhEHb<X})>XlGzJaNxk<!-tO?Idb&q(PPJsojiH+^y$-Q&YU@S?%etF=Pz8i zaPi{BOP4NPzI^%W)vMR8UAun$`i&bmZr;3k=gytGckkZ2ckjW22M-@UeDvti<HwJm zJbCi;>C<P=o;`p5{N>A+uU@@+{rdHrH*em)ef#d+yZ7(kfB5j><HwJmK7IQ9`SX`A zU%r0*`t94d@87@w`0?ZC&!4}4|Nism&)>g)|NZ;-|Nno6kqR9CJB(DX)7#&QKUtU= zfEhstWHBgDFmRk=;OCU_C{XAUlw(`PkjU7?)Tn7;V<Dh;L{Usm#$v|7j{%*WToz@2 z4k$FAkZiY*XeiwDz=2;mKqQ3WAQOiuv$KoEhXu}DjY_6f3573GnmE<Ex{e%p&>YmK z&r@KbvglBQu=1upg@ud<n?<8SD<&v3G<B_M_sGd$a5%;#z~megA;55utx?S>rDMSY z2FDg@ogF$0O<!{|iMnK@eq?B56N(HC5KuUH_>ia(gUJntM;F*w7{y{XRIF%d;*fMw Ru}w*2KC@pnhK+^68UTSX)nNbt literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/box/l-blue.gif b/docs/extjs/resources/themes/images/default/box/l-blue.gif new file mode 100755 index 0000000000000000000000000000000000000000..5ed7f0043b6b0f956076e02583ca7d18a150e8f6 GIT binary patch literal 810 zcmZ?wbhEHbWMN=rXlGzpbnMHWJ9pl^dGqhzKZa2-8UiCM1QdU=0Db(QK?me-P@Z7m PU}s=uVK7ioV6X-NGaC=| literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/box/l.gif b/docs/extjs/resources/themes/images/default/box/l.gif new file mode 100755 index 0000000000000000000000000000000000000000..0160f97fe75409f17ab6c3c91f7cbdc58afa8f8f GIT binary patch literal 810 zcmZ?wbhEHbWMN=rXlGzJc<|tzJ9pl^dGqhzKZa2-8UiCM1QdU=0Db(QK?me-P@Z7m PU}s=uVK7ioV6X-N<)RPU literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/box/r-blue.gif b/docs/extjs/resources/themes/images/default/box/r-blue.gif new file mode 100755 index 0000000000000000000000000000000000000000..3ea5cae3b7b571ec41ac2b5d38c8a675a1f66efc GIT binary patch literal 810 zcmZ?wbhEHbWMN=rXlGzpbnMHWJ9pl^dGr7Oe}+*o8UiCM1QdU=0Db(QK?me-P@Z7m PU}s=w;80LdV6X-NJSY$C literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/box/r.gif b/docs/extjs/resources/themes/images/default/box/r.gif new file mode 100755 index 0000000000000000000000000000000000000000..34237f6292a7da6ac5d1b95d13ce76a7194dd596 GIT binary patch literal 810 zcmZ?wbhEHbWMN=rXlGzJc<|tzJ9pl^dGr7Oe}+*o8UiCM1QdU=0Db(QK?me-P@Z7m PU}s=w;80LdV6X-N?ynEj literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/box/tb-blue.gif b/docs/extjs/resources/themes/images/default/box/tb-blue.gif new file mode 100755 index 0000000000000000000000000000000000000000..562fecca87176274af7bf13c419daaf93f169249 GIT binary patch literal 851 zcmZ?wbhEHbWMt4{XlGzpbnMHL<6oAa{JQeg*VSjft~>i}!})KUE_~a1@%#46-*;X4 zvFF;4eb;~7zJ2@P&7Vha|2%Q`=a~n;&OiEf>B+Ba&wkx{`TPEx-%p-AdGqGY<M)4F zeERe4+qb`e|1yk%(GVC4A)xq^1?bHG3_2jkg7O3dhXI3m48sA(W=CE=A*&k<3mDmW lC3Qj;I3zZ;a0tj*FbFstU|?e9k#U&daFB_OkBN!F8UTdQTXg^c literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/box/tb.gif b/docs/extjs/resources/themes/images/default/box/tb.gif new file mode 100755 index 0000000000000000000000000000000000000000..435889bffe0a3a4f92b1cb5e781be0d1e9e355f0 GIT binary patch literal 839 zcmZ?wbhEHbWMoiaXlGzJc<|tf6DMxpzWwCMlQ(bPynFZV{rmSHK79E2@#E*upTB(h z^7ZT2Z{NOs|Ni~Qj~_pO{`~dp*PlOs{{H>@@87@w|Nk?Lg3%Bd$|0cmlLhGf{|q`H xPk{0S1BVKOBoBu|W0NBntB_a%g98I2m#~UU!-oTo%xv5uDh>q)92y%KtN|VsNKya* literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn-group/btn-group-default-framed-corners.gif b/docs/extjs/resources/themes/images/default/btn-group/btn-group-default-framed-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..70f2dd4df32e16c90d8ed55caaede6826a8b62d6 GIT binary patch literal 1598 zcmZ?wbhEHbWMbf9`2L?^+lgx@uD#fG>c)-}*Y3Ugbn3>79j9(RdiCYOt1l;RJbUos z%l}a@8Un*N1QdU=FfuT3Gw3h?0Vq$jkLHNs8{4BkBOC%8(hQ6Y77ia84lppW$Ouee TXk=vM5Ry<xIN;FOz+epk=Jovi literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn-group/btn-group-default-framed-notitle-corners.gif b/docs/extjs/resources/themes/images/default/btn-group/btn-group-default-framed-notitle-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..70f2dd4df32e16c90d8ed55caaede6826a8b62d6 GIT binary patch literal 1598 zcmZ?wbhEHbWMbf9`2L?^+lgx@uD#fG>c)-}*Y3Ugbn3>79j9(RdiCYOt1l;RJbUos z%l}a@8Un*N1QdU=FfuT3Gw3h?0Vq$jkLHNs8{4BkBOC%8(hQ6Y77ia84lppW$Ouee TXk=vM5Ry<xIN;FOz+epk=Jovi literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn-group/btn-group-default-framed-notitle-sides.gif b/docs/extjs/resources/themes/images/default/btn-group/btn-group-default-framed-notitle-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..44a93342c2691bfec59154d14c78b5db2d5ffba1 GIT binary patch literal 1623 zcmZ?wbhEHbWMOb(`2L?^+lgzBUVZsL3PwX<M23LkPZmZ71||j_1|R_CiT2SPF(MPf zsHdSJz+u9`$il(kpy1fd%C2U!LSW(HHUUYm7>|z+UAje;)Ap<oTztGw!LsX)$EU|0 PlU1FU*{n2DV6X-NTZR$@ literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn-group/btn-group-default-framed-sides.gif b/docs/extjs/resources/themes/images/default/btn-group/btn-group-default-framed-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..ebe97b7be3fbb8d2db21495a0bd6ca7ac36c04ff GIT binary patch literal 1630 zcmZ?wbhEHbWMK$l`2L?^+lgzBUVZsL3PwX<M23LkPZmZ71||j_1|R_CiT2SPF(MPf zsHdSJz+uh6$il(kpy1fd%C2U!LSW(HHUUYm7>|z+UAje;)Ap<oTztGw!LsX)$EU|0 WlU1FU*{l>=dU~2cWFHR)gEau0j};&Q literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-large-bg.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-large-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..5e1f83f8b585f0c94d4f0c19640e78167fda552e GIT binary patch literal 1825 zcmZ?wbhEHb<Y#bV{{Elg(W6Jto;`c=<jI#WU;h33_vg=_U%!6+`0?ZaC>RZa5fB23 zKUo+V7&sVo7=QqjC)!7I#0ZG?Q7_^Q0gitRoE$P98x|aF<`CA>iCD1kaJzuA*Bp<H zi;i}S^Jd&Rv2pS7eg)?)8P7>i8YXK5ui`ndY3b?d3`wWvcy3;HcD6<Ft2-w*FK?Ld z(99+4wPnS{#ZK{Bv8T4Iyu3VMvDaL$t*frCj@X=a_te(a*ViW;?vnN1w&v#MjLWNH zPj6d$dwap-Q**tyue-au;`6J!r?;=azrTT*Th3?4hKGkcgtg<&?AZAD_ylF|c|JQg zJv}|cIQ!n2otvMZU*Oy==eujm%gZZ*SI3>*we|J&4aukH`R?BK_V$kA*Z0ou-v0jn vfo5)bzdbuXK0Yy7JO13Bou8jySnNIDZ||<JuWxM5zJG4-?((;cj11NQW$2La literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-large-corners.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-large-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..87e2f8245e9c0ce6bab778e82da2ff105f49e68b GIT binary patch literal 1616 zcmZ?wbhEHbWM&Xz`2L^a!i5XZo;|yF@7|?LmtMSh@$cWiSFc`OxpL*sojd<W!Dt8! z_YhG0$->CMz{#M)00f{s(LS0ZhI^ck`VU_SaOg5Ha_Bg0NN8y0U}f?UNN`|aW@Qs7 enX#aOkx5uqPDDU~k+GMZi9?~F!J(;v!5RQbr2}XH literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-large-disabled-bg.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-large-disabled-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..e5ae29f88d0cb0f30f924c86b17628844fe591c9 GIT binary patch literal 1825 zcmZ?wbhEHb<Y#bV{{Elg)~#Fj?%lg{=gzx#@4kKe_T|f$PoF-0`0(NXC>RZa5fB23 zKUo+V7&sVo7=QqjC)!7I#0ZG?Q7_^Q0gitRoE$P98x|aF<`CA>iCD1kaJzuA*Bp<H zi;i}S^Jd&Rv2pS7eg)?)8P7>i8YXK5ui`ndY3b?d3`wWvcy3;HcD6<Ft2-w*FK?Ld z(99+4wPnS{#ZK{Bv8T4Iyu3VMvDaL$t*frCj@X=a_te(a*ViW;?vnN1w&v#MjLWNH zPj6d$dwap-Q**tyue-au;`6J!r?;=azrTT*Th3?4hKGkcgtg<&?AZAD_ylF|c|JQg zJv}|cIQ!n2otvMZU*Oy==eujm%gZZ*SI3>*we|J&4aukH`R?BK_V$kA*Z0ou-v0jn vfo5)bzdbuXK0Yy7JO13Bou8jySnNIDZ||<JuWxM5zJG4-?((;cj11NQXgrU5 literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-large-disabled-corners.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-large-disabled-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..744c0272d5821a2ffd3354349477978cb56c25d8 GIT binary patch literal 1614 zcmZ?wbhEHbWM&Xz`2L^a-o1Md9z1yU>eZV!Z{EFo_wC!afB*jd9|fZ!Ffu|w@h1x- z0|PsQ4g(N?@<jV+ju;s+Kk7^DA;6){z|5iJutA}rnS+(hLP4Q{fr*t#prm5K0R~24 VW*L!!2@BmAq?maGDistMtO2`31~LEu literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-large-disabled-sides.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-large-disabled-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..84d257c6f8996e4dff3c9edcc7bfd6a27043ff33 GIT binary patch literal 1923 zcmZ?wbhEHbWMgn*{{Elg)~#Fj?%lg{=gxx%58l0d_wC!aFJHcV`t<3;hY$Zp!Dt8! z_YhG0$->CMz{#M)00f{s(LS0ZhI^ck`VU_SaQtUr7m<iaXmDs^;}o;8xUitHolVAR z%8v<2M;Hb4(@ZKBJZ9{Zb1W12S=exVk~*(Ygy(^ThUttvOfxtg)O=?f7haQbC{FjE z%f`wfDo~OUxX`_muR*d{(`UN>+<h%pp;^JpLe{$-%`#nmeO<!NuDf2_UPWw9-MT1t z^|rUyH|HH*R%;!u7rm?e?XlMG^8DC+Rlm9Td?YqJ+~4t8E^N*X{l~}ql=<Uyb{0H7 zIbGNJ*q+GZ)Khcp)7joyZh3iWh39Iyv%5ZLU0>^Zc%JU=Z!fQJ3qHPYZ?t*tz5TV% zkMY)2<Ucypt?hqKX6NU}7n<#-%iXp3`uf^t{rT(mR(^eZe{XUEyM0_u`MW3Q+uif+ z_Wu6%;pXXh|NVbzet*6C`2PC+|9}7fcXaywdS<Q@@{R0L5(*6*dJziETxJ@HEh0`C q51S>_Di*d$TAg^<F4t!9uuUoK#={QvSsY4T+N&azI+<Bm7_0$~x~9PZ literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-large-focus-bg.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-large-focus-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..a1b1124934cf47a209c1607ea00108df6dd6282a GIT binary patch literal 1840 zcmZ?wbhEHb<Y#bV{{Elg(2Y+=Zhbj+=gX}(|8BhbckA81JMaG8d-w0rr+*JV{JZzz z-?dkN{*Qvu5E!N*p!k!8k%57SL5BedKzX8lG)D~6s2=qeQ6a$bpFxmA#$&^RgUuYm zY7r+kEIiyUpzIamuyN7RZg!)rJ0~tS9Pd|f?vnA`l+rj^BY0KJ$xlxjrW+)mn&Y{7 z*;!VL;#YSx7c4(N-+_@s)@#d(i;F!bYsH@0vhwnBe`b%lURzgPT^+GG>+Y$otFNz5 zINT-cy=~3S%^8<h#h%`__V)II$EW6cZ(nzJcg5#dcTaC$e}8`iGq;@2jtvhFcL;08 zo!PPR@$m`D-t&BRZhCrphH>`2GdnjwKfl1aTh4damY0`T1h0-eyKC#~>l>0!&-2~A z?d|Oy#jo$3-M#(&{R7S1@_u`Ee0+RjvUdErJv%=?zp&VQzTe(mUtizYoPGb?-re8d ZKRDdYEAPK=&(F^<F0YRNZ>qpx4FDDCmdpSE literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-large-focus-corners.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-large-focus-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..697108e9cb369f27235f8b2d497d0ef98073cf63 GIT binary patch literal 1621 zcmZ?wbhEHbWM&Xz`2L?^)0q!PZhhHv<<o{UpHAKTa_Yg4QxCpvIrm}Hxew<a{W|mD z$D>dG&OQ3^@87@wqhK@yhFu6K{$ycfVBllWVE_V9o@gJ<5yLK$M?FMB2yhrNuye#X zY)EKm=3wP3aA06)WZ`BIa0xhYu!)6>gUO*_Lqh`tp9q6Rg+c=ZGdqt32M2>S05$^v AxBvhE literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-large-focus-sides.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-large-focus-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..8137ad21c72b6469ed0ee790107d047f203d9cfd GIT binary patch literal 1923 zcmZ?wbhEHbWMgn*{{Ej~!<kP<Zhbj)<I}M_Uv9klcMFK#{k!w--@SML9)0@v;KRRr zAO2l?_2>U67!85p7y^nvSr{1@co}pUfB=*y+DCK5aE#|sKM@-O9RC>@RU~FGG&nS| zaf-1lSg??(nNQxRB%`45C@Y&_hD*YShU3h#_HAD>E;M*DtNKgn9N2W=)HF8E6DkQ4 z8hzQ=*k8yb1T^?F+SapuwG`24VDMm;@LBaG<I+<9xk{~8p;^JpLe{$-%`#nmeO<!N zuDf2_UPWw9-MT1t^|rUyH|HH*R%;!u7rm?e?XlMG^8DC+Rlm9Td?YqJ+~4t8E^N*X z{l~}ql=<Uyb{0H7IbGNJ*q+GZ)Khcp)7joyZh3iWh39Iyv%5ZLU0>^Zc%JU=Z!fQJ z3qHPYZ?t*tz5TV%kMY)2<Ucypt?hqKX6NU}7n<#-%iXp3`uf^t{rT(mR(^eZe{XUE zyM0_u`MW3Q+uif+_Wu6%;pXXh|NVbzet*6C`2PC+|9}7fcXaywdS<Q@@{R0L5(*6* zdJziETxJ@HEh0`C51S>_Di*d$TAg^<F4t!9uuUoK#={QvSsY4T+N&azI)&I+7_0$n C@T9H) literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-large-over-bg.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-large-over-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..7d2fd84143a91d32ec464a57e38af876792b0ddf GIT binary patch literal 1840 zcmZ?wbhEHb<Y#bV{{Elg(2Y+=Zhbj+=gX}(|8BhbckA81JMaG8d-w0rr+*JV{JZzz z-<21C{*Qvu5E!N*p!k!8k%57SL5BedKzX8lG)D~6s2=qeQ6a$bpFxmA#$&^RgUuYm zY7r+kEIiyUpzIamuyN7RZg!)rJ0~tS9Pd|f?vnA`l+rj^BY0KJ$xlxjrW+)mn&Y{7 z*;!VL;#YSx7c4(N-+_@s)@#d(i;F!bYsH@0vhwnBe`b%lURzgPT^+GG>+Y$otFNz5 zINT-cy=~3S%^8<h#h%`__V)II$EW6cZ(nzJcg5#dcTaC$e}8`iGq;@2jtvhFcL;08 zo!PPR@$m`D-t&BRZhCrphH>`2GdnjwKfl1aTh4damY0`T1h0-eyKC#~>l>0!&-2~A z?d|Oy#jo$3-M#(&{R7S1@_u`Ee0+RjvUdErJv%=?zp&VQzTe(mUtizYoPGb?-re8d ZKRDdYEAPK=&(F^<F0YRNZ>qpx4FKvEmc#%6 literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-large-over-corners.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-large-over-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..91cdc04e6e7ece4e648a51431f547af5324185cd GIT binary patch literal 1621 zcmZ?wbhEHbWM&Xz`2L?^)0q!PZhhHv<<o{UpHAHSa_Yg4QxCpvIrm}HxevRpd^-2& z*O>=D9)0?E?$M8b|Ni|S1*0J_yh1?nCkrD313!Zf0}z1nMEhut7+x_v>KoERfWwG^ zog>9zLqbC{2P<EN0|O%?E02JHOTYt0W>#(vCWnFz4Gj$ZVhk1)3Jna*>^wFc91PX~ DdYt|_ literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-large-over-sides.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-large-over-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..6dfce7ce216d7edf9a5fd1482c15a000b4395dd8 GIT binary patch literal 1923 zcmZ?wbhEHbWMgn*{{Ej~!<kP<Zhbj)<I}M_Uv9klcMFK#{k!w--@SML9)0@v;KRRr zAO2l=@#p_27!85p7y^nvSr{1@co}pUfB=*y+DCK5aE#|sKM@-O9RC>@RU~FGG&nS| zaf-1lSg??(nNQxRB%`45C@Y&_hD*YShU3h#_HAD>E;M*DtNKgn9N2W=)HF8E6DkQ4 z8hzQ=*k8yb1T^?F+SapuwG`24VDMm;@LBaG<I+<9xk{~8p;^JpLe{$-%`#nmeO<!N zuDf2_UPWw9-MT1t^|rUyH|HH*R%;!u7rm?e?XlMG^8DC+Rlm9Td?YqJ+~4t8E^N*X z{l~}ql=<Uyb{0H7IbGNJ*q+GZ)Khcp)7joyZh3iWh39Iyv%5ZLU0>^Zc%JU=Z!fQJ z3qHPYZ?t*tz5TV%kMY)2<Ucypt?hqKX6NU}7n<#-%iXp3`uf^t{rT(mR(^eZe{XUE zyM0_u`MW3Q+uif+_Wu6%;pXXh|NVbzet*6C`2PC+|9}7fcXaywdS<Q@@{R0L5(*6* zdJziETxJ@HEh0`C51S>_Di*d$TAg^<F4t!9uuUoK#={QvSsY4T+N&azI)&I+7_0$3 CtfZy@ literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-large-pressed-bg.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-large-pressed-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..7fc6792410895f62c4c10e2941fdf6b66dc45b72 GIT binary patch literal 1869 zcmZ?wbhEHb<Y#bV{{Ej~!htW-4t<z%<jaIZUv`{%GVREhDTlsHI`pOIz?Z%QU$&ik zvhTu^Jr|zrIQMMNxhK2MJ=u2V$^TI>8Un*51QdU=FfuR*GUzY>0Vq$jkLHNs61SuN zASVPk{xfiL$arj6aIl#}SS#klgon-T0?J-<JU%KmcS{&&-8r#w@$r5s@eUc!O-oKr z)(Bpub92Gc)6)%@Pt5V$tkyK!qWIOFlb_R?<~uZVu{vy7adEN7WUbg!UtTmU4_NGF z>#%jz)zuN3gG>)>U44B$)1fX|?`>;tZqB$oN%z3EwYRqyJU%tod;7Y(yDL7wx_f&2 z`uqDEn7QSAc5HZfxI<Vw?#zyjkB?7K_MYdnbJNq)GmNwEo!Pnh`S}IT-EzLWw!FN& zB6xM&*<D*-U*C{?dY<p@ZEtVyD1LqK?C$OF?;mL9miODU<KyEKleOc|?b-SH`Gv*a z^ZoYj`uh6D=Is0D_U``v{=wmHEqVWadwza?ad~z8`F(qTfB*3K^nCyQ`~Lp^@%i=r V^ZWPz|Ifgt@t}d_m6!m7H2^GDnxFsx literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-large-pressed-corners.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-large-pressed-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..ce1852df7210a428af2cd80bcd9992592dcec82f GIT binary patch literal 1619 zcmZ?wbhEHbWM&Xz`2L?^-i~_<_S~Cx=*zra54N3pvg*L2X-B^N`}c3fp$97tJXm$; z(X4%MW*vC5=E$S}qhK@yhFu6K{$ycfVBllWVE_V9o@gJ<5yLK$M?FMB2yhrMuyd$5 yY*^6P%)!c65Rl-|$i~7Zz_Q=~V<Q`@8k5C}hDL@qX;v124GfM9EPPB%4Aubj2l%A` literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-large-pressed-sides.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-large-pressed-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..521dd333ab853157a1e132c86dfe570ad9052d10 GIT binary patch literal 1953 zcmZ?wbhEHbWMgn*{{Ej~+My5gc0HJK<ja&pU-n#hGVREhNr%2n0HOn5dJcT)JMd-4 zxo3OMJ=t~c$-WCucAR;#4Tw%X`9BIqLtt2hfZ|UUMg|5U1|0?<0Og7H(Ht=>B6idh zWQG98e+Fh7i606L4oz&FVm1~R5}Mn2Wt^t`n2>aYfyGG3U`3&_Td#~`-5H5VDGcly zvJyTkjSe(T=jLIW!FeE|X*OrhBa;;imNPZ8H_0(*P00voW}77Cuxd(X&~k5Po*7mL z7BsA8T9b6OYHId12G&Dj1{!5L5gSu3&f}du?QPWN)Z2$brN6Jev%Bo`wY%Qi*GKQG z|9g(tr(#3mo(BHcqCGP{K04H^XdgDm!YK9lRQ2e4YjzetJ3qtOo6R=r%hO9M{8vBo zsoI);c}?PeKiS#ea;~q<emrgN?``ky?`!@pcW(EN+(*ZI-}{}b*;)MH#C+~>zPZ1? zJiEFve!85kb@}VN+pFv3_4n2M`265<w)_6Lzu&)oxPMyxeBHjv?_WON@1H;af8Fn| zU)dMbG5%A3(8#71@t}#t?1g+Yzm-Koi-=!_Vv|7JiUlnaMLQB(Wt)C1Y?EyBSk$iC ym+`1eYuk)R-5SR<lzNO$RV4LV+*_gCZSwBLqFx)OpUHiWLY7PVr?RpzSOWk+&82Gq literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-large-sides.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-large-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..754621f7cbe23857060188455de880376a2ed5c5 GIT binary patch literal 1923 zcmZ?wbhEHbWMgn*{{Elg!i5XZo;`c?=+T!iU!FX9^6%fjKY#xG`t|F_k01X>!Dt8! z_YhG0$->CMz{#M)00f{s(LS0ZhI^ck`VU_SaQtUr6p@HvXmDs^;}o;8xUitHolVAR z%8v<2E(`+tX(km59y9jIIhKk16l^#?Nu8H3!ty{u!*oU-t{IvRYQD3L3$L*_6sP;o zW#i;f6)4FFT<G4()F4@`=`-Db?!FeQ(5&EPA?w|aW|^+OzAj;B*Iln|uOc?5Ze0|+ zdfVIUoAVAYtF;c-i{4fK_E>9od4BA^s^46EJ`x)q?(g_47dGdH{^R3)%KULUI}0A4 zoUZG9Y)@oy>Zv*Q>1=N;x4gWx!gICU*<GKruCH}HJWqG`x0lzq1s~tHH`+Y+-u~L> z$9QWh@*f@Q*7iRqv-9)g3(fY^<?dR1eSK}S{`_@&E5E+Izc)F7-9E0S{N0oD?e6(@ zdw+lXaPxG$|NcKUzrS96e1HA^|G$6#J39S-Ju}w{`9^jr355m@y$FS7E;Eh977?e6 qhs_dd6${%Wtxh~_mus_l*rpVA<6(#TEDohE?Nt#<oeV524AuZXJf@ET literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-medium-bg.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-medium-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..3d8286ef5097bfde0f67baf46fed1d1596f1dac2 GIT binary patch literal 1809 zcmZ?wbhEHb<Y%yA{{Elg(W6Jto;`c=<jJ>h-~Rmh^Xu2IA3uKl9|fZ!Ffu|w@h1x- z0|PsQ4g(N?@<jV+ju;s+Kk7^DA;9sDfs;eVW5a@j%^bp7F()=GJlxKz<Tb}*<D#S8 z62?I?2R1G~-p}OJCF3d7aB{Ln@T!=To0guQuIqVfj_2lOXBjMtU)?#mdHMPI4$WM$ zURzdNT<kGfEB4fum6w+XEcTk~wRP3i)e)Ps?w;DZ`uh5W!(Fo8+t%FNoN;+o?CEW5 zZ*MPnd}^-u_H}o6SA2eT_w@Gl_xCq2bIbYc*zoXhhp=|snH?J+AD^J?J<n(7rl+T8 z7-!!*vvc$F^9!82<$QN-d3kw7@anj;ySBc*z9ISaJm1~h-rn9({QBP6-P_;aKhVrA a@3&{i$HyloYsa74v-9)w3+e1E4AuZ6a)m7b literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-medium-corners.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-medium-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..87e2f8245e9c0ce6bab778e82da2ff105f49e68b GIT binary patch literal 1616 zcmZ?wbhEHbWM&Xz`2L^a!i5XZo;|yF@7|?LmtMSh@$cWiSFc`OxpL*sojd<W!Dt8! z_YhG0$->CMz{#M)00f{s(LS0ZhI^ck`VU_SaOg5Ha_Bg0NN8y0U}f?UNN`|aW@Qs7 enX#aOkx5uqPDDU~k+GMZi9?~F!J(;v!5RQbr2}XH literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-medium-disabled-bg.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-medium-disabled-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..23d7e57d652ec1e0a74324ce0ba59c67fdf3ff23 GIT binary patch literal 1809 zcmZ?wbhEHb<Y%yA{{Elg)~#Fj?%lg{=gzx#@4kHb^6As34<A1K9|fZ!Ffu|w@h1x- z0|PsQ4g(N?@<jV+ju;s+Kk7^DA;9sDfs;eVW5a@j%^bp7F()=GJlxKz<Tb}*<D#S8 z62?I?2R1G~-p}OJCF3d7aB{Ln@T!=To0guQuIqVfj_2lOXBjMtU)?#mdHMPI4$WM$ zURzdNT<kGfEB4fum6w+XEcTk~wRP3i)e)Ps?w;DZ`uh5W!(Fo8+t%FNoN;+o?CEW5 zZ*MPnd}^-u_H}o6SA2eT_w@Gl_xCq2bIbYc*zoXhhp=|snH?J+AD^J?J<n(7rl+T8 z7-!!*vvc$F^9!82<$QN-d3kw7@anj;ySBc*z9ISaJm1~h-rn9({QBP6-P_;aKhVrA a@3&{i$HyloYsa74v-9)w3+e1E4Aubts)OAC literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-medium-disabled-corners.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-medium-disabled-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..9188a88982fa907f2d366ef105f3299afc642c74 GIT binary patch literal 1614 zcmZ?wbhEHbWM&Xz`2L^a-o1Md9z1yU>eZV!Z{EFo_wC!afB*jd9|fZ!Ffu|w@h1x- z0|PsQ4g(N?@<jV+ju;s+Kk7^DA;6){z|5iJutA}rnS+(hLP4Q{fr*t#prm5K0R~24 VW*L!!2@BmA<k?vy3KSF=tO2`R1~LEu literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-medium-disabled-sides.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-medium-disabled-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..22c15a27e52e3ce4ddf28f5a450e50ea9bb9675f GIT binary patch literal 1907 zcmZ?wbhEHbWMi;m{{Elg)~#Fj?%lg{=gxx%58l0d_vOo%PoF-0`0(NXC>RZa5fB23 zKUo+V7&sVo7=QqjC)!7I#0ZG?Q7_^Q0gnF+>>?5o2@MWSY@A{?76yt=ZQP<(ITi;R zT$$PQlh#xiCLd>HaS}4nSg?elnIVYDVdbP$uj$(CD|#|NJ!zPw;w!~-!1%zqdG?iT zUo97?2QGG=EXKMkB;)d8pNV#%T3fTOtoB=*c9g4h_4RcLD~m*bPtCcpGGpt!(Clrw zw>IXVJ{HS8{cX(lvd`D<YKP~??<@Jw#pffTpK!QYP<-F%8}E~jcPX3O*;p1nJw8P- ze%hLy#m~-9vu$VVt=#hR(hAGTVYRbLU!C3Hx_{c+U1e{sZjXLGuXpyhyxaSlzss$Q zt|)x8r(fIuoQy@$^V18>|NGwkQS$oI=J5J`wpHI>-`Q9na9wX-&5zIb&MtT7uiN|k z+lP~zr~jW<_vhn}tM{+x@2~&&^Z!-x2Xzde%oo(NsYN_!V$!;y(9B||k=P=l#Idkd YI4R;`qm0##h3!&pHy&m&GBQ{L0Q6s@rT_o{ literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-medium-focus-bg.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-medium-focus-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..fe97ab427f5c93e89c104111d92117aa3036244c GIT binary patch literal 1817 zcmZ?wbhEHb<Y%yA{{Elg(2Y+=Zhbj&>(iZg|E|6I_vpjFdqDK=->rB59(?$B<ITTY zZ~pxs1*0J_OhZ8NCkrD30}q1^0}z1nMEhut7^YD@>Mf!|fa4njH;0VJh6M+knS?cB zPHb4%*e;;#HOFJ)qN9uw##whxY+QW2U%^~S!gJG-lan>vg(6OFT6&tnAo<iB&IQZP z&bBCib?4;f<>%)+G@q04+Op!}VvosMv8T4Iyu3VMvDaL$t*frCj@X=a_te(a*ViW; z?vnN1w&v#MjLWNHPj6d$dwap-Q**tyue-au;`6J!r?;=azrTT*Th3?4hKGkcgtg<& z?AZAD_ylF|c|JQgJv}|cIQ!n2otvMZU*Oy==eujm%gZZ*SI3>*we|J&4aukH`R?BK z_V$kA*Z0ou-v0jnfo5)bzdbuXK0Yy7JO13Bou8jySnNIDZ||<JuP-w*F<1it-n55i literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-medium-focus-corners.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-medium-focus-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..c5f926b10a44e62f20d266ecb92b57cdeda8310e GIT binary patch literal 1622 zcmZ?wbhEHbWM&Xz`2L?^)0q!PZhhHv<<o{UpHAHSa_Yg4QxCpvIrm}HxevRpd^-2& z*O>=D9(?+D?$M7&pZ)>C|4}d+0>dZ-6o0ZXGB5}*=r8~QC{MJH=7?bwy`x?sIRrS2 z8Q3{W95y60G;^@>H8?OZGP3ds2)G0=G%>Ss%NQ^;JV;<<WK_^$DEI)BWaE=)5D;Ln F1_0Ui{v!YY literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-medium-focus-sides.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-medium-focus-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..ca5fe9828e883269e8df3c6ddbb2d29ca80c29b9 GIT binary patch literal 1897 zcmZ?wbhEHbWMi;m{{Ej~!<kP<Zhbj)<I|mY|Bl@HbnVr@M<4#(1EP2TZoT{W;KRRL zZ~onQ^Y8yC7!85p7y^nvSr{1@co}pUfB=*y+DCK5aE#|sKM@-O9RC>@B_uK!8XTI~ zL^VPZJ~SL==9PCV$tY+z$|$Ozwq=K)as!Kkumq2$kVE5SRvxwp$pZ@-rZdGHn({M9 z)qA#f;Wm~7Md|)?9V+jM%$mI7{6hO)Hs4bsD=#ndU1(>kwN>ltYVYM~TX%`BzO+7Y zZ`)fhu{B|vV=i{tT8HJ{+*WY&l&|#kcXzgyeSUQJ_qV+Gz4bqL$;N~iJUr0B`8$+n z#>R(7+hx`Jd?YtLJvP-azHZG<<LBomo40?nk=pX)@=V|5dS|7!W?WyAxVmm{RN3oW zJ2GGQ&7J-I-OYW?%<^@=%L^YK@4Ov%FS_#clM6GYr}xd-_4(!bweIK7$?pFC>h8gM zxBYtiY<_;eeSEq3e!0EhzCXNsJl|h_U)Aq7A5ZVMkFWpxkKvPgLLH-!#e+IFwT=f( d|7CA1XyP||aleJtD<ZK)BIw0}6h=k{YXC`Tpa%c| literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-medium-over-bg.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-medium-over-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..fe97ab427f5c93e89c104111d92117aa3036244c GIT binary patch literal 1817 zcmZ?wbhEHb<Y%yA{{Elg(2Y+=Zhbj&>(iZg|E|6I_vpjFdqDK=->rB59(?$B<ITTY zZ~pxs1*0J_OhZ8NCkrD30}q1^0}z1nMEhut7^YD@>Mf!|fa4njH;0VJh6M+knS?cB zPHb4%*e;;#HOFJ)qN9uw##whxY+QW2U%^~S!gJG-lan>vg(6OFT6&tnAo<iB&IQZP z&bBCib?4;f<>%)+G@q04+Op!}VvosMv8T4Iyu3VMvDaL$t*frCj@X=a_te(a*ViW; z?vnN1w&v#MjLWNHPj6d$dwap-Q**tyue-au;`6J!r?;=azrTT*Th3?4hKGkcgtg<& z?AZAD_ylF|c|JQgJv}|cIQ!n2otvMZU*Oy==eujm%gZZ*SI3>*we|J&4aukH`R?BK z_V$kA*Z0ou-v0jnfo5)bzdbuXK0Yy7JO13Bou8jySnNIDZ||<JuP-w*F<1it-n55i literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-medium-over-corners.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-medium-over-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..c5f926b10a44e62f20d266ecb92b57cdeda8310e GIT binary patch literal 1622 zcmZ?wbhEHbWM&Xz`2L?^)0q!PZhhHv<<o{UpHAHSa_Yg4QxCpvIrm}HxevRpd^-2& z*O>=D9(?+D?$M7&pZ)>C|4}d+0>dZ-6o0ZXGB5}*=r8~QC{MJH=7?bwy`x?sIRrS2 z8Q3{W95y60G;^@>H8?OZGP3ds2)G0=G%>Ss%NQ^;JV;<<WK_^$DEI)BWaE=)5D;Ln F1_0Ui{v!YY literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-medium-over-sides.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-medium-over-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..ca5fe9828e883269e8df3c6ddbb2d29ca80c29b9 GIT binary patch literal 1897 zcmZ?wbhEHbWMi;m{{Ej~!<kP<Zhbj)<I|mY|Bl@HbnVr@M<4#(1EP2TZoT{W;KRRL zZ~onQ^Y8yC7!85p7y^nvSr{1@co}pUfB=*y+DCK5aE#|sKM@-O9RC>@B_uK!8XTI~ zL^VPZJ~SL==9PCV$tY+z$|$Ozwq=K)as!Kkumq2$kVE5SRvxwp$pZ@-rZdGHn({M9 z)qA#f;Wm~7Md|)?9V+jM%$mI7{6hO)Hs4bsD=#ndU1(>kwN>ltYVYM~TX%`BzO+7Y zZ`)fhu{B|vV=i{tT8HJ{+*WY&l&|#kcXzgyeSUQJ_qV+Gz4bqL$;N~iJUr0B`8$+n z#>R(7+hx`Jd?YtLJvP-azHZG<<LBomo40?nk=pX)@=V|5dS|7!W?WyAxVmm{RN3oW zJ2GGQ&7J-I-OYW?%<^@=%L^YK@4Ov%FS_#clM6GYr}xd-_4(!bweIK7$?pFC>h8gM zxBYtiY<_;eeSEq3e!0EhzCXNsJl|h_U)Aq7A5ZVMkFWpxkKvPgLLH-!#e+IFwT=f( d|7CA1XyP||aleJtD<ZK)BIw0}6h=k{YXC`Tpa%c| literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-medium-pressed-bg.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-medium-pressed-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..734afa8a9f0f40208e8cd539ad27a5c866cbac67 GIT binary patch literal 1849 zcmZ?wbhEHb<Y%yA{{Ej~!huiIj(nMN=*y%-U$&ijvg^XL35UM)9Qe|A;LC&qU-n&i zvgg8+UFV+cIP>KHC>RZaVHX05KUo+V82A`;7=QqjC)!7I#ITFxQ4f(20v!JtI5}iI zHY7ARa|mn2ocN&7+%BN(HOFJ)qN7X_##whxY*aqRs^HuuvvR?blan=qSH+yXl<dx6 zkbG)R<$`5rXIluqxN~yz^7HepcsXRfwye0g*oj>u_SBY@mzR67dd&6Oy6Woch|O#_ zPHkO%eSN~=E?MtwYi@4NxV$R%^tQFPw--D<HP?Ily1Tn8KEJwqdi(nO`x}_K<$QK* zczC!&SUc{_j*X9xPf+%r=d*Lu)6+AIv+teRx%v6|1<u`azPq-(yu2cKb==uqTVG$_ zkbHWc@9u4HZ|^96eedk<?eFg&Xy%sp+q2{2;}es$<InBc`T6;U#oqJ%_U`)n`o`w$ p`{(xV{{H^K;chW`|9yLYetvOzb^Q5#dw+lb@c8unerp8=YXD#&k0Ag6 literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-medium-pressed-corners.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-medium-pressed-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..049c3386b55fcaf9c5029cd2d0896e52a26010d8 GIT binary patch literal 1619 zcmZ?wbhEHbWM&Xz`2L?^-i~_<_S~Cx=*zra54N3pvf{v_X-B^N`}c3fp$97tJXm$; z(X0b+)*N~Ce-w;{z;Fx!#h)yU3=F&sIt)Mn$`kFQIbt}*^QfPQ4FL`V26he=hYbrF vn>kqdG6EPJ7};1D1Xva<U}R)tRb#SPk<iG{Ce6wsuz|smfrXceiNP8GOh@=* literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-medium-pressed-sides.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-medium-pressed-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..76649910a2ff308ec142c2f9b9ee8891ebd02b8d GIT binary patch literal 1929 zcmZ?wbhEHbWMi;m{{Ej~!huioc0HJK=*y%-Uv`~)GVREh35UM)9Qe|A;LC&qUv^!1 zw(r7|Jr|zrIP+xNnJ528!Dt8!uMklD$->CMz|Ww=00f{s(LS0ZhF1)a`i8U+;P}tL zY$9<(p~0bvjZ=)rVSyrJGoQRs3CF}oN7~pVGg1-?8jrKe+P8hl2x#<VWn)~ylJKG7 zG&7sv2^WFlWsb}iym!uI7Brk^w5^vCaR@nZVUc^MnyJ)+hRaNB^PO^knPi2o@>`pB z)GBn<wRPcpi~f3*t%=;2ad_3;S<~J|ZOD6kXm0d2-MgFfUq3sl9iAV*ul(&V-aX+4 z4-R(lYnz?fvElLlUPXH~ot;KcPj@OO$JtmGr=Oc<+s?K(a`THz^L;1VovqrMeRV_d zX*t>1-*T>OD}H?M?k=<U*SA-*v#*P;D15ZPR@&b##`4qC3-i6p{r2ws`uOU``1Eyq zt-rs&xVbrP{yy89%1`&sE_b(&+w<$&^Shht{p<JD{`~Ryb^QGK|LcDIW94|z@b#<v zgWCV1GZdPbv~DOgvrD~5XyNwac-SHlw_;(dOxTNu&9Y5D6kC<1c|7WrZ0mT`ro8Ni RQn%VJ3FRJbE-?WHYXEQ8oUs4^ literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-medium-sides.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-medium-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..1cb48177807c7497b1780a5965c2f135f83a3973 GIT binary patch literal 1907 zcmZ?wbhEHbWMi;m{{Elg!i5XZo;`c?=+U=t-<~{q^5@T=U%!6+`0?ZaC>RZa5fB23 zKUo+V7&sVo7=QqjC)!7I#0ZG?Q7_^Q0gnF+j3N>d3=IxVY@A{?76yt=ZQP<(IUENX zT$$PQlh#xiCc85*JMkHKEKp%=W(wkRSUD-xYq~b$ik{3*Dh;z#e5H5}7#}z{&%ToF zE9V0Bz{Sp!#aMTRWL#eCGtn+oYirh()qZQ!j&hZ*zP>JDWs&IbsW~@RW^A1on!PRe z*2etP$6~pszm3^m_W9af?eP5geI@_7_<SVv6Am{Eitjsp<9*WcE@g8&8_U9{$EPU9 zPg}FI_}Tesw(V@am0Mn3T46aktaeuEtFs$i_fLDftL)9y?a|NY_0Im5cY9y+ce!=Z z6@`!X^lST{ld&jzetMz#f8V=5N?u>u9A3ZAw(9%qI~(f*uIufq`SJPQ+2!v1b$fq* z`*3pe^#Akf{(Ss#_5Stz{q_HT{=X{zppM~_`GR^jwTK5zOj<V-npx~L5?e%+I2N`F XCq+DLl(E{euwAO{#=|T|Mh0sDo8+P| literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-small-bg.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-small-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..c18f640da0875456c237cfbda7f023f7a1ce82f7 GIT binary patch literal 1791 zcmZ?wbhEHb<YzEo{{Elg(W6ICo;>;S<Hw&re}4V?^?wwMhQLS)0mYvzj0_B{3_1)z z0Ll~Xqd8(E#s8>Z(L;da4g))fjK_ur2b(#BwRAidEIiyUpzM{Sv0%~BZVBV8H5>~T zAMaOi?vnA`q;i5mBY0KJ$xTa7Pd7+DHOF)Fva_=-ieKG1xq12d`3}uovR+$OTwLri zSu6I`mX(*62Q2oQ>$P>&)zuN3v+kbSy88P1gu`93-rLsP+?;WFRqW|)Yj1BaczkNE z_x5#ncUOFVb@%l4_4oHTFmucK?AY+|aEGvV+?gF4A0MBf>^;wC=ccEpXBcPSJF|21 z^YaUwyXAa$ZFzZlMeyplv%9vwzP=&(^gQ3)+uq*ZQT+Pe+1=aU-#_5a&ca{~03>{Q A>i_@% literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-small-corners.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-small-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..76f32bd594fe44200d4e1e8968351af8c9a6863f GIT binary patch literal 1614 zcmZ?wbhEHbWM&Xz`2L^a!i5XZo;|yF@7|RwS6;k$@$cWiSFc`Ox^(Hzojd<W!Dt8! z_YhG0$->CMz{#M)00f{s(LS0ZhI^ck`VU_SaA-3ya_Bg0NN8y0U}f?UNN`|aW@QtQ caZqq%WM)ybve8g*U}BP%<zk35RA8_M03!+ji~s-t literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-small-disabled-bg.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-small-disabled-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..fd57be5a598e64d0d80d1990786d43bd0d1f8f40 GIT binary patch literal 1791 zcmZ?wbhEHb<YzEo{{Elg)~#E2?%etC;lr0NUp{^M^nVnLhQLS)0mYvzj0_B{3_1)z z0Ll~Xqd8(E#s8>Z(L;da4g))fjK_ur2b(#BwRAidEIiyUpzM{Sv0%~BZVBV8H5>~T zAMaOi?vnA`q;i5mBY0KJ$xTa7Pd7+DHOF)Fva_=-ieKG1xq12d`3}uovR+$OTwLri zSu6I`mX(*62Q2oQ>$P>&)zuN3v+kbSy88P1gu`93-rLsP+?;WFRqW|)Yj1BaczkNE z_x5#ncUOFVb@%l4_4oHTFmucK?AY+|aEGvV+?gF4A0MBf>^;wC=ccEpXBcPSJF|21 z^YaUwyXAa$ZFzZlMeyplv%9vwzP=&(^gQ3)+uq*ZQT+Pe+1=aU-#_5a&ca{~02ont A`v3p{ literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-small-disabled-corners.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-small-disabled-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..9188a88982fa907f2d366ef105f3299afc642c74 GIT binary patch literal 1614 zcmZ?wbhEHbWM&Xz`2L^a-o1Md9z1yU>eZV!Z{EFo_wC!afB*jd9|fZ!Ffu|w@h1x- z0|PsQ4g(N?@<jV+ju;s+Kk7^DA;6){z|5iJutA}rnS+(hLP4Q{fr*t#prm5K0R~24 VW*L!!2@BmA<k?vy3KSF=tO2`R1~LEu literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-small-disabled-sides.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-small-disabled-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..850df2b37ab36266223b0ba2d4657a1a2fded16e GIT binary patch literal 1878 zcmZ?wbhEHbWMeR3{{Elg)~#E2?%a9s;K7FvAHIC~^6As3|D#|u1V&5<DE?$&WME)p z&|v@qP@ZTX%@HFe@<%<2B?LJBGq4IscsMjTG_i4t*;rgiXl!SdaWb)3@Q9&HjF;&K zhl8?vzqDhSh`@prhGsSYNhY0>o}QYdo47AzrjeTObkp=(cUEprKR4f^`4o#)$cwX! zJo>esdX}v8U+lBc&R1&ctB~cstCObA`nu}c`nbbovZuGM3Eh-_HqZBT+1lt08TY$F zxu?Iov#s>wy{XdX`tiGKzyFfe*-`M|aD(t`*F6y*?;o2W@2z&GVpHPrDTeWVb7p={ zJ3ZC9`I^kH%`Yx53!Wb5yK8Iuwe_+6eZJM(a<6R2Up=jN_V;(U_BQ^%HrLvs@cz+u z>G*YfDnC6xv6#EvF80^QS2xyYr~B3JE`ELIV7>8qxp{vo-rqgFSbYA!J-@!cd%S)A o`F;B;e|>+u{`~p+{q;Y7{8gV{#~@^pP|vDVv7q57D+_})0F%I<N&o-= literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-small-focus-bg.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-small-focus-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..bab2a903adcacb5cdf45df1ce6f27a51bf9e93aa GIT binary patch literal 1800 zcmZ?wbhEHb<YzEo{{Elg(2Y+=Zhg7&=HG)4|L%SGcjw)|TR`;Y-~UlC8UiCA1QdU= zFfuT3Fz7G<0Vq$jkLHLG5bdL0#2Eq{PZ`)bWIQ%3IM~d@sS$Hx!@|SuT-+XWJT@*m z+AYMJap%Ow#SQ%m&Rr}Ho0goMtP#8_=H#ZQrx*;9PtEb%yzK03i{e*zPHtX)e!fF9 zm#o*86&DwKOxB7$wPoey<pGPm=6Y>ib#-;b=B&G?wywUuKH+eetoODxH#cWoUKM+K z+uGaP3m%`E>%D#5-Q5+RU)?>uef|CY4b0qfK07u%Jlr9y9d~BO#>dAeD0|QI*}3WI z=^4h^_s;Cx{QUd^=WaRQU0YsWUJ<-H?(D9uudi=NK0VKO_qMmUcND+AcXs#o_xBGp SbIbef+41r52}^bs25SI|GJbpj literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-small-focus-corners.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-small-focus-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..a0ed287cf33e4de80508cea3d5a20ab1864d94e9 GIT binary patch literal 1622 zcmZ?wbhEHbWM&Xz`2L?^)0q!PZhhHv<<o{UpHAHSa_Yg4QxCpvI`?7AxewdUeb{y7 z)44~#&OG?>;M2czkA6J*^bZLBkAl$<7%m~8_>+Z^fkBW#hXDvcd7^zZM+}#^9rXt} zA;4kGz|K+QupyzLnS+(D!{Gr#BP&0jfK7nHp=MSdITMe92MLUfj7kO!1p<x?jBElD J9RdOj)&M&l{>T6T literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-small-focus-sides.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-small-focus-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..f3f673c7d9163e62727c75f3bc726f871a57a670 GIT binary patch literal 1879 zcmZ?wbhEHbWMeR3{{Ej~!<kP<Zhbj)<I{~d{~mn!ckjc$JMaG80-`tn{*Qvu5E$+u zp!k!8k%57eL5BedKzX8lG)D~gI3M*Nz7XK}&%h`k;la@0(8R{Ap);Xip(C>ZuT4+J zhlZofZ0s2_2>}i6jI#D^Uos3DPBN(aFEiOGq}ni9FLB$PpFyd<)6A1^O_@1a?fiV} z=0_}6AuG-;^61z4nmHviXt{T_m#WlMtt+d8XQ$Qf+PW%ib?n9_+231r!Z)R#t@1rx zwl;cW*28U6f19m|-BSAT(%owFy!$)rKmWQaJwyND;bviGw>=RX9~_$??``&GMp4S? z$=um#b7mSpJ3m{yeV@&)%^ByHIxdc@-DR42ZGG(QKHutXxmPz8UcXjry*2;F-p0>z z|E$YD-aXzdEk19K#pmaz7b~~h#qRp_>c;x)^1Qj#W$$m#?lxI2H_ztB=f}I3|KGQ7 xPu1tQ7Z1<>zt67v*Y~%(&!4Z~U;pzL<Bj<Z|Bt3C)UhggJZNHnCMLjO4FKM)n$!RQ literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-small-over-bg.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-small-over-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..bab2a903adcacb5cdf45df1ce6f27a51bf9e93aa GIT binary patch literal 1800 zcmZ?wbhEHb<YzEo{{Elg(2Y+=Zhg7&=HG)4|L%SGcjw)|TR`;Y-~UlC8UiCA1QdU= zFfuT3Fz7G<0Vq$jkLHLG5bdL0#2Eq{PZ`)bWIQ%3IM~d@sS$Hx!@|SuT-+XWJT@*m z+AYMJap%Ow#SQ%m&Rr}Ho0goMtP#8_=H#ZQrx*;9PtEb%yzK03i{e*zPHtX)e!fF9 zm#o*86&DwKOxB7$wPoey<pGPm=6Y>ib#-;b=B&G?wywUuKH+eetoODxH#cWoUKM+K z+uGaP3m%`E>%D#5-Q5+RU)?>uef|CY4b0qfK07u%Jlr9y9d~BO#>dAeD0|QI*}3WI z=^4h^_s;Cx{QUd^=WaRQU0YsWUJ<-H?(D9uudi=NK0VKO_qMmUcND+AcXs#o_xBGp SbIbef+41r52}^bs25SI|GJbpj literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-small-over-corners.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-small-over-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..1f89ac57934151efcf9499f1eb8755ff75496bc1 GIT binary patch literal 1621 zcmZ?wbhEHbWM&Xz`2L?^)42~vZhhHv<<o{UpHAHSa_Yg4QxCpvJNIGBxevRpd^-2& z*O>=D9(?+D?$M7&pZ)>C|4}d+0>dZ-6o0ZXGB5}*=r8~QC{MJH=7?bwy`x?sIRrS2 z7}z;V95y60G;^@>H8?OZFtYM72(Sb&G%>Ss%NSTNJV;<<WK__xD44K>ftj7hfrEp= F8UO{${b~RJ literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-small-over-sides.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-small-over-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..f3f673c7d9163e62727c75f3bc726f871a57a670 GIT binary patch literal 1879 zcmZ?wbhEHbWMeR3{{Ej~!<kP<Zhbj)<I{~d{~mn!ckjc$JMaG80-`tn{*Qvu5E$+u zp!k!8k%57eL5BedKzX8lG)D~gI3M*Nz7XK}&%h`k;la@0(8R{Ap);Xip(C>ZuT4+J zhlZofZ0s2_2>}i6jI#D^Uos3DPBN(aFEiOGq}ni9FLB$PpFyd<)6A1^O_@1a?fiV} z=0_}6AuG-;^61z4nmHviXt{T_m#WlMtt+d8XQ$Qf+PW%ib?n9_+231r!Z)R#t@1rx zwl;cW*28U6f19m|-BSAT(%owFy!$)rKmWQaJwyND;bviGw>=RX9~_$??``&GMp4S? z$=um#b7mSpJ3m{yeV@&)%^ByHIxdc@-DR42ZGG(QKHutXxmPz8UcXjry*2;F-p0>z z|E$YD-aXzdEk19K#pmaz7b~~h#qRp_>c;x)^1Qj#W$$m#?lxI2H_ztB=f}I3|KGQ7 xPu1tQ7Z1<>zt67v*Y~%(&!4Z~U;pzL<Bj<Z|Bt3C)UhggJZNHnCMLjO4FKM)n$!RQ literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-small-pressed-bg.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-small-pressed-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..7703b64b77bb40ce58128b0db0af35928cd775f7 GIT binary patch literal 1811 zcmZ?wbhEHb<YzEo{{Ek#=fIaKhrUcY^ku@KFFVdW*>~Z|gacpt4t&{j;mMwJPj;Pq z@_!VJhQRO*0mYvzj0_Ci3_1)z0Ll~Xqd8*u#`dVs2!{a22L?_K8IKJM4mLB1YQ&t_ zpxD$dpzJlr<6~lDw}f%lof8`uyE7;_cga*PSaNc*2K$Pblbe>Fp034uVvgtLWoKs_ zF~7KTa`W=@^BtPGWWBbmxVYG3vR3S=Eh{fC4_NFq*K6yltE(e6XWc!ub@lc235UC6 zy|=BoxjEzVs@T)p*52M;@c7hR@9pdE?ymU!>h9_7>+kPxVCI(d*|Fi_;SOQ#xHCI8 zK0ZD{*?XSP&P`8G&oIuucV_42=jRtVcgy+i+Vb-9is038XLoIVeSJgn>3P1px4pf+ qqxki`v%9yyzki^aTi$Qaj*pK|OxBJ+w`b?)=NA@x@0Sr^um%8jj(Q*f literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-small-pressed-corners.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-small-pressed-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..b36e111532e61d73125488c344003442276d86ce GIT binary patch literal 1621 zcmZ?wbhEHbWM&Xz`2L?^-i~_<_S~Cx=*zra54N3pvf{v_X-B?nJM(14p$97tJXm$; z(X0b+{{8#6=E$S}qhK@yhFu6K{$ycfVBllWVE_V9o@gJ<5yLK$M?FMB2yhrNuyd$5 zd}wfF<`CwRd9Z+?fr*!c!GOb|k(r5?OJ)KG!@?$3CaE$J0fz%jEQ|sc92^YR0LiEK A&Hw-a literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-small-pressed-sides.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-small-pressed-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..d322e2c7306f42ffdba5eb8bdc82c04a6a3e9325 GIT binary patch literal 1892 zcmZ?wbhEHbWMeR3{{Ek#=fIbFyB<tB^ku@KFFVdWnF3@S_|kXa%f1Uw_5jhjC%eu) z`9BIqLtvPOfZ|UUMg|5R1|0?<0Og7H(Ht>Mqk7a^M1=sye+Fg&2@iz^hbA_0jhF<3 z#=|VU@=`7if(MUuiEB!+91v_c$gIFGA>&YV;KU?0))gWXik2Q^GT`3RV=0{GJCiZ# z(Ur>0>3*~9bJ^~4PI(?M-)*v3tX4>7@G_VAUcFwTnjx!$H-_1sy81F~ebnKyy;f$~ zH`k{eoF}?^TkfsxX?Kscc9*TYyQ|{nrK{D`^Y3kKc=}KD&Gv!^d)t4j$@R?mkaW0D z*?iubh@#X}J^I<_&PW=iouBPkUgvY`Q^w^*!PEcku_}3ec}?K{Fx}l{Z*H&4eSVC$ zdi(o(2Qoj4{hM9!;pT}_`S83wm7gA-?{<&poBOlm`L)gA_w{0{%imqu-|finFK1ox z`SHc+`_J9`UG@Fd<L&nL_O*Y%e|dO+`uhF#|NejbDX!4)gEu3gk>iv5f+lvO84v0N SxPB~X;R};^7|O`VU=09P5R<6@ literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-small-sides.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-small-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..52a797ee93f3aa44dce044d102b65ef51b7e2617 GIT binary patch literal 1873 zcmZ?wbhEHbWMeR3{{Elg!i5V@o;-Q<=+TcKKmPpr^Xu2I|D#|u1V&5<DE?$&WME)p z&|v@qP@ZTX%@HFe@<%<2B?LJBGcXEBcrY|LG_i4t*;rgiXl!SdaWb)3@Q9&HjF;<% zhJ&(uGouq5gXW|ZkIBl69X>mSmU>TBO`JF7q*0ppEdBgfTTT`~^P6v*%_OU}CF9%z z_f9p_uFWs~m-$ckD(#xGDrj}UYPX|SrK`i&CakX$l{VA9xjF4}neJ|}+~}<_kNaA! zzpstmne%biRd4hB*nQ>yxxRT<yiYjX`dcY(&5ptcNBSk*%XoHtN<1}PJ$oC^%*`q1 zXIQ7R?XBFBd2xmP{II!JCa<rrOP-!*D_xd*b4l^~V|#yZ%fGv&@wV7G>x%qG`}?)c z&(-`WdVaRsdA{D>s!uPjuT0<Gx94~9yZhU_^}hGb-Bb4Y!RdB)`?|f=Uq77RKV9D5 g_V4d+pSQ2yFJE8(_YJFsd;{~p^aTw!SXmgX0pX~V+W-In literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-corners.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..f19715a3e6339b5eef2e557a3bbd7ce11221ee9f GIT binary patch literal 1585 zcmZ?wbhEHbWM&Xz`2L^a-@kwVN5N<ajMNZN{K>+|z`)3$!vF-JJkdUyBSvak81*+O Y1UUE@m^oxTHY_;U%pt7C!@*z;06j7TnE(I) literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-disabled-corners.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-disabled-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..f19715a3e6339b5eef2e557a3bbd7ce11221ee9f GIT binary patch literal 1585 zcmZ?wbhEHbWM&Xz`2L^a-@kwVN5N<ajMNZN{K>+|z`)3$!vF-JJkdUyBSvak81*+O Y1UUE@m^oxTHY_;U%pt7C!@*z;06j7TnE(I) literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-disabled-sides.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-disabled-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..51698b0b77c71e821200c632bec55c3857ae77ac GIT binary patch literal 1596 zcmZ?wbhEHbWMfcb`2L^a-@kwVN5N<ajMNZN{K>+|z`)3$!vF-JJkdUyBSvak81*+O k1UMuam^oxTHY_;U%pt55b7I57!|ejfUUOa;C@@$908dy6$^ZZW literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-focus-bg.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-focus-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..f182b67f326a4a369817ffefc56acfbc3cc85bec GIT binary patch literal 1851 zcmZ?wbhEHb<Y#bV{{Ej~*QF18u6)^Z>C+w%<I{x~|E|3FckR``OE3Oic=qqcn}1hc z{X6&M&w*=S{*Qvu5EynLp!k!8k%57aL5BedKzX8lG)D}(NFMbN2_eAopFxyE#$&^R zgUuYmauFvsEIiyUpzJlrBk)mEw}f$)$$^cFkM}D$7r8iWT5@u-M(`w^1Dlqfo^FtQ zYR<_8%g)ZWkbZIJ<Yx7T`3}uovR+$OTwLriSxxl7mX(*62Q2oQ>$PCj)zuN3v(`#2 zSbcqc!r?Ai?`>;tZqB&8D)#iYwYRqyJU%tod;7Y(yDL7wx_f&2`uqDEn7QSAc5HZf zxI<Vw?#zyjkB?7K_MYdnbJNq)GmNwEo!Pnh`S}IT-EzLWw!FN&B6xM&*<D*-U*C{? zdY<p@ZEtVyD1LqK?C$OF?;mL9miODU<KyEKleOc|?b-SH`Gv*a^ZoYj`uh6D=Is0D q_U``v{=wmH33>m0dwza?ad~z8`F(qTfB*3K^nCyQ|9&<wSOWmErJQE~ literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-focus-corners.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-focus-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..e1f77cfa58b25b46a52023c208594437da2e9266 GIT binary patch literal 1621 zcmZ?wbhEHbWM&Xz`2L@vVabI(SH3Jc@T6_UrCV?Q-FWkF!>Jel{{35b;@PHC&lVkc z(zWW+hBGg^)?C_h?$x$)Z~l*h(GVC$A)xq^g^__lfI)`=2tawFeKbc5qv##=3dteB zVZ^}5q2jP1p`n?Bm8qd2fuV_=g-t+a0s|8xI}eAMM1etL1A~BsiNy|u1}0{19tRE% G25SJl81_~G literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-focus-sides.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-focus-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..f787cda78a67ba643097fa5f68e1d6e49fd7c721 GIT binary patch literal 1939 zcmZ?wbhEHbWMgn*{{Ek#VabI(SHA4J^x?p@FMF<hy727Zr5FD$y!dzJ#lIVG{#|?Z z@5-xx=brr8bLrEbOCSD^g3%BdULm0PlZBCifuBK#0SG{OqJ1<+46hg-^$lqu!114f zQAJ_~LxV#T8>g6!g@K|I1DBGPfkvT{ODCInMofZ0qdN;5Z-<FMQHtk8bx$UZ1DhHS zPSayFm~ryJgNE76JX|+49n}5jTQ`1VIZ&Jt*vv9X$YIr#%%J7oj2gXC3$hrR!`3sM z=(?J9eO3I{qPwrA>O^c#I^7q$dfVH`ZTWYX^?H}DySt&{;<MK3@b&Tgs-Lp0v)-Zq zV1JXKa9EDT$A`!Jl=a(eB8wiMnxUVqcV=c``l;Er-E4nv7QH;P+<CHG?krQF(b4PY z>F)lPeQSH}@pEUZx4*w~Ad&s}-{>8Mj}Dirzu&vZ;?v_(3yr70v-$P;^|j6Z$M?ln ze|`60e|JH?-@K~IcaP7mcCWuz{rkiF%bVlh&$Fxf{pt1j`|J1rul@J`=k)jn7QT#x z8jeTP6&l#JUMMtkb4esN3Y&2}Y!*uLSlA|(R`IZ1u5E{6hjQ1A#7>QQE0S7uif$-% aYVXoe?$MtWk=$i|%;Ry7nU;hAgEauy9;WgD literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-over-bg.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-over-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..febf0a6f9841268ed5f254a4a89664814b0ae556 GIT binary patch literal 1851 zcmZ?wbhEHb<Y#bV{{Ej~*QF18u6)^Z>C+w%<I{x~|E|3FckR``OE3Oic=qqcn}1hc z{X6sI&w*>7{*Qvu5EynLp!k!8k%57aL5BedKzX8lG)D}(NFMbN2_eAopFxyE#$&^R zgUuYmauFvsEIiyUpzJlrBk)mEw}f$)$$^cFkM}D$7r8iWT5@u-M(`w^1Dlqfo^FtQ zYR<_8%g)ZWkbZIJ<Yx7T`3}uovR+$OTwLriSxxl7mX(*62Q2oQ>$PCj)zuN3v(`#2 zSbcqc!r?Ai?`>;tZqB&8D)#iYwYRqyJU%tod;7Y(yDL7wx_f&2`uqDEn7QSAc5HZf zxI<Vw?#zyjkB?7K_MYdnbJNq)GmNwEo!Pnh`S}IT-EzLWw!FN&B6xM&*<D*-U*C{? zdY<p@ZEtVyD1LqK?C$OF?;mL9miODU<KyEKleOc|?b-SH`Gv*a^ZoYj`uh6D=Is0D q_U``v{=wmH33>m0dwza?ad~z8`F(qTfB*3K^nCyQ|9&<wSOWltv7BE3 literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-over-corners.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-over-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..e1f77cfa58b25b46a52023c208594437da2e9266 GIT binary patch literal 1621 zcmZ?wbhEHbWM&Xz`2L@vVabI(SH3Jc@T6_UrCV?Q-FWkF!>Jel{{35b;@PHC&lVkc z(zWW+hBGg^)?C_h?$x$)Z~l*h(GVC$A)xq^g^__lfI)`=2tawFeKbc5qv##=3dteB zVZ^}5q2jP1p`n?Bm8qd2fuV_=g-t+a0s|8xI}eAMM1etL1A~BsiNy|u1}0{19tRE% G25SJl81_~G literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-over-sides.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-over-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..f2c097f400f57f3f16c3d16c2dbbfd8b25ad56b0 GIT binary patch literal 1939 zcmZ?wbhEHbWMgn*{{Ek#VabI(SHA4J^x?p@PkXL>y727Zr5FD$y!dzJ#lIVG{#|?Z z@5-xxXP*4obLrEbOCSD^g3%BdULm0PlZBCifuBK#0SG{OqJ1<+46hg-^$lqu!114f zQAJ_~LxV#T8>g6!g@K|I1DBGPfkvT{ODCInMofZ0qdN;5Z-<FMQHtk8bx$UZ1DhHS zPSayFm~ryJgNE76JX|+49n}5jTQ`1VIZ&Jt*vv9X$YIr#%%J7oj2gXC3$hrR!`3sM z=(?J9eO3I{qPwrA>O^c#I^7q$dfVH`ZTWYX^?H}DySt&{;<MK3@b&Tgs-Lp0v)-Zq zV1JXKa9EDT$A`!Jl=a(eB8wiMnxUVqcV=c``l;Er-E4nv7QH;P+<CHG?krQF(b4PY z>F)lPeQSH}@pEUZx4*w~Ad&s}-{>8Mj}Dirzu&vZ;?v_(3yr70v-$P;^|j6Z$M?ln ze|`60e|JH?-@K~IcaP7mcCWuz{rkiF%bVlh&$Fxf{pt1j`|J1rul@J`=k)jn7QT#x z8jeTP6&l#JUMMtkb4esN3Y&2}Y!*uLSlA|(R`IZ1u5E{6hjQ1A#7>QQE0S7uif$-% aYVXoe?$MtWk=$i|%;Ry7nU;hAgEauC@}}wl literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-pressed-bg.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-pressed-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..37a8a7a33ec23c6a7f242016f61547a0dedc1a75 GIT binary patch literal 1846 zcmZ?wbhEHb<Y#bV{{Ej~%8@T~PJEej?8~fUU-n&ivf#vr8OOfNIPzuMkuL`>Jv(&e z*^w*H4qbY7;L5WDm!9l7_hiq7C;vymXb23K5K#Qd!pOiN$e_aj1fV?8KAIzjOWcn7 zgPaiH_|L$}A>*-O!NFz@VXc@G6B3)+1(dz!cx+sBv|C6t<IahVi;wp!ICs6-v0%x` z$r{0{bSx(&H%>Q5KE>j&dD+?77R8rb4s2e2e!fHVCliM)D=sefn5-3RwP5At<pGPm z=6Y?_y222#IqUAJt*fuEPdMBq>%DEw&CMB?SH+&*w)Xb+g2$)kdT(EMcX!3-S9ecu zUw?mp12ear&yEcb4|fP_$DP@+@$vBq%HH#Qc5ZrldWLcKy)!#EKR>^~xm(V6*Or%; zR|Kz)JG*P^>+2hmPtWt+z3uJo9mTKjo!!0t{rv;Y-12^Vc6@w%VzPGpxjj2SKfkcp xd%oY^U0+|{*qnX;+}_>a-#<9qEiCW9Z_m%qFD|c+KfiD9@9!Uuva>K)0|1Rqjhg@f literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-pressed-corners.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-pressed-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..02e660e99868818f578dbd47fd8f5bc4f7861461 GIT binary patch literal 1623 zcmZ?wbhEHbWM&Xz`2L@vYSxhjJFd;!cByX8kzMDW%scj_Z_~YbC%!D$bz|O^E3>v- zYM6Iy&bBLkTORB=_hinAFaQ4i`#%asLtwasfZ|UUMg|5!1|0?<0Og7H(Ht>c;&#*@ z<b(i+2?HZXiNl5mjm;daOdSgn8kksE*aQj;8XQ@e7+C~j3?3*nv#~01L=-GI(8R<h Mq~jr=sK8(i08$+C`2YX_ literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-pressed-sides.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-pressed-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..dc7e3c62db6f20cac8e46a3accaea9ab0a3b7110 GIT binary patch literal 1933 zcmZ?wbhEHbWMgn*{{Ek#YSxiCC%()$@@3zJCv%Q{S#aXRtYcqh9Q!iu$d@Tcz8tvp z?9i2GN3J|Obm`fFE6)yGda~!-lRX!n{2v9QAuudLK=CIFBLjmFgAM}_fbvB9XpR^b z5j*M$GDCplKLaC=gat!`LlYaPn2m*jqEj2Us7FXbfs!kOn6{tEjs=gI`s5tTM1Be~ zG*9N?S>(fcAo(Pd0k?#UgYdyKv&=J}ZQ*oi@MmPJXL|ed@`A?2Y&}Y$RZ}v97#J6^ z8EBMhg{%zO7}q;%>g%x8p}U)|N_|^>V{_W&X|dkh)`oA(zuVXAUA``MOTqh9Q@f|X zzqhNF@&DD?<_3xTTiK=K*6b*Jbi6~EyUix@)5B9U^t01^DmN#ep5s`5PG;7ZjPrB7 z7mLmPwdK|Ib;;Z3o!zx9^Vas<_2<r3Z_mH6qyF?Y-Z?)$+&el^UR=(`viR}Y>DKf0 z_Evp)ePOfq@qMwsKfimhzdLLBx!OIY@1I<p&p&_O->T0~Zyyeq|G)Ro?{A;4-}m3Y zzxv<*pXTumEPNRXbqsPV<~MK{?MP_kb^5WOiPOzvVY8@T#=|zLvKbHCCE7F;JCwUB h5<4~Ktx#%LS@&XLr_P}tNnM7QEEac*vav8&0{~I$oO}QP literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-sides.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..51698b0b77c71e821200c632bec55c3857ae77ac GIT binary patch literal 1596 zcmZ?wbhEHbWMfcb`2L^a-@kwVN5N<ajMNZN{K>+|z`)3$!vF-JJkdUyBSvak81*+O k1UMuam^oxTHY_;U%pt55b7I57!|ejfUUOa;C@@$908dy6$^ZZW literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-corners.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..f19715a3e6339b5eef2e557a3bbd7ce11221ee9f GIT binary patch literal 1585 zcmZ?wbhEHbWM&Xz`2L^a-@kwVN5N<ajMNZN{K>+|z`)3$!vF-JJkdUyBSvak81*+O Y1UUE@m^oxTHY_;U%pt7C!@*z;06j7TnE(I) literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-disabled-corners.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-disabled-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..f19715a3e6339b5eef2e557a3bbd7ce11221ee9f GIT binary patch literal 1585 zcmZ?wbhEHbWM&Xz`2L^a-@kwVN5N<ajMNZN{K>+|z`)3$!vF-JJkdUyBSvak81*+O Y1UUE@m^oxTHY_;U%pt7C!@*z;06j7TnE(I) literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-disabled-sides.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-disabled-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..94256ef9c6221865cc142ec71613e5c5bf78062f GIT binary patch literal 1594 zcmZ?wbhEHbWMhzG`2L^a-@kwVN5N<ajMNZN{K>+|z`)3$!vF-JJkdUyBSvak81*+O h1USSQm^oxTHY_;U%pt55b7I57!|ejfd^{Ws)&T132fP3P literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-focus-bg.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-focus-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..012108c65350b311b1d533b794ef22839eec242e GIT binary patch literal 1826 zcmZ?wbhEHb<Y%yA{{Ej~*QF18u6)^Z<<p)^pY~n(bmPsxOE3Oid-d-M5WV<!;n}}) z&;ISX^x^*~7!85p7y^nvSr{1@co}pUfB=*y+DCK5aE#|sKM@-O9RC@(Ib=LGEI8QA zAuJbhV#C72?E=bPE)E+P9qnc_%DQu6<KpA}3eH6#4x5&ooU9Q%N#($%rKhJeB%PY$ zxp~>y*%rl@L=J3Tety0~GncH_m-L3k9+S0VPi<Lwd3nHMuen}ZS6y8lu{rDRsjaK8 zuTMDKCF{Ly&CSgjmsiD}-nRDk_JYT!=6Y{mcXxNi=T~=6Z(o0Ze*-hOoX?I84-a<; zYsa10vGMWo3CiB{e0FYndU}R&_PsMZH$OkWz`0w_ch{DemsbR@jyt<+>+9<ql26a` z-M#JY?H$Fh@15Pf{r&v|&D`>Sdv<($d}6Y8{JA|lKR>^)*n7U;-d$f`-`Jde|J>f) M-`^i%W@4}g0GRHJ7ytkO literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-focus-corners.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-focus-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..361fc557b6dd609fda0647360db26d76f7fa617f GIT binary patch literal 1622 zcmZ?wbhEHbWM&Xz`2L@vVabI(SH3Jc@T6_Ur5kVlZ8-Dd)|-EuPCZ+9;@P4DPdZjy z+H~qg$Er*J{{7o>?$x$)Z@N}p`acRrLtwasfZ|UUMg|5!1|0?<0Og7H(Ht>c;&#*@ z<b(i+F#{uqiNl13gA5$PTr2{N2N_uSd3X#~JaAxP=Hrq`S-|j+k&#hJB%wjTsey%C LL8n7NfWaC7lZf>( literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-focus-sides.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-focus-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..3605c0db4c51c4597b6b2fe98452322c6ccb95b2 GIT binary patch literal 1917 zcmZ?wbhEHbWMi;m{{Ek#VabI(SHA4J^kLtXPkXL>y7A`Ur5FFMz4~_rh+h1=@a*5Y zXaDwG`n2cLhySBsGz5lS2q^w!VPs(7W6)s$0#Kf4AI%ZNE|Nz*L_!E~{AXYkk%(Yu zaA;!V6k{n^@Q|^YPu{2`L!i->g^f4EWI|!Gd#}7DQ-DKI<H1R4j64yR2NpC;XNoyA z<>#a{9|o2pA%hjg>V9)=8ksm8Od1X@a%&f}-4&u4xXgd9nk!dnR`9Bz)mdjxiLSoB zI$?30sPr|ho14=v=gF?#mVI+;{@q2b*5P^4+e+RaJDP32{{Fs(pIrC6cf3nD-1=21 zZq1I5_Ye0mtJm2?8YQ2auIt{`Q(2sPZkBa7pRd%Gm*-a)&kvh>%lP&6b;<p4y1PqW z-`t*i_}Jd)^4wc{>YuZ{v)=LX(TPrN`Ez@|7d=1Q>O5a>@2`)~uT6H}zc1Fh^xgfv z=~2h|>T1eAJvzPG|GeDZ-=9Am-alRbzRlm?-#)LOzkYx1-@pHVw#zp#bKQ`yXOWXo zXkt@)k<ct)r17vxM9gAgtEg7T!#1h19}imP+-5v%SMEBY*r`5CLaCCGk--`OEg+kZ literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-over-bg.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-over-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..012108c65350b311b1d533b794ef22839eec242e GIT binary patch literal 1826 zcmZ?wbhEHb<Y%yA{{Ej~*QF18u6)^Z<<p)^pY~n(bmPsxOE3Oid-d-M5WV<!;n}}) z&;ISX^x^*~7!85p7y^nvSr{1@co}pUfB=*y+DCK5aE#|sKM@-O9RC@(Ib=LGEI8QA zAuJbhV#C72?E=bPE)E+P9qnc_%DQu6<KpA}3eH6#4x5&ooU9Q%N#($%rKhJeB%PY$ zxp~>y*%rl@L=J3Tety0~GncH_m-L3k9+S0VPi<Lwd3nHMuen}ZS6y8lu{rDRsjaK8 zuTMDKCF{Ly&CSgjmsiD}-nRDk_JYT!=6Y{mcXxNi=T~=6Z(o0Ze*-hOoX?I84-a<; zYsa10vGMWo3CiB{e0FYndU}R&_PsMZH$OkWz`0w_ch{DemsbR@jyt<+>+9<ql26a` z-M#JY?H$Fh@15Pf{r&v|&D`>Sdv<($d}6Y8{JA|lKR>^)*n7U;-d$f`-`Jde|J>f) M-`^i%W@4}g0GRHJ7ytkO literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-over-corners.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-over-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..361fc557b6dd609fda0647360db26d76f7fa617f GIT binary patch literal 1622 zcmZ?wbhEHbWM&Xz`2L@vVabI(SH3Jc@T6_Ur5kVlZ8-Dd)|-EuPCZ+9;@P4DPdZjy z+H~qg$Er*J{{7o>?$x$)Z@N}p`acRrLtwasfZ|UUMg|5!1|0?<0Og7H(Ht>c;&#*@ z<b(i+F#{uqiNl13gA5$PTr2{N2N_uSd3X#~JaAxP=Hrq`S-|j+k&#hJB%wjTsey%C LL8n7NfWaC7lZf>( literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-over-sides.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-over-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..3605c0db4c51c4597b6b2fe98452322c6ccb95b2 GIT binary patch literal 1917 zcmZ?wbhEHbWMi;m{{Ek#VabI(SHA4J^kLtXPkXL>y7A`Ur5FFMz4~_rh+h1=@a*5Y zXaDwG`n2cLhySBsGz5lS2q^w!VPs(7W6)s$0#Kf4AI%ZNE|Nz*L_!E~{AXYkk%(Yu zaA;!V6k{n^@Q|^YPu{2`L!i->g^f4EWI|!Gd#}7DQ-DKI<H1R4j64yR2NpC;XNoyA z<>#a{9|o2pA%hjg>V9)=8ksm8Od1X@a%&f}-4&u4xXgd9nk!dnR`9Bz)mdjxiLSoB zI$?30sPr|ho14=v=gF?#mVI+;{@q2b*5P^4+e+RaJDP32{{Fs(pIrC6cf3nD-1=21 zZq1I5_Ye0mtJm2?8YQ2auIt{`Q(2sPZkBa7pRd%Gm*-a)&kvh>%lP&6b;<p4y1PqW z-`t*i_}Jd)^4wc{>YuZ{v)=LX(TPrN`Ez@|7d=1Q>O5a>@2`)~uT6H}zc1Fh^xgfv z=~2h|>T1eAJvzPG|GeDZ-=9Am-alRbzRlm?-#)LOzkYx1-@pHVw#zp#bKQ`yXOWXo zXkt@)k<ct)r17vxM9gAgtEg7T!#1h19}imP+-5v%SMEBY*r`5CLaCCGk--`OEg+kZ literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-pressed-bg.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-pressed-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..a624fe1f7f651d5c6ebc4273b2a6c43636a5d11a GIT binary patch literal 1846 zcmZ?wbhEHb<Y%yA{{Ej~*0E1>j(wSR?8}T}Uk+S)GUvpX8ArZMJMv}9kuQ5LJUMdZ z*`X`X4qSS+@4}P+qhK@yhFu6K{$ycfVBllWVE_V9o@gJ<5yLK$M?FMB2ypyo5ay8a z*pSfN%pt55bK-+SW4nN|*Bp<Jip|{;##u23HZDHiui)GzvvR?blan=qSH+y%r0T_B zkbG)R<$`5rXIm7%x^uF);rx7uW-i%R!3`G|dra1fJ+&pXVR^t}uen}ZS6yX_*qn9u z)YjG4*C!nAlJ(xU=H}*%%d28fZ(DnNd%@#VbG^5(ySuyM^Q*h3x39myzk!)s&S%Gl zhle|awd2n0*!cMP1ZD4eK07x(Jw3xX``($Io1dRw;M^_eyKBqK%PWFc$DQ4^_4V}) z$*1S}?%wwH_KxD$_s;I#{{H@fW^Q@EJv%-=J~3H4{@k9OpPye?>^<La@2;<}Z*0!K le{S#Y@9!TR?iQB!-?!)I=NFe($DiM~_xJY?zU(Xv)&P@)j;;Uz literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-pressed-corners.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-pressed-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..b1d183ba997e4cea1aeb8b04426a792766773f7b GIT binary patch literal 1621 zcmZ?wbhEHbWM&Xz`2L@vYSxi?+b%WCJ61R6$gXow=AHP`x9Q%Vb59oRxHfOwm04RZ z%{%sG!LA#1^N!2`N^N;CXWNy3|NhN6_T~R57!84;9|DR$Sr{1@gc)=gfB=*y+DCK5 z(2vzoACMmc97YU`95xOc5*nL1Sea%lNN8YUV__4pP*6C?!o<NOAfj-<v5|$J%ZEeZ PL4qeUr<NZF2ZJ>LH0<p| literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-pressed-sides.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-pressed-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..bfc6efb33dcb478c597868c1daccd212adc946fd GIT binary patch literal 1919 zcmZ?wbhEHbWMi;m{{Ek#YSxiCC%()&_G!<BCv%Q{IdbLMtYcqh9Q!im$d?&MzDzsv z<<OO92QC58lYJMS{2v9QAuzl`K=CIFBLf3JgAM}_fbvB9XpR_OF+A!U(n5gaKLaC= zgat4=uye>t_^c3MXm01>aq4*?u;?JGgm}!E9fFGwGAVG^@K_3^cur(sSs{`j(CE#= zCVC=7pm^CqW()p1XEHA|_%qwqvwh7pXt>DW+OKB1OGL9_vEM?oxxYd(Lzjgwj+#1a zs@C=O(T9^*t;5z_+mvyB)z_?Pxl!A*cb`&~p00Oick%6KwY#^ki`!lMkxA~)c7yms z?YzHz&s1zoKG>ybKJAaihSVcd4TJC1SQb4$Ip4VYn#?TYmzNg@H@oeP+WO+!hWOKF zZ)cU|+}`Z{I&JQ3^LO`mXS46O-Lt*m{?SI|__{roh0o5<mG1Ye-BtSZ(#G)Xb+$Xp zU)()d93%hVw)*GW=Z9yD&!1=W`}^z1i`(tv_x<|y<NfRM{Q32D|9@{)SEywa;&{-= z{B8P!dTy~53mSQqI3Bj}hn-Mp6_0w6&?b}jVquF^(~X54@@^SQZK{hr9(Ac-6BA&t F1^}Iily?9C literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-sides.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..94256ef9c6221865cc142ec71613e5c5bf78062f GIT binary patch literal 1594 zcmZ?wbhEHbWMhzG`2L^a-@kwVN5N<ajMNZN{K>+|z`)3$!vF-JJkdUyBSvak81*+O h1USSQm^oxTHY_;U%pt55b7I57!|ejfd^{Ws)&T132fP3P literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-corners.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..f19715a3e6339b5eef2e557a3bbd7ce11221ee9f GIT binary patch literal 1585 zcmZ?wbhEHbWM&Xz`2L^a-@kwVN5N<ajMNZN{K>+|z`)3$!vF-JJkdUyBSvak81*+O Y1UUE@m^oxTHY_;U%pt7C!@*z;06j7TnE(I) literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-disabled-corners.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-disabled-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..f19715a3e6339b5eef2e557a3bbd7ce11221ee9f GIT binary patch literal 1585 zcmZ?wbhEHbWM&Xz`2L^a-@kwVN5N<ajMNZN{K>+|z`)3$!vF-JJkdUyBSvak81*+O Y1UUE@m^oxTHY_;U%pt7C!@*z;06j7TnE(I) literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-disabled-sides.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-disabled-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..522f864ddf7433c96e927edfd1369a2a096137b0 GIT binary patch literal 1589 zcmZ?wbhEHbWMdFu`2L^a-@kwVN5N<ajMNZN{K>+|z`)3$!vF-JJkdUyBSvak81*+O c1UQ5km^oxTHY_;U%pt55b7Di{!3G9v0A{@h1poj5 literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-focus-bg.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-focus-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..8444d3206a6497ada05311034d0be5d5b1921780 GIT binary patch literal 1799 zcmZ?wbhEHb<YzEo{{Ej~*QF18u6){a>C=U0|8BhbckR``E3f`tdhzf7C>RZa5fB23 zKUo+V7&sVo7=QqjC)!7I#0ZG?Q7_^Q0gfjOoE$P98x|aFX5!X}Ik913W4nN|*Bp<J z4;#BBjI(48Y+QW2U%|PE#bMKulan=qSH+zCl+rNWAo<iB&&|uu&bBCib?4;f<>%)+ zG;_&%ZCP<~vBzYs*i&0pUS1xs*lVuW)>T(mM{Lfzdur?I>+2H^cgcEhTXS=B#^qJ9 zr?;)Wy}jV^skz?U*WKM+@%h!=)7#hI-`~K@E$6di!^6WJ!rF0Xc5Hlne1fv~JfEGL zo}QjzoPF=i&dtxyFL3Ub^WC-O<>eK@tK-h@+WPwXhUC-pe0OhqdwWOm>w9N+Z-0OP TKr^?z-<};GAFpC&Vz34P(e-?g literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-focus-corners.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-focus-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..77031196789e4d6020aeca48199ab2c8072f3bf6 GIT binary patch literal 1622 zcmZ?wbhEHbWM&Xz`2L@vVabI(SH3Jc@T6_Ur5kVl-FWqH!<iSi-u&Bi>e;#z&lVkc z(y`*wrc*CER$cn{@86blueP0g)3xf-|4}d+0>dH%6o0ZXG61uJ4g(N?@<jV+ju;jZ zJL(BCLx97Wfsw<;VM4<}1`c5^76rwF4J-nDJO(=$8e5q8c_eZ+FeoxHGO9>qG#EHB Ou<|GwOb`%Yum%8;1N43X literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-focus-sides.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-focus-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..6c47a7c893bf05e58e6029c4032ac68a98f0cf3f GIT binary patch literal 1879 zcmZ?wbhEHbWMeR3{{Ek#VabI(S3d2!^x?v@e|s){y7A`UwO9YHy!v<P#lQcfU^E1V zdk850WMO1r;AGHY00K~+XdlfH!#&PN{f93EIQ}y*ibzB-G&nS|@oJbPd}uh#%quVD z;vm>~kWqp?=1fLFgFB<FecP7|gNBm~s{YGNb_%IBOx8=>Hs@zhs_!)O<Xcl_PF6cV z-@5q`i&e;qbBjFswZ3Lf$qZWVUG1eRHC5}%>fqUFwY#>i3R@k!u}Sv#R-N!o>1V5a zPnWHY-k9}p+tlA?Yht&Qe!O(I+C1<6&ic>4u1e3)e|WfAnAvSl#Ks55Cdhl6y_r#z za(Xg%cG{eo#?Q{r)^6Wtvukt4`K6AF<7#)AW?ow#JG;-fdRy+*O@-I5)mm@Ozp=OR zv)n)H@{f0qH%p7pn`80$`RT>V?RK%dKE1lJKD#_`ZgtuF+q1h(mdnkv`SJPj?&bgY z?b}oJ`R&ES^Z)O&tN!)<?e6pE>-X3H{Ka@<e#8Hx=?ZnMN*)iI*q@0BFjxZsDFc|g literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-over-bg.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-over-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..8444d3206a6497ada05311034d0be5d5b1921780 GIT binary patch literal 1799 zcmZ?wbhEHb<YzEo{{Ej~*QF18u6){a>C=U0|8BhbckR``E3f`tdhzf7C>RZa5fB23 zKUo+V7&sVo7=QqjC)!7I#0ZG?Q7_^Q0gfjOoE$P98x|aFX5!X}Ik913W4nN|*Bp<J z4;#BBjI(48Y+QW2U%|PE#bMKulan=qSH+zCl+rNWAo<iB&&|uu&bBCib?4;f<>%)+ zG;_&%ZCP<~vBzYs*i&0pUS1xs*lVuW)>T(mM{Lfzdur?I>+2H^cgcEhTXS=B#^qJ9 zr?;)Wy}jV^skz?U*WKM+@%h!=)7#hI-`~K@E$6di!^6WJ!rF0Xc5Hlne1fv~JfEGL zo}QjzoPF=i&dtxyFL3Ub^WC-O<>eK@tK-h@+WPwXhUC-pe0OhqdwWOm>w9N+Z-0OP TKr^?z-<};GAFpC&Vz34P(e-?g literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-over-corners.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-over-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..77031196789e4d6020aeca48199ab2c8072f3bf6 GIT binary patch literal 1622 zcmZ?wbhEHbWM&Xz`2L@vVabI(SH3Jc@T6_Ur5kVl-FWqH!<iSi-u&Bi>e;#z&lVkc z(y`*wrc*CER$cn{@86blueP0g)3xf-|4}d+0>dH%6o0ZXG61uJ4g(N?@<jV+ju;jZ zJL(BCLx97Wfsw<;VM4<}1`c5^76rwF4J-nDJO(=$8e5q8c_eZ+FeoxHGO9>qG#EHB Ou<|GwOb`%Yum%8;1N43X literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-over-sides.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-over-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..6c47a7c893bf05e58e6029c4032ac68a98f0cf3f GIT binary patch literal 1879 zcmZ?wbhEHbWMeR3{{Ek#VabI(S3d2!^x?v@e|s){y7A`UwO9YHy!v<P#lQcfU^E1V zdk850WMO1r;AGHY00K~+XdlfH!#&PN{f93EIQ}y*ibzB-G&nS|@oJbPd}uh#%quVD z;vm>~kWqp?=1fLFgFB<FecP7|gNBm~s{YGNb_%IBOx8=>Hs@zhs_!)O<Xcl_PF6cV z-@5q`i&e;qbBjFswZ3Lf$qZWVUG1eRHC5}%>fqUFwY#>i3R@k!u}Sv#R-N!o>1V5a zPnWHY-k9}p+tlA?Yht&Qe!O(I+C1<6&ic>4u1e3)e|WfAnAvSl#Ks55Cdhl6y_r#z za(Xg%cG{eo#?Q{r)^6Wtvukt4`K6AF<7#)AW?ow#JG;-fdRy+*O@-I5)mm@Ozp=OR zv)n)H@{f0qH%p7pn`80$`RT>V?RK%dKE1lJKD#_`ZgtuF+q1h(mdnkv`SJPj?&bgY z?b}oJ`R&ES^Z)O&tN!)<?e6pE>-X3H{Ka@<e#8Hx=?ZnMN*)iI*q@0BFjxZsDFc|g literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-pressed-bg.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-pressed-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..eb0d7a8993e1db7060daa5f0882807099d5b93f7 GIT binary patch literal 1813 zcmZ?wbhEHb<YzEo{{Ej~%8@T~j(wSR?8}T}U-n&ia^%Xh8ArZMJM!hwm1hSoJv(#> zNIv;L3PwX<n1+DjPZmZ71|9|-1|R_CiT2SPF-)U+)LTS_0LLc=P7WE54GRu7GYM<N zoY=7Na66Zv#~hE1i;i{+acA5)v2pS7eksNd8P82m8YgQ6uaY^iY3b?d2FaU595ydI zJKLi863>Cn%g@huXy%gj+Op!}VvosMv8T4Iyu3VMvDaL$t*frCj@X=a_te(a*ViW; z?vnN1w&v#MjLWNHPj6d$dwap-Q**tyue-au;`6J!r?;=azrTT*Th3?4hKGkcgtg<& z?AZAD_ylF|c|JQgJv}|cIQ!n2otvMZU*Oy==eujm%gZZ*SI3>*we|J&4aukH`R?BK u_V$kA*Z0ou-v0jnfo5)bzdbuXK0Yy7JO13Bou8jySnNID&$ifs!5RSj!F#O$ literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-pressed-corners.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-pressed-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..2f60752e7157250077297505965868c6e950fa60 GIT binary patch literal 1624 zcmZ?wbhEHbWM&Xz`2L@vYSxi?+b%WCJ61R6$ewdg<{kUex9Q%V3r`m8xHfOwm04RZ z%{%dB!LA#1^N!3p@uhFegE`x-{QLKB*SRNij(zz*3PwX<h=+jUPZmZ71`!4w1|R_C ziT2SPF~p;E)cF*J0Ea09BZrE^hlYc!9Ku{I4vq&ISa~>j3^WuNS(!MPWE2z}8k$)- X<wO<;I2>qVV&anU2$<;Pz+epk)rIUW literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-pressed-sides.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-pressed-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..fdf6889afa78c7276979a9bfc595a4699920844c GIT binary patch literal 1892 zcmZ?wbhEHbWMeR3{{Ek#YSxiC$G%KC@@3zJC$o-yIdbLMjALJB9QiWs$d^M`o*lUK z?9e43`Q-m77!85p7y^nvSr{1@co}pUfB=*y+DCK5aE#|sKM@-O9RC>@c_b_t8XTI~ zL^VPt6f8W*A|Pzjld+-UD3hqZl*oa=21gbJK?xIwO9xI&V&hz)GNEYcL15O|(_<-| z<~x%i>Cu(S&FOx#>~q=fa!z?3FyC#mSgck^X7DnX`Ch$VqM9MAgExlRp1S%nY<<+> zvb|Pj**Djx9GoY*dRy+T?P+(9wRV@SySuC6=B2CE)AR3bZFu@m^v(8y2YcIptI74u z_>gqCPuYClnuwy*Q$70G=gvqPrJbMcSYGFI>r=+%MZwem?XfC(eR)mb{xIF$Wp8e; z%YA-~w|e{gdj~Q<i~XBj@!{r)Qu*+_J(Zsxp6_;#=bQVp<oUJD;rI1otIOYA+28HR z?=NRv@%iz^>HE*!`(5?@)#L5<_V%@ZzkhjnfBO3U_5c2V`zfx_@Pjuap^@X0`+_ER XqZtqC1h{@IXyFT!co@pa$Y2cs4#1P< literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-sides.gif b/docs/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..522f864ddf7433c96e927edfd1369a2a096137b0 GIT binary patch literal 1589 zcmZ?wbhEHbWMdFu`2L^a-@kwVN5N<ajMNZN{K>+|z`)3$!vF-JJkdUyBSvak81*+O c1UQ5km^oxTHY_;U%pt55b7Di{!3G9v0A{@h1poj5 literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/button/arrow.gif b/docs/extjs/resources/themes/images/default/button/arrow.gif new file mode 100755 index 0000000000000000000000000000000000000000..3ab4f71ac115188898fa2701b6b11561d0461e4d GIT binary patch literal 828 zcmZ?wbhEHb<YM4rXlDR{|NsAk=}}@d1V&s4DE?$&WME)q&;j`zlqVQCBpH}FWIQ%3 ZIM~d=%M`IAAn|ZBgOJyp2m=KMYXEYD4!!^Y literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/button/btn.gif b/docs/extjs/resources/themes/images/default/button/btn.gif new file mode 100755 index 0000000000000000000000000000000000000000..06b404dd7a101dcaf185a48d8e7272ed975a307a GIT binary patch literal 4298 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 literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/button/group-cs.gif b/docs/extjs/resources/themes/images/default/button/group-cs.gif new file mode 100755 index 0000000000000000000000000000000000000000..3d1dca8f05ca550917346830a5a0ae4e16665181 GIT binary patch literal 2459 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 literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/button/group-lr.gif b/docs/extjs/resources/themes/images/default/button/group-lr.gif new file mode 100755 index 0000000000000000000000000000000000000000..7c549f96d6064d4b0cc022671fd823c13df36d8c GIT binary patch literal 861 zcmZ?wbhEHbe8J4f(9Xcn@V{aEiR+JFe`Od2qaiTzLO}5+3p2>qIv@g+Cm1-a7??R2 z95yUC*vuiU6?0<4!o%$X%3gCkHZD5aEn%E>=fuXv$NLqWyJS2!Ejc+^BY0KJ$xTbW LTbP(wSQxAUYf&Xs literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/button/group-tb.gif b/docs/extjs/resources/themes/images/default/button/group-tb.gif new file mode 100755 index 0000000000000000000000000000000000000000..adeb0a4cf54bdfb626ab6f3c070f6e2919f374c0 GIT binary patch literal 846 zcmZ?wbhEHbWMt4`Y-eC-_}{So#PvfrK0JQ?m0=W&hQJ650mYvz%pfo8fCx~YVBpYZ yVCE5U*s$PWGl#HNOoc$h;dTLKuQ?tY7ai@EFwVMjV&mfD{R+-`G6D(;4Aua=h#nIF literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/button/s-arrow-b-noline.gif b/docs/extjs/resources/themes/images/default/button/s-arrow-b-noline.gif new file mode 100755 index 0000000000000000000000000000000000000000..a4220ee9066357ea2270a842ed244bbaadb23de4 GIT binary patch literal 898 zcmZ?wbhEHbJi)-n(9Qq?M~)mhbnDyy|Np_fQDQU%Mo<VS{$ychU|?d<0r?q}Cm1;5 z8CW@FJT@#i*vuiU6?0<4!o%$X%3gCkHZD5aEn%E>=fuXv$NLqWyJS2!Ejc+^BY0KJ z$xTa7Pd7+DHOF)FGT%0aqGx+fZdP}nYuC)RmLp-s#l;?zwPH_gS$TPRz~V9<4hCxg D_B%R6 literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/button/s-arrow-b.gif b/docs/extjs/resources/themes/images/default/button/s-arrow-b.gif new file mode 100755 index 0000000000000000000000000000000000000000..84b64703006ca6d86d335b89f8d40b9fa3883c48 GIT binary patch literal 937 zcmZ?wbhEHbJi)-n(9Qq?M~)mhbnDyy|Np_fQDQU%Mo<VS{$ychU|?d<0r?q}Cm1-| z7+5)EJT@#i*vuiU6?0<4!o%$X%3gC;7&IL1mN3q`b7JG-<NXTGT{51VmYkd{$G#%w z<ff&kryC@nn&Y{7+1c3^#joyYPF{3=zC$yYtk;$m7Z-a>)`~r~W##4N0gJundTm{G tbu}Af#?`K^tFNzT+TJAVU8dErDdY00*wfqA-ripD_|#nQ={XJz)&S^DQ3wD4 literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/button/s-arrow-bo.gif b/docs/extjs/resources/themes/images/default/button/s-arrow-bo.gif new file mode 100755 index 0000000000000000000000000000000000000000..548700bf45a4766e4633a2ad21cdd03a907e191c GIT binary patch literal 139 zcmZ?wbhEHbJi)-nu#f=+R-O3x{>OhHL-8jIBNqcRgAPa(B=5i!GpB#$>9_og=WMyv zz4@M01z+1Ek7>_3m%Tc*Z6(9;Pd?Yb^*;Y~?)yJ}o<}i97JcmS(V9N7;WKBi*YYc? qzIL6>+J0x<_w3ZJ<4-pI?D3myle6{rUd98@zwG+kS1-=MU=08a%|q${ literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/button/s-arrow-light.gif b/docs/extjs/resources/themes/images/default/button/s-arrow-light.gif new file mode 100755 index 0000000000000000000000000000000000000000..08783c9d2f269eeb9799f2591ef41ddd2b14695b GIT binary patch literal 116 zcmZ?wbhEHb<YVw)IK%(~Cr_R{bnDyKuV2ADD53aI(77lzu_QG`p**uBL&4qCH-JI$ zCkrD30~3P|ND;^Y24)qFU3dN&obp_~*W&fr-TxCb`cg9IInVOaGM!VPbG{_^e#N@? HoD9|g{um~p literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/button/s-arrow-noline.gif b/docs/extjs/resources/themes/images/default/button/s-arrow-noline.gif new file mode 100755 index 0000000000000000000000000000000000000000..0953eab5c875fcb0f3b40babd89052b064bf9fec GIT binary patch literal 863 zcmZ?wbhEHb<YVw)XlDR{lP6Cey7ler*RNpSC@~rWBPawEf3h$$FfcLbfcy-~6AT<S z46Gb79vc=MY~~QwiaD`i;o)`xWv@9N8y6kzmN3q`b7JG-<NXXyZ6O+y6dU?Af>*_y R+_d!cbc5tmb0h^AtO41(Cb0kj literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/button/s-arrow-o.gif b/docs/extjs/resources/themes/images/default/button/s-arrow-o.gif new file mode 100755 index 0000000000000000000000000000000000000000..89c70f36fa653684087485ab673043ecbf615cdd GIT binary patch literal 937 zcmZ?wbhEHb<YVw)XlDR{RVO|ky7leWyZ>O`C@~rWBPawEf3h$$FfcLbfcy-~6AT<} z46G~?3JVq-Y-VLwiqV*$aJZREUaCi9W8%>kKJB0>J3c15x5<mQxmXA#x%H{rE@Rml zl;S-}-#2bc#l|N`W|*hnI<i7o{roJu%q*T=!5XLLd2lmD><U@txXeJ1sbFSF#?{3R r>sMVlHA(yGnuN7&N42);+}s>}e3|KPvE1;j`8SW1{tiuYV6X-NOpiu@ literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/button/s-arrow.gif b/docs/extjs/resources/themes/images/default/button/s-arrow.gif new file mode 100755 index 0000000000000000000000000000000000000000..8940774785c25d4467b239aa608a9eee40e273d1 GIT binary patch literal 937 zcmZ?wbhEHb<YVw)XlDR{lP6Cey7ler*RNpSC@~rWBPawEf3h$$FfcLbfcy-~6AT<} z46G~?3JVq-Y-VLwiqV*$aJZREUaCi9W8%>kKJB0>J3c15x5<mQxmXA#x%H{rE@Rml zl;S-}-#2bc#l|N`W|*hnI<i7o{roJu%q*T=!5XLLd2lmD><U@txXeJ1sbFSF#?{3R r>sMVlHA(yGnuN7&N42);+}s>}e3|KPvE1;j`8SW1{tiuYV6X-Nh3iI; literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/datepicker/datepicker-footer-bg.gif b/docs/extjs/resources/themes/images/default/datepicker/datepicker-footer-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..1152ee3ad364db26296683a21b3a0f80c0319fe1 GIT binary patch literal 1833 zcmZ?wbhEHb<Y%yB{{Elg*o`-*ZoD~h<ISZ9A8tMSa_8BXYmYwNdh+Q85Iy>I<<W;r z_dZ;C@ZrL}5C2EOXb23u5K#Qd!pOkD$DqRi1fV?8KAIzjT_lfsh=dT}_|L%2A>*-O z!NF!GPK}ro8x|gJ7f_a);jwX%D~p72)}4$6i;wp!ICsf-1~s0XtP#u?adOkr)6)%- zPtAEL)NppTMe(aUCpRxYKZmJ_OV(@4ii?XqCJXT%*s}8S@_@x&bG^2%y1F`IbJpEc zTUTFSpK!QK)_dEUo0~H(uZlgrZSC#t1&>e7_1?bj?(T}uukN1SzW)CH24-$KpB)<> z9_|p<jytns<KyEKl)dNq?A-M9^bF(dduMiTetv#|bGMxDt}QPwuLxcpcXrp-*Vi{B zpPuKtd)wRFJBnZ5JG*=P`}+r)x#j)#?D+Wj#ANOGb9;7vetu!G_k6#-yS~1@u{rzx WxxKr;zkhJJn@!$-U(K}!25SJIYK^l1 literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/datepicker/datepicker-footer-bg.png b/docs/extjs/resources/themes/images/default/datepicker/datepicker-footer-bg.png new file mode 100755 index 0000000000000000000000000000000000000000..c062d0dc216cca5031135b1868223a0ee59675d2 GIT binary patch literal 328 zcmeAS@N?(olHy`uVBq!ia0vp^{0t1tb{uR#)=`P*`#_4N*vT`50|;t3QaXTq&H|6f zVg?3oVGw3ym^DWNDEP|L#WAE}&f6=7d`yM{%nr?;{+9;@FP6zqh;@0P_V>iJrDv1h z*QWlM7d%7dwbXO9)f?Eer=JwH3%{MPUv>Yz`IhU}Wu4Ex_D6nYw)iezy$=VUh%|?u m{BIdidftHN@Zdq_hvK)rG4n{X6)FV!n!(f6&t;ucLK6VW1#h_k literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/datepicker/datepicker-header-bg.gif b/docs/extjs/resources/themes/images/default/datepicker/datepicker-header-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..ee316fbb2363a8dbaff6b072e83e466685dda514 GIT binary patch literal 1860 zcmZ?wbhEHb<Y%yA{{Ejq&MHsNDo4SlK*g<1#jQofrAfu5LCL93$*D%kp-Rc2Lcy*~ z!LCHXrs)4D7!8487XpeuSr{1@_!x8;fB=*y+DCK5u#4nT50MZ89RC^EIb=LGEI8QA zAuJSeV#C72?E>OrGdwmfI@&FvE_LI?#>L0`70l%%JU1=zWYGv-6?1Zv>M0h3<WqAz zH>>%uS`@#!b8@r#IaY^eE?KWF8Ubt`leJ<`ZPC2M7O>cBuGWH8S64@D&RWa0VD<I& z35UDhN-bD(b92V!Rk5eHt-Zay;PI)s-rLvR-Cgnd)!ozE*WcgYz|1Y@vtz@<!yUrf zac6dHe0+R@viCfnotvJXo?)DQ@6684&(AM#?w0f2wdLjI6~U|H&hFa!`uc|C)AM|H zZ+m-tNAc@>XLoOZfB!%;x4hq;9UmW`n5-RtZqLro&o3<Yp6|DJ*VorKHfP^Iw|DpV w_YV$tE6V%t+w=4Di_5Fy&+ps&`}>E-r|0|c-}m?TkI%2~pWpxgO#_2904^$QiU0rr literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/datepicker/datepicker-header-bg.png b/docs/extjs/resources/themes/images/default/datepicker/datepicker-header-bg.png new file mode 100755 index 0000000000000000000000000000000000000000..45d74d7e3bd91be836654132cc24fe93423cc864 GIT binary patch literal 309 zcmeAS@N?(olHy`uVBq!ia0vp^{0t1tRvc_VR$Qm#Ng%~i?Bp530R%N1DIGvQXMsm# zF#`j)FbFd;%$g$s6uj=~;uumf=k4W#oDB{<EC)2McWsTB6)T->z{tPzWPQXm)!T(} zl1HTlQ>B$RHCvyw)cv`B?&rLO;Jt^f>Sx}0HRrNi@~x2S$U_D^hX)N>-zwj4X_6JX S{)`yViwvHwelF{r5}E*Fp<>4X literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/dd/drop-add.gif b/docs/extjs/resources/themes/images/default/dd/drop-add.gif new file mode 100755 index 0000000000000000000000000000000000000000..b22cd1448efa13c47ad6d3b75bdea8b4031c31e9 GIT binary patch literal 1001 zcmZ?wbhEHb6krfwXlG!sZ8LT1HFNH_aOtsj?X~gjxA*9E^z3&Ep6U}i%{O4CWB5GR zxH(~o^CD6fgr+PAPg@j`zBoE{b!f)w;OtcqS!<$mRz>A)jmQU~$dc{RCEH^Pc0?BK zj4s|4Q@Ag_Y)yK_x{UHY2^CvX>NjQ8>`JNKlUBPgy>f3}?ar*)o!Rv}a|;e8R~}5M zI+k5?IJ@p(X5I1prmcC+Tl3ns7k2C@@7Z0}wX?EwUq$b}>dE`-8_$%sovdm*S<`y9 zvg=S~|DoE>6ZKu^Yp3pS>N(xmcc!K9QuCyv4O0&^O+Vf`{Y>lRvmG-|x6L@yKI2T+ z?1R&1ADl7ea@VxWol~!LO}o-P{c88ji`{c?Oj>eo%Chs*mR*>(;O5i?H>WMVJ$u!a zxvQ_tS$1N<@{<eK-(R}^{<6(Cmu>-~Tgx`xUa|S^%B{CoY`?W?%iUF5@2}Z*cg>Eg z>v!B;zx&SmUDr15xw>=vgZ29!ZQJ`~+mSmvj^5pQ^4^hC_l_QYap3f`!)G2GJNw}H zxtAxeygq;Z-KCo^FW&ih<H4spkKaCg{O-~74^LlweD?bD%lF^j{Qv)-VHD6Z1QdU= zFf%Z8Gw6UU0p$q>j$;hsoH8C8796zp$T+b>@c4oQ4ptl9{CxcUY?nYS7uzPr^nkf~ zF-KnfWK`sLl+9v^jSOlzC8As$;v$iu&bdH0ut_86$zxX@GwwqiGMCbLCdz4)g$X=7 zcxoaWQ~HIKhmx0vy2>O}Xevx#ky5l?_wGr-qtgtHrgJ<B4>}!+;FF#5#6#i2*%nh> zyAFx!#AZoGf3_x%!Zyuz9to2P8w(l~<k^)knHUB(c}j9IJP|qa*@00&H?n}mV8KmA S2{u*^g@#8PwjOL?um%9^7FNXo literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/dd/drop-no.gif b/docs/extjs/resources/themes/images/default/dd/drop-no.gif new file mode 100755 index 0000000000000000000000000000000000000000..08d083355ff1b4e99b9ef8139f28ede1485b50cf GIT binary patch literal 949 zcmZ?wbhEHb6krfwXlGzJz`$^jh2@BVz)=yA<1#WQRaDNJn4Gt<xe^d?H6-L_O3JN_ zj5`GdcS}m1OqlR|&YYJ^mb~7u;q8tc@Am9@f8fA}BS$`-IPvMsnXfl)e1GuZ$CD>N zU%dGJ;lrOVU;h61@&EsShEXsY0)sdN6o0ZXGcd?A=z!b^$`cG6lNjtdWNtJvwem3w z^YtV!G#qAN*V6d2fsv7ciC4iUL4l!xsfAfr@4<wCW@k2TMw1yY1RNT;nRrDQEH^A| zW8}0eVR+z>=-tS}R<nR1!RgR^CV7Sv3JWuQ+c~EuJvb1oaH-KT`P?3@4{7K41*4c| p%y^LM(XPUt<-x%4^gx%mao(FBg-VB~38?z1XdG;6?*v+G4FKH^bqD|e literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/dd/drop-yes.gif b/docs/extjs/resources/themes/images/default/dd/drop-yes.gif new file mode 100755 index 0000000000000000000000000000000000000000..8aacb307e89d690f46853e01f5c4726bd5d94e31 GIT binary patch literal 1016 zcmZ?wbhEHb6krfwXlGzhFH%vfSJo_7)vQuAsWC9EH&km;*6LR^?KiY<wYKlJw(qsJ zpJ`*gP~B&`t<yqdmxacj8`J~0>xFJMjooS=wa?sdwqwu&r?{0KDI0upwuR+x56{~g zkq<(VSvvztwnvw2k15z6Ua%vwaA$PU&gkM@F@^i$%l9PIZcnS(l~TJWt#)5}{f^9- z1J*HzZPSi=W*zp-IqIEx!mH#^WYOu+{6mTPhZFOT08vuj(d7JNDFp|U3y&lh98WDi zo>p==rRYRP$%%~86B%VEGs{k8RUS;KJD6E_Jiqc}cGa2O`cnnX`*Pb46}28MZ8%lj zaHgpFTzUJ+%FZKY-6tw0oU5O>vwy;#zG=ssCm!gZcDil)nbs*M`lp@kn035;#_6_M zr`l(nX`gwvYwo%3nHRffUg(*1rFZuAiSsW_n15;F+#8b?UYok``qahOr>(v;d-dhn ztL{u+dw=%2>kHRkU$E}Z()D+iZN9m5<K5+3ZZ6$&YuTpTE4JQVvE}ZnE%(=Ky}xGL zg{|8zZry%!>#o~d_ub#R;qm;f57%vfxPJS?4f`H%+y8jS!N=PUJlT2r&He)i4xD~_ z;M%)OH{V=&_T};0@2@}p{P5-1r$2vx|NZy(|Ns9CqkyasQ2fcl%)rpgpaaqk$`cG6 zR~e)^Wjr=4aC9<_3F%-wzQDoVIAhB~=k&AfoLyW-Re?t*%+d(FBC_aGf`Fq$D3_+D zkjse)Dz(dOBqZEh6jdE-UYxkdEGT3zv4dmE!Dl=ZWi9e<M3iU>%{1g;@!G-s^!P$| z8==@$A<sHwn3<HXM1D%Sr0N;HdqRStdV>R3<{5^GPA?~^>Pma%d|c$9FpH<AXHEf= zXAc{n;-`omMgmU4wi-S?A1*Mq%oSth;IcZ9;y*)FYu^J;Muvcc4jg(7m5<rFnVITk U%ua1eXlP&wOL?s(A;4e_0Qp#8fdBvi literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/editor/tb-sprite.gif b/docs/extjs/resources/themes/images/default/editor/tb-sprite.gif new file mode 100755 index 0000000000000000000000000000000000000000..fb70577617cb872bb13241af464385904942d91b GIT binary patch literal 2072 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 C=E|M` literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/form-invalid-tip/form-invalid-tip-corners.gif b/docs/extjs/resources/themes/images/default/form-invalid-tip/form-invalid-tip-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..6aeab5b980b4d40e5594310413ac2aee5ee6d696 GIT binary patch literal 1688 zcmZ?wbhEHbWMz<J`2L?^fq~q!V+RhDWb8@``v(NSeqCBL>(7rLpDvtPVx@JXB<n^& z+Krlm8)Z2+stT?xn|Ec=j8ErIeK>PsPg=ySlB|6hF;9*ix>c5Qpd#<di9@$4at>7G zEwRyAW~cY;)Up4gU^D~<cL*r{WMO1rkY~_g00K~+XdlfHgFD7XT}Rsx;3#Ea<Ph1h zAi+_9Ls%>3#0EvDW>$8tKOYnu8d&5NLJ}4zIJB~HaB(CwFeEauvifjsa0p~<=47)I zaafS(#MUAxk>F6#z|=lj)3HZ~^U$FdZb7~p1A|6J)-Fkdf(I)XFgtPbn8{2iNNixA Q&Ma5+V#7h^qYVt!09Vf94*&oF literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/form-invalid-tip/form-invalid-tip-default-corners.gif b/docs/extjs/resources/themes/images/default/form-invalid-tip/form-invalid-tip-default-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..a16f169441fceb9a515ac134c3143a3cbd525fa4 GIT binary patch literal 1690 zcmZ?wbhEHbWMz<J`2L?^fq~q!Q^)p|Wb8@``v(NSeqCBL>(7rLpDvtPVx@JXB<n^& z+Krlm8&w6D7EJqe?$n1fCl1x*9jM6LlNNEHBx7Gj%#&jWuB}*bt0e2mu|v1Ya&A@R zEV0wMQI@mJPVdQyL;pv?Xb24A5K#Qd!pOj&z@Wnb1fV?8KAIy2adeG3jpiZ1QO>}~ zA+lpZ!a)HJVXc@G8x)<IS=qT*7!NfyuqeocBrG`K#LCOT#gWj!kjTW!>JxOrA&{|| zlg&ZIVMF2}_7;8#4~Gf{=Jv^&&H)OY28UUA`S}_Q3>q2Py5v;~9;`gT?8L#NB-5}U V(Sd=Lmo0|jp`sH*7b7EsH30G#+lK%E literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/form-invalid-tip/form-invalid-tip-default-sides.gif b/docs/extjs/resources/themes/images/default/form-invalid-tip/form-invalid-tip-default-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..bd64f328877e6dd3a7e7cc7f5b11dc1f2a4c67c9 GIT binary patch literal 1647 zcmZ?wbhEHb<YJIx`2L?^fq~q=fB$Y2r2QWSqaiTzLO}5+3nK#qGlLET5P<ST`)H0B zd8uI3$A}Q%@L^!&P;l6=fPsODTgt^EK(VozQ`RYGMZu!O?L7KXQ)Wy|KGG%YSQle4 r>4Dos5zl2Nl0i$4P1EsCno@ab>G7$?h1Ysk3a6c$Zo<gI!e9*mZQ~Yp literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/form-invalid-tip/form-invalid-tip-sides.gif b/docs/extjs/resources/themes/images/default/form-invalid-tip/form-invalid-tip-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..bd64f328877e6dd3a7e7cc7f5b11dc1f2a4c67c9 GIT binary patch literal 1647 zcmZ?wbhEHb<YJIx`2L?^fq~q=fB$Y2r2QWSqaiTzLO}5+3nK#qGlLET5P<ST`)H0B zd8uI3$A}Q%@L^!&P;l6=fPsODTgt^EK(VozQ`RYGMZu!O?L7KXQ)Wy|KGG%YSQle4 r>4Dos5zl2Nl0i$4P1EsCno@ab>G7$?h1Ysk3a6c$Zo<gI!e9*mZQ~Yp literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/form/checkbox.gif b/docs/extjs/resources/themes/images/default/form/checkbox.gif new file mode 100755 index 0000000000000000000000000000000000000000..835b346cc9e0e8e9089a03e4b0058653e99f765e GIT binary patch literal 2061 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 literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/form/clear-trigger.gif b/docs/extjs/resources/themes/images/default/form/clear-trigger.gif new file mode 100755 index 0000000000000000000000000000000000000000..da78d45b3214480842c62514af524f4aebb66124 GIT binary patch literal 1988 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 U;ezY9-WkTkP-6N%4gg~Q2Qp;nKmY&$ literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/form/date-trigger.gif b/docs/extjs/resources/themes/images/default/form/date-trigger.gif new file mode 100755 index 0000000000000000000000000000000000000000..25ef7b3ae73c0918e97b5fd9c3e0cc5c69bcc14b GIT binary patch literal 1603 zcmeH`>o?nX0EfSlh?LXSh6Gchb&K0_)}2tjEVIrf*mT-cZDZJ(tUK<OE@x*Op+wGH zw^i-9Ofr|!&LvnZ9do}^i3E*F<c86ZL?VXrTm27v+2_Uc^7G<3=Mx+n<bOV%0&GD( z07QsL`>`vtS)2>N?|+Q73~jaWl`R5gD__+)uHa6pc+;!AnYA{)io;j^$zK-;1hccV zLZMJ363x%gFT6y&EEbCw7Z)WGiBu|`_<MC&vNyVXFfK7pN_VE04Kp&sr2KGN1qtMO zp<;VZsgvlTWdo#Et2Z|{x3;!48jXAhQW~KZ-QMah^v@o&u@7mrTAfa3*x4}}jr;ri z2QPVX^y2Ucf*|mUR|Wp30?vB~`0<qYv5r3hP!KqQatLX|ngG}vp5(DeFu<_1x?K1y z?aXi<`Yn>EpHn+pf<~!qL)+^@kuX9ddA!|~^b<bpuR=Skgvm<ptFzC>J3jxY7!i&- zO}gJ$d>WVTX%pGG&aZ`i7E(<r+jy;xRKCBo*bx-@@IwxzXWTj|s_we*Rz$#qdb-^? zbHvYKT`Adi{;2yN&Rs3bFxMe&3@$D;wwG#hw&-;wUI9!$MLBlA2Q1JfhwWowIagMn zxC{jZk%{&6r#0&gG=K+f@bFh2`o?@c{5`PGSd+5lj~Kvfn}N!{P18ub;klLv0rYkG z@Lj#J*`dh-BcPpyHgon8h1`zkkRx73OM_vF%$bNIKh)|-Nt9o8W)H(?BDJ_97`S|d z*4p{SWHdCf0s-7e=(`R_umV4E`j#&H>VkK4Ja9tTI%PI|;LlFAd7J6{u?I^lr=khW z9L7j`^i6YIRU?auTO!iU9LH=Gd5-vUS@FpVMr|<;$*%?ORm3```@bRaKQttiW@oLK zmS&$sxRipjURP}nFmq^A<(b)H=?}<ASv_z_D|IuAWt^wnOE9OKAOlh`02%GcBK{)6 zY3ogpb)k(Q6IM~hf>HU|zxLk6-(l-GH&)mfGWY^u;&^?qN?-hXLw=_HM)?_LTNA4G zsBw*La}A2CNin%bUxA;Rs<;hKb&}+dDT+tWQ+v$u1E@hHKBpB6^8%*UNu>T}-V;&` zC)e$p#<qF48){CauNRS9W{>G(TZQwN5F$c;GFx)QO>SxZu0WlrpuDN!QAjdPFE9)D zX+dDf+Hw?@?*Qw!SL6F*9ldlz)&-T?0ZI@{H{w9Ms2xORiTlP}%9An%vH3|!!`=mn z+mo)9C;F$}SxC~4;*|UK@Qb@@{fx)jZ~6(JsBZmC$gX$Cbhxna%csHaMO1!ZFu79z z3#m5DMw~mOPFziF?gW8O;fA?Uh7T7`rp4$Nu#bHRbCESg+@)Jxo5rcMcd><CBI>>5 g-MOq(pFXLdRU~2PX6q%R;{Do7>GCKGOG|L!Kl0xUxBvhE literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/form/error-tip-corners.gif b/docs/extjs/resources/themes/images/default/form/error-tip-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..6ea4c3838768c0ec3b5dab8e789333593295c15c GIT binary patch literal 4183 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 BA5{PV literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/form/exclamation.gif b/docs/extjs/resources/themes/images/default/form/exclamation.gif new file mode 100755 index 0000000000000000000000000000000000000000..ea31a3060a36a625cb5cfdf4fdc5cb4fa5c3b239 GIT binary patch literal 996 zcmZ?wbhEHb6krfwXlGz>`0sGY+vu>b$x(l^!y&e3LT!$PJ06d9I~VJ7A=2?olFzvm zzpDxE7n6N1CI(zd3A#}bd9NVyZb9tbn*6)9`43}*9>oVgP7HaP6#6VR?0I_l<Fx1} z=`qi9VqauNyvm7uofq{oKmK7!%+sRCS7otp3ZmZ?$Gk6#{ZJAAu`2#Sal*Um#Fw=h zpKB66*CoDe%6i+F`KB@FU31>!meOY(6|dTBUw78N>aBj$UH@iM{ilZ1FAYgw8<V~^ zC4Xs2|JsuEy)EZkXZDY_+|RvbU;E0x_muwXEB`g6=H9}oPy3pmPiT2QvGvWQj<=IK z-^}QIJAdlO$xR=oH-DVo@?~brhxvUU=T3OIWcuUfv)(P3`eR|ok42q77I%GKHu1}{ zNgtQa{J3KF#})HGt(^aQ{i4t7mwj2Y@au-f-#0J#zIn-qEh~O(S@2`q!XI0g{@l6j z*Pa!>_pbc0Z{x51oBkf&`s?Q9|Ns9pjDkTQ0*XIbm_d%z0TG})!N75lfssSTW5a@j z7VZsy6h0k$;Gk@@Yl-LKR#u*NrzJaX3aNBVGqZFP(Gfc8+b>uAY)8hyXKfvg1xYiW zY*bF=5>dbAA)s8qF<r+xY?)2sA{G&K0hV<Ej~5?3J4Mx@hU24Zqk~Xd$paI`^mFX| zQdSk33LjXfYPvdxNG?`nW|Q_7<8WF0s3(M9(=cX(z_G@uje;3dGH<tZwsIwENNAi$ qV3U-QF}uQGtk`gvjekl)<s=qH#&)Ll8WIW*7=$jY;ACTAum%9yIwySq literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/form/radio.gif b/docs/extjs/resources/themes/images/default/form/radio.gif new file mode 100755 index 0000000000000000000000000000000000000000..36bb91d0c5ba6b94f2fae4142e1b0daf16b11514 GIT binary patch literal 1746 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 literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/form/search-trigger.gif b/docs/extjs/resources/themes/images/default/form/search-trigger.gif new file mode 100755 index 0000000000000000000000000000000000000000..db8802beb370d7554d5319c0e0d5c4ecb8da2c5b GIT binary patch literal 2182 zcmV;12zmEMNk%w1VP*gr0EYkoEJ<@NQiwHQoj7N%J7}#uYOy_Uvp;aNK5(==bhkcs zxIKKjMQ4^tXq8B5nnG@~LT|K7aj8Ubv`KTcN_DkNb+$}*xK4PsPkFgecC=A=wo!Sw zK>t8HguXn4zdVe>M}xgcgTG6KzFdO4U4p!9gP(DOo^FGnaD}3FjIVQxuy&Nac$K|H zio!~Uz)6h4NR7lrk;O-p$4HaKN|eS*mB>+x!BLFCT9?RLn8{$2#$%nzWSz=<oXKpW z&2Xg7cCFHQuGD_5*?zLre6-i2uD-FgyMUj|im1<luiB2c*NnN>kG$KLt-_nF#FMer zk-6KOx!0e#*PFiDow?ejw7{XW%Bi%$uDZyexY(h;-KD+Sq`uy$z1g+6$eF;~n8Dwc z!{C|J=bqK)oYv~9!QHgM*R{jhxXa(D$KkBQ;;+l&q1fx9-R`8?>ZjiBuF&JJ(B!Gx z>$J(?w#($V%;dSs;JC}=xy|Ca&gQ+&;k?h~u+ZeS)8@6*<-XD3z0l^n(CN9{>b}|N zzTfM;-|xiD-N?_^$<W!z(caJ1-O|$1*V*6M+1cIQ-N4W0!qDQu)8xa|=Ec(G$JXb- z(&@p}>crFNz}e}--0H;L>&VsT&DZA2+vdyM=E~UX$=U47-08^Q?9AHh&fe(F-0sEQ z`O4k(%-{6L-}}(k;L+IQ(AnnK+~d&Q>d@Wo)!*&e-sIfg;nCml!s749<?qho?#}1$ z#_06U;PlGi`OD$`%;Nja;{DC!|I6$3(%|gW;_KGo?b+k++2!rs<LTb!?ceC{(&6&Z z;q=ww@zvw>*5vZh=Kj>=_}A(G*yZxs=Jwp>@Yv?~+UWM)>G0j?^xy6F*y#J&>i*m8 z|J>^P-0S|`?f>2L|KIfg;o;%q<mct(<>2J$<>%_==<DU^?dj?1?d|R2>G9y|_2TUI z<m&U~?)KsA`RVTS;r0LJ@%iQU|LgJg?(p;P^Y`lW`RV!p?fU=m@$vQb_3-=u@%;b# z`uh9){{8;`A^8LW000~SEC2ui0A>If000R80KEttNU)$64nh(tT*y!e!iEqNK8)CK zBE^LkFG}>sv7^U-9vOM@NU~%eA)QjHT*>le$(I~m!ZeAJrA?J5^Xc4~PoGbo9K9$T zI+PhSYwFZlgErLPznUyPN%h212+^WPlP+!g^qyC*`0nA`hp(*He@|~trMglG&z|~f zxsh{A-%fo(i5_iNhzuKA>zFD_yV4V>V8nz4BgM9pRlU{t`UNbw>({dUaJ6~!i(lA# zgjE_wteCM%w|9>XnepKRjW2fd_49(PHnVlgg2ZSogNZt5$U=8ITuqReF@%Vjc3d0T z?cBRR^!^=O$XBt~h{$MNBh0?DP=^QqD}Frrav|u_=cD(d1CKRnaJ-nJ58Z5J$&gWF z=cB_8_&Brxg*wZGMhY>&01;gbODLC;5cuiGpML-fNZ?cQWO$D~KX~w78acoKMpy<S zs9<XhI_Ow>=;Ra00y@+aODyx;Ac8Tnd67#l$xxFAj55+_LkP$~LzpMQ9Mj)_@wK3Y zgF@`s<Bu`UIM0wpVhE2s_gDg?l{dIR4QMqXsU(F>K1s@o>TQug8Lb?0$T&|Zphu3V zpppwURJ<AIoKGY`2Q^0$g9nhU2nm8K!FVD>o_qEQr<`;ON~jR<WO|Plejb7doeBU# zW=ftIim0NDI?7@`T^Nu>EQqN8LJkrJK$7Drr=T(o6|TZ6E3I@)Q)m>O0-C@a#5jgZ zuDkXc>#PO@`_wno%EN`TzajvLJi``SDY7e`(;_DYRFIB2<_IH!2IkyqimsQGdv3ZC zSip=kg-T(76uv@>hA@ueddf8Mnv1Tw_TnpqHw?@3iM$6(fWbA~mPw4h{60(Tzm7WM z2sr1k^1uKO9MQuA6P$65BY4d*#~!b2GIGf$OR&W#cf=zE9B}ZV$sQ2XOF<}u@F9fD zFw0D`$q(3!v(BcNqRTd)K(KVpYG9*_&OG}Jw826XZFD1!h_i|Y1dKqy+8LN3jw6lW zRR<uYOme{hYOh^E7o`CILI>Ay_+bkrGc#?oD1N{p1RZqSjrZCF?A`a@LZre=Hlu7X z010asa6#6*qyo6$gkRnC7Kkfewki<_zydnO7?Q|1Z#NRR7nQs+N$V@H1B)Gc!178Z zdE~*hAEHQdcise0fO;Q13z7To0`&fS@WU6cb1&R{(mD(CK=a5Y)^O9yF1v8uNAk-< z?z||_tFA}`0i-~VIN;<Dj_tPN1qvh#2!INtp^R6Qq7<O8L?9NZGvq~rcj*8I8uVZb z`0)%5N%&s?2Ux%ZCUAj)h({8h@d*bAa2?&~MmDtZjAr=ag*sc`1FILo305$EiUUUx z0APaq@vjk!03s0o@lpyW0N@1Dn1upC$V3qi;tv}nhAlLaiA)S4aTiQN5s#R}B{GqL zNyvs30DuB_bi;)&Od|}F@Wd!iv5Hr`pz35{gmCO{5qQjF9{uNvD-1)4Uu<F$GSLJ8 zlz<qB<AWmkAV&;>qK|*{VjxBMjA&p%9cNUdCPhd{Ln6`-i)5r6g<w060a1^r#7iYW zfj~)4l8vFLLNMURhd9{smbO&fDq9)ICJLb$&&Wm#HMvPx%9572#HHd;$xJ=w!wbEP zW(+Z*2~6}Ml-OjX5Te;joe}e!Fcd-`sA<h?hH{zBY$jf~IY}WX@|xy6=Qi2tOK^Tu zXYY)sJk!}@%xBWmm-@`6;{FLjZ`yN{?hNQY`I$;+5;TMfRj48d`q1qiRE_wQ=tPCU zP*nP}q7juSMG0!qi-uF98||nb*9lUTYV)BG?S)BCic)l{bP*pVX-E}1(tnoJq#4zy I;sOEyJ7fCEIsgCw literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/form/spinner-small.gif b/docs/extjs/resources/themes/images/default/form/spinner-small.gif new file mode 100755 index 0000000000000000000000000000000000000000..e70f8d80aa3ea21c7f94594b3fdb06b8e9680e87 GIT binary patch literal 743 zcmV<D0vP>ANk%w1VP*gn0K@<QF;I(stl5CB*|fOFwYbQ+&*!_)=e^PB%G>43-t^Ai z=+EHv(BA0M;px)h^4Qwn+UE1$^#9`Y|L6Gs>G%KX`Tp(g?d|aK@9*&N@bK~V`Stkw z`~3X?0000000000A^8Le0012TEC2ui0A>Ib000I5AR&%qNpwM~u55s|LYuy_OxNs< zs~zY6z~EyLECLS!gmT%qG?q(4z(_?>jYz1np?PYhnXov+8HarYhk6asK-Ows657}R zHeP4|u5Q2KautGu6&!?ua$0qFc}oFiWB_H5X>bsB8-HsYb6a)*j9Pn^n3{0`hlP@< zoOGX|dKR)4k)UO>795p*ubF_Ii=d!*dZfa>n*kHc6RNfq%oDAi!o!ULv$evvvbt=q z!<y5<lE-<Y4wuz;;sFxx6ddau6z>w_ukzN8vfBER8M+ZjkibE{V-5)7<3Owq!*c`; zZbPWh-MfDn?JaD$;UPa-KQ4gufk9xzjvEsH8f2I-!88O4VlIiPK+j2*1yQ!-6d}Sr z9};~22pZv~0tPje(2RwvX;WPU3#y5_CaO`SGi5rWIyGWfmlo}b9ec0S(WEf7DhXhs zEr}g)<I0^&cZbuvCcU<ly7#4)ziYYfty+<+;ftLB|HX#aDOA0Jt(sN4bSvb`U=JHM zN?9!e#$<em49%fru7Npmu1r}mE85C|Q?p*ZGeFOu9D?E|diAwu&=|J`JiTCnL|X`p zZ+zmA*xKU9%MEj&JZx}V8s{`;j`Cc#f3}97{<aR81AG(rttDU0JSTh3wpGYZ4Y~Ty zW-#X8m9Cemm*m{{nK9w~atKBT0s{_YENej`&m?B>*B?84_(hI$j_{$5d8e?lN`kJK zBMKyBIOvUrZdB+O0*hdnA&RD)$4M%Mu(D!{jjVM=5f2csV-N)-wnZ0z1^FWoMjq)y ZkbiNJBLYFXC1qVT#6abhSh5fT06W`UZ>azP literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/form/spinner.gif b/docs/extjs/resources/themes/images/default/form/spinner.gif new file mode 100755 index 0000000000000000000000000000000000000000..1e323bf0b68433bf86df2bd885c11a607a0c8b9b GIT binary patch literal 1975 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 literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/form/text-bg.gif b/docs/extjs/resources/themes/images/default/form/text-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..4179607cc1e9486dd6fcc8467c79b5b41dbf4f76 GIT binary patch literal 819 zcmZ?wbhEHbWMmLxXlG!!_xRa|&!0bk{rdI$_wPS{{`~#>&!4}4|NZ;_|3AYh7!85p p9s-I#S%6;r&!7YHC@4=ba0oCkvIrP7I50A^3uwfgFi>Ey1^^@>A+7)b literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/form/trigger-square.gif b/docs/extjs/resources/themes/images/default/form/trigger-square.gif new file mode 100755 index 0000000000000000000000000000000000000000..3004ec589026c038e7d056e2b99e3a877d1ecd50 GIT binary patch literal 1810 zcmeH`=~I#k0Eb@@(r`m7uUt*s$}CGwv#`U(3p3rqV|JbGJ~p>wuw%A$t1UBIwalz( z+{&#$%ZT+L@5&Oi)(njo!2=aJUO-TkLqNb6-<{omV!!O~!}Il-d1iizNhCtlp<{qI zFbe>0K=r2)<>eaTOHke`M`}Tc$K&-w`Z;)h1NmlC>qos_ACXo(VMBP*8NSR=2g;eC zTse!>fe=?>)ai87)6-h5_EoP^AP~Uz`M$nBKA*3fwW+K~cv^AWkZNFHpqV2d92_)R z?LwiDBeg?jq*rY07MUBnWnJRA;o;%P^jikAjW3;mVK^eS*lI_(V=4h;GFfaNL{^bV zWP|59V<xEy5zQbPjmBi1*O@GOldYBq>CLdoYHQ)h*?r>{i-ixF%vSq=!rTU`t#k0} zUggI0TWvzs=P^~+(A0<ii9X0u$Ag->Wn8IQW<s<&-PF{S-EN2H5wQ^&QcRg`h*&Jq z7_4l;WWU_Zg=|d%1!O`vqe_WH!W~mbX59KLF`8i{GNZ&YXYUlKxni}|YE{f45Crur z%r={?L!cIpTLen`*w~obFx#&}cuHh^7KuzR8BikzgTZJt>MaOQ0fTZF_<#RVfdDJ| zU-P<u_|GQ*X9VzY_T9mx5*?hEuHE~QN$V_dTe0&LomTPTrgvlzk@d2&>$Wo*?VVKr zv>QMX8JhcNpY6P}`bdd8lUmhVPVfpMuo|9opEw=-v~3MQ=RHRG1nv9Oc-)Z|m)zHr z)TI1eNurS+6-EBZuS;&Cc#vt;!iFD%gK}8SH6tyq?@1m&3uTYPa>Im(Gk9&3h6-_B zp3<trU~o%<_xB934?IBmB!9b(n5W>}k4Vn(P0zi~{h{VkGnsuu#lr^Ct719}PhhL} zwJTGMKb;z>Igsvlx}rs~`R#5PcR8;)iR<afVxf-27!<v!mBg$0Xxx%BU`9Lc*cL1; zVz>vvM|Jk(+(lJoch!ov6ixFnDlj01<hg7KL(m?2=p9ZcyOZ@e<GW0J*Rq9SK%9SA zSSf4S+04@)Jg{<Ng4_C)IcUE`!ceSRhP>1<B~(C-UldxJDk}=5W(EA_b5<2l_!X9# z;BlOOhx)~Zj}ofS@eJB^&y^1gD{hdQ2}@nK?FA3!WfJHTOp1X@#IA{t$-76`kreBm zS%ts5H2UbrT(>>WQkv_op8RKJdoL^uEJJCSo!-%b_pjdzFFrJmJ5u%l|L{a0h$@c| zQG<Lbg!{xi3X4Xsz|yH5?(wi&XXV28I>*K7nT$MuxPuq(<iAqK_IYs`j9HonAgQ@P z*<r?-=a2K&GJs7+AChZH;82|RTk}rF3p(QygHiX_mS7jKo=jSt=9x-r1lQs_n&X(# zj;al<VO?$`lwhI*CIyJCzx^89fmVI~p3)*dzc%ER0?X`p7Yv}PnOAjhw6D~)<tN_w zwS8F!tlBtw+AE=v9PfqOS`94lKEg!1hlEK{?#V}sH?T3QCqvp?ZnmB2@-J9d4+OsV zJ?FPq!%pxE=cLrX4qROv{u)(`H-hIahq}NW!2qi-d9^;@Yj@cC$nI4U(sOOZ<VCrB z^2xW206KsDrsY?30cK&w%&Df1Oc%F~k<$g_*wHh=QzoyZoJBxCMyzF@AGrY4Y#z!g zc$6qTJX2FE{yOvzHdLAz^2>trliLXcs$F;z<g$knB`qx21&Gy@k|@ykX{~Ld`W*Sy zczPUuPSZFT9jw`ZE#!g}C79ki)j+|+y7yk~?8#QGAKTEgSqo2fN7T$s7j4b{b*90G zYB!JmoDCRSUBXxv`S01$MxOSY?J`-pHrgt@7}{=@bdJr>O;`Hcjg#WrSFHN-C$kgd zQHVYJk}Y{TLeFA3E+FTQu8@r5a-tocYEMo=ei(-!z!|5@yEuY}*X6J=)3sNTi&Up} Wr&xDc=v65PKOA33bU>qlt$zauvnrPW literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/form/trigger-tpl.gif b/docs/extjs/resources/themes/images/default/form/trigger-tpl.gif new file mode 100755 index 0000000000000000000000000000000000000000..e3701a383107e090fe25d3fb8d63aaa9290435e9 GIT binary patch literal 1487 zcmeH`{ZrC+0DwPCBIojs3o|_0?P^-#Ox&%!R?e}@xx}{YYR;I~>N*jn-Qn&=-p-KA zeA(%=S((N$6_|l9fQC+Hxi9#N<V0|!DDo;QATLuW@#Q=FBlcU*AMpI}+&y2UrJnrw z8U<iMIRHeM$n2Qu?j04Wt)fY*SZ$LkEj=omY}_uJSd^%3ooZX3dU<kkQlrsmwc4qv zDV<LDVuu;y%*>2luQwPBW3%=l!}^GELum-8=KbTwwF%Rj%DgphgD1_aTFbxxSbc_7 z*tiC}T&|Us6}Q{%@p#OB*cyNreCzg?@X|W$2*O^k*XQ%C`Tc=FAQ%j8?6A4LxwQ?$ zFnGh80{=sSgX_p0D-7aZyI(&6LSe8g^uSq3699<4vDu>uKv9OqBv(z-4-J(@5=c^c zCvT(%gPg*qb@7!*M7$td*%d>&myq6H6@|%BvEwc%rj<`}&sV>d68bLbzTg)ez92R{ zL%OWyA+pbMNDmz0eA2_<oc^QKjK^PfQl2RzZd~MlttEeXsxF7MpKcxFq@N*H^cAi; z_RTVKz%$nBq3=KIm6!*LHm-!SxSiIKyUyG7=VV<AgSSGm=Ch;ll@m>8Du?G1p`W#a zi*2IW=5FT;Nm@-f=nK&Ju|GKH$G>G{YFkTqB2{y*&pLXG@cG}HCp8gjUV5YGKrX;c zKcN|~+$?$NF%5hJAHnq}74oAsZQo5Wi&P-SqG~)}Tn55ltvZdK`IT)rc<_XRg^Z+L zEoNSBGTq*jc(eqdQjVJMM2OG;fu#t{Wg$qSxg0~TkXJ<4QMskK7QwahebOaMWkPZx zRCQcO<&}om1lH;#2Gv?~f?O}Zn-ZB9UH!@7hU*~W__FO@Msfvo|59dNOf4yZWj)Bw z%xm6#wG3~s&!Wh#gS~vA{n3r&QHV_+#^*Lr;_-`|0`e>QZ$*LSBb*;mXnE6}$b132 z(DJsR0TJCw1<X|aBKI;1$bYY=wBotd_9!AJDN!$cTw6yH)*_Oc9Ifp=W6Od)S?yU+ zyHuA?E0-vQxx!z^@||KSV+oQBM$%kuJhA}ldY<Tv6Um0d@Zw^W$<;m1n1*`h7|vr| z9C9zzYpbKhOJ#1-u|~@yXS_`R(+7k<OsDkjJ~#KBwm+RrI-!4I__X+`|8S51SsiSb zbSsDhibYg{_vx-r!wMj7i;Di&?)T%ogKJ^v4(a{@wyz&2p8XJduVjumbW>C%R+wAP Mbv*YluxN1lKj3usvH$=8 literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/form/trigger.gif b/docs/extjs/resources/themes/images/default/form/trigger.gif new file mode 100755 index 0000000000000000000000000000000000000000..f6cba375ae3a96c87639a5b3034d204953d1db14 GIT binary patch literal 1816 zcmeH`_ft~`0DvC>l)V*M8qq2uh!jyON)b6kq!482iD+?8gcdhyFlbZ|=|RDBw1|nK zYy=g-LKp%@NJ7F0kj2X&VI?8&k(c$_{t^AH-#_r(eRtok-4Q`Qq@Dnl0SotmX1et2 znD}NDyN)jG6Qb30kilRKf(n0Ju2yFdDUimGJpp_36beNxUC5kJ*3g9v!Msd^{)2b{ zt)YWDy+JOQ)A*{nxjFfQrm0UnJ3HGlGWq@9yh#Kd7#LtOnJgA-XlMwAVF=L=4-dbm z3fXKnRiF=ye+a^8A5VqoQJqfL&C@akG8PEYxRXj))60QJM@IwV@*uUQp?9K-gJ^UH z4u_-FYMW@18U{!cz;a0asZU(Z0H>#?IrHd{2&N23`ni(|NYg@>b`8qZYBi$ODPSFh z7`jJhAVkyHJFzMLVGDbb%7s2qg)pKQK<EIdW`dB;fX>O~dc9tw(M&*S2TMv}O{ul| zX(hr_p*$X+#+A0Sq=O=OW@d&4Y7hhgA#_j(ixyB=hq5JVKA%tHNdpt|spDd)a$!U? z)5sF_^Hs10Wr_7%E*AvBz=Vf`lc;0?RY8zKjRwZ&(}g;vQppgb43Ta~iVm}RDwPWO zpZ~tVO2otn0PX`m|Em6d0x&}XXEXQ6TK?^DjDz>V9vskq*Um8{ZzSEb>&{ZYsD`$> zm)(zuOII)3T~F#=j=_{4?5+PUs&M0;zw%rhk5ixe#BCnweRnc8-_pj+BdVzUj`_L_ z?<KefDg7m8b>#D?-(@DGs1nWi=zJ{hbxhrf&%I9P;z^0j13zsoCgUyB!LQG$M=6Bn zEAz4?W0%OlXZ*aUKJ;U)pd(AW$gbc;9oStk74bN_sb181!*oCQpv$^Dw9=iqU&fOF zA~XHNGjV!qu8eunzbD^*Rqi>fhV#@l+mqU6##_(wB0iO=C7ZkUxySYgSDd!7KA4`t z06t~PYMpC;jw9vdJDi-&MA7~e!G~Qkj#U=LMSSMXfRx;YLuK16N&BjCr(TdvP5rdc zt{pce<PV3gr@f%;aL&TE;VlUt+W<^fCdJ70Vw_^9qj%7$F1MuU@-W9AaVwWvZP}P% zZ1rntxu@05(>*VU*awki_c3{bJ8r)Ojoe=08|_7OJCv7k<iYy)_g3e5n{Vv2bBUb9 zIy;6urWB_5gc@7#FT#;+5{vO&#rr*s!iiR)af_WiF&W{7$(NAhkB<)Eo$SLa?MZ|K z3G8;)E5%n|5zf@#$6KUrZt5tzUhcmVWAnDIyDYe%7O)8lPc?Da9Qpun9l6Zj^p%Af zHpe#p6yFH5Jg4sMV%KO?K(I44!@qg;?3%^fa*{<sN6qOVML8jcq&RCs{^N<PqPpI7 zs<Lqid)_+TCr;#$9-T}eugy&Eat_Em(_wWYfiYuFUWyAf^(dFEtMo`HO{<dJbenxG zd@^?ajh{*zwzAz}{k>K{Qgd2!MVLiRi_8Mw-eFr<mt(P~z(~<ioK~t>w8P7v;1u9x z-}%LDSypYcB`tY<ug5KSWsh6QllE@`lI&gBE5aS~-`2d#tzV>g>w`BBcdlCOdCe)M zfedWoWIDv&Q{*sXo@UiMg$8V^0TPUXMplY3&fDl%31>0(Zc)nn!H}aK4fIu=z6)kv z-+Z?)QwhI?k0h;tqPxe!h}L*+mSyQBc8+_@CEm253L5eZ-+%~<K;J6@?~3GXk4G17 zH1UtF->}u_Mh*3<*qT_XkyU<3LnMio0A;#iIPH2>?PU+mB(da-cCK;QqFvtUd_gzW zR3d9re%ms)ZMLbqzj@+o@P+O3jjpA7c>MCCZPR2MtU)a-vAv->;ui9GR8TT!P_r-l zp)l_j*PxyKbA^6(s&E5fn9Jqqg!@{l99z5`bkz(Dw>Ii+vxSa)plM$yeY@T53FcuX yYq-rg40qd+b;#6`NHN(^kZr9xY#!i+x4U-1Xsrs12{a3_fn)Cim5HGM5d1gxR!0f| literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/arrow-left-white.gif b/docs/extjs/resources/themes/images/default/grid/arrow-left-white.gif new file mode 100755 index 0000000000000000000000000000000000000000..63088f56e1c33fd23437ab00ef3e10570c4a57fa GIT binary patch literal 825 zcmZ?wbhEHbWMSZBXlGz>`0uc0#Y_e;`2YVugfU8vhQJ630mYvz%pkAofCx~YVBipA cVC0bDXlQU?ViVMIiI|XhxRH&WjfKG)0LI-8@c;k- literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/arrow-right-white.gif b/docs/extjs/resources/themes/images/default/grid/arrow-right-white.gif new file mode 100755 index 0000000000000000000000000000000000000000..e9e06789044eacb8a695cd1df46449bcb2b9aa07 GIT binary patch literal 825 zcmZ?wbhEHbWMSZBXlGz>`0uc0#Y_e;`2YVugfU8vhQJ630mYvz%pkAofCx~YVBipA cVB}zNNKj~OV&PY_IbpESp@o^1jfKG)0Ls}94FCWD literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/cell-special-bg.gif b/docs/extjs/resources/themes/images/default/grid/cell-special-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..d76ffbccdc66ff52433560c893ae9f3130152a2c GIT binary patch literal 1636 zcmZ?wbhEHbG-qaH`2L^a#fulOUcLJA<;$l}pFVu}@b2BaH*enj9|fZ!Ffu|w@h1x- z0|PsQ4g(N?@<jV+ju;s+Kk7^DA;96tz{(+FvETs%69>13PQn3)hIR%euQ?tY7ai@E uFwVMjV&mfD{R+-qGM<~3oSdu?yej78rlqH+8zi5a<GFd+*-4Cy4Aub5ZW*Ki literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/cell-special-bg.png b/docs/extjs/resources/themes/images/default/grid/cell-special-bg.png new file mode 100755 index 0000000000000000000000000000000000000000..0bcc23679b745859c922462279904c807ab05582 GIT binary patch literal 121 zcmeAS@N?(olHy`uVBq!ia0vp^;y}#E!3HEvmzt^pDVAa<&kznEsNqQI0P;BtJR*x3 z7`TN&n2}-D90{PHw5N+>2*=FiKfk`du4iLoYy1EIzwv>L6f@N#hBdp@_pFUkiUlfT N@O1TaS?83{1OR1r9kKub literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/cell-special-selected-bg.gif b/docs/extjs/resources/themes/images/default/grid/cell-special-selected-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..f1da867ded3e87e53d6ac3823dd7fec84e4f3bd5 GIT binary patch literal 1640 zcmZ?wbhEHbG-qaH`2L^a)U6K}?tQrT?8}{JUv545as!ASeYy7N)0GFGF5UZd1}J;y z!?`;j{*Qvu5Ezajp!k!8k%57iL5BedKzX8lG)D}_cpmi=u_3_W%D~DY;V^-rk%^5@ z!=*vNv7wzuLL-1-!J?zx62@6~PHbF!ykEh&OU854l9Q7)f>*_y+_d!cbc5tmb38XM PJ3HH=_?3&K0E0CEWa1PZ literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/cell-special-selected-bg.png b/docs/extjs/resources/themes/images/default/grid/cell-special-selected-bg.png new file mode 100755 index 0000000000000000000000000000000000000000..500c3bddb2ff42b2235619190fe461989f81559b GIT binary patch literal 136 zcmeAS@N?(olHy`uVBq!ia0vp^;y}#E!3HEvmzt^pDVAa<&kznEsNqQI0P;BtJR*x3 z7`TN&n2}-D90{PHmZytj2*=FiJ>UPl{{Nqchv)x)X9MQL^&HZA-{jAwB{Y0`_-RGf d!>WZz3|BlfrsWsL2Lg35c)I$ztaD0e0sylZCIkQg literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/checked.gif b/docs/extjs/resources/themes/images/default/grid/checked.gif new file mode 100755 index 0000000000000000000000000000000000000000..fad5893727ee8a13f428aa777380ae97152adec8 GIT binary patch literal 959 zcmZ?wbhEHb6krfwXlGz>j-2EYIms=0ihImdkJxD*ann5GrhCOt_fD7*mN_@JU|~Yh zlH}5*DP>F3%9rQXt#bJ9P}a7(ufM;0=I)-EyC%%tyKeK&xyuhMUUy>sj`JIKUfjO_ z>dyTab{)LB=kT>-Cr%wbdG^%lGbhhnIDP)=+4C1qp1*tM!nLy(uU)-*?dpv?S8v|E zb?f%+J9qBfy?6e~qdWJX+<Wlw{-dY&9=^Q)=;gylj~+aF1_aNazj*ob)$7-9-n@PL z_T9TzZ$7+z_wm!`FP}bt`|{<>*RNl{ef##~$B&;sfByLSi(wRuh5*qap!k!8nE{v; zbU->ld4hps4uc|xjK_ur2b)<{HDXQ_Japi6Q1W6iYUvPA5Rzlscwpk<4sO9XmXjI+ zi&_OWe7|@wG&BoL67X4M6R7Omz-DfcwPk^l8<#v6OGU!M%_;%{ss?XfI5Zp-5OGar zYW(QXz|GEX#*rx~s>CVD%q0^Mz{1hH&cW`(j0A>8wr;ZvZ4rjePOb7*MGqXL4LK$% TI;tJY@rY17bXb6iiNP8GS6tA5 literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/col-move-bottom.gif b/docs/extjs/resources/themes/images/default/grid/col-move-bottom.gif new file mode 100755 index 0000000000000000000000000000000000000000..cc1e473ecc1a48f6d33d935f226588c495da4e05 GIT binary patch literal 868 zcmZ?wbhEHb<YeGvXlGzh@R*?Bu|OeUfdLRj0MQ16j0+A02OJ76I8<B+sJOuJpCO>( zLO{cVgpLOZ6Fwx&_)sw8LBWC#1q=Q+toSft!~X>b{xgh%(GVD#A)xq^g_(hYn?VQU zd{CZX;BaIR=ZFzVT;Rwl#vu{Yu%W4$ky$xng~3BdrVc>?i4_ctPK=BUEM^-R4mL70 a^J-WG2rw*VW@C5a%Q0YR@NEQ2S_1&+BRBT| literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/col-move-top.gif b/docs/extjs/resources/themes/images/default/grid/col-move-top.gif new file mode 100755 index 0000000000000000000000000000000000000000..58ff32cc8fa2aa1be310b03bb2af77c1b77abe93 GIT binary patch literal 869 zcmZ?wbhEHb<YeGvXlGzB2v}ec0Yn=d5;izw0MUVff&&2+Ky)FX;sL{dhJc0#0Ubc} zA)(_!!h{bA6aE)Wcu+6{h&~i70HXg5EB-fZ_&))NcKly(;6KAC7!84;69S4qS(q6Z zxEORmP6p)(1`a0%QH=!(icQSyOsrlPCNMTPws0wBZ1~W?;KDAhU?QO~A%Uffn}KIT gMS>G68wVGIhem=U(^LUb4h;c?We$u2%uEc{03e(}^8f$< literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/column-header-bg.gif b/docs/extjs/resources/themes/images/default/grid/column-header-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..5895dbaa507b86b85517947bcb91879357dd045b GIT binary patch literal 1858 zcmZ?wbhEHb<YzEr{{Elg(UWISo;>^U<Hxse-@bhL^63*0efsbLh(5e~2So4Q0MVOw zuim_Q_3F)wSFc{Yc=hbXi)YVXJbCuw|0oy@fgv6Oia%Kx85l$ubQpjDlqcFpbHosj z(oyGA6apOo8CW@FJT@#i*v!PP5p!b0!o%%coE~#LHZD5aEySI1=fuXvjr|JFT{aGz zmYkf-5wt4iq*3GP=?2NC=DaLwJUiQ>*yzT|&CAcTIW%+0zFM&2;$jbZjo4FLG+UMj zEcWVk*t+WKYN1V8cTbr%TwkAXm`TEW+nSr3GcK=+J-u!1?d=7RPtEn-zV7bsiqEg^ zp5DIx{{9ALZaJSF8y+6+5Y~=6vt#4q;}ev<=lSg1^z`%$<LrB9c5Z%tet~nhobRqJ zFE6hMULALK*Vfn9Hzc2)=ev8`+uJ*eU*9{sd;9zQ2b#I%{r2qm`1r(R?f7$hc7A?- zVX^mozrDM@zP_<J`~JDTyT8AGaJXAu-hbbopPye`ULAja-`?NfKRiA?-+%wUzrTNc MetlowT7khD00eTO5C8xG literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/column-header-bg.png b/docs/extjs/resources/themes/images/default/grid/column-header-bg.png new file mode 100755 index 0000000000000000000000000000000000000000..b181a479bf15e47101769cf5a15b3f054582c037 GIT binary patch literal 293 zcmeAS@N?(olHy`uVBq!ia0vp^{0t1tCLC-)R!VclP9Vin?Bp530R%N1DIGvQXMsm# zF#`j)FbFd;%$g$s6g=+f;uumf=k588ybOv0%#IHC>vxOG+5TW|k$A4WHa+w!$M@3X z-^}~o-h9Je=%fFyM!WCr!8fAb5^aft20h&VflWEV-gbulkEuW}F?hQAxvX<aXaWGG C#a$Ty literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/column-header-over-bg.gif b/docs/extjs/resources/themes/images/default/grid/column-header-over-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..54c1294838706697ef29f4d0662299feffbef473 GIT binary patch literal 1767 zcmZ?wbhEHb<YzEr{{Elg#*1ICKK=PW3PwX<M23LkPZmZ71||j_1|R_CiT2SPF(MPf zsHdSJz;T3unM1~7!-9j&9Ku>LCpIiR+|JMFF~?)$qNCjs##whxY+QW2U%|Oc#&gq> zlan=qSH+y%wDk0JgXB|lJU1^pJKLi8)t!@@m!F^S(99+4wPnS{#U7KjVoz;Zd3kxj zVz0SgTUT9O9kDs<?y0S-udh!y+$HP1ZOzTi8JAbZp5C_h_V$9ur{;QZUw3zR#phRd zPj6p;e}4lrx17(84G#}@2y4fk*|G8Q@d?V_^L%!0dU|?>arV74J2yW+zreX$&Ue?A QmzP%rua28*uE1ao0O8YYqyPW_ literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/column-header-over-bg.png b/docs/extjs/resources/themes/images/default/grid/column-header-over-bg.png new file mode 100755 index 0000000000000000000000000000000000000000..3f206494db775af4dbed9a37fe52d74953c2451e GIT binary patch literal 283 zcmeAS@N?(olHy`uVBq!ia0vp^{0t1tCLC-)R!VclP9Vin?Bp530R%N1DIGvQXMsm# zF#`j)FbFd;%$g$s6x{3S;uumf=j~ZbJ_Z2>2FD}+?X@m;T>8k)+I6#T)5a|u4<)`7 pIkdfSUF|;0!v;Kq3H@QdCwYQbb;bNWfk2Nic)I$ztaD0e0sy)ySg-&9 literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/columns.gif b/docs/extjs/resources/themes/images/default/grid/columns.gif new file mode 100755 index 0000000000000000000000000000000000000000..2d3a82393e31768c22869778698613b2f5f2174a GIT binary patch literal 962 zcmZ?wbhEHb6krfwXlGyuEL<5_v@*CDh*pJ^t_~?(6IQl1ymDPc)rN@bjZrn5V(PZU z)NOSrd+hMvA+B+IeDltP)?JCMyOZ1ZrgZEJYkQj3eITRnaL%L?Ia5yNO*xf6?R5V1 zGX)b57R)?XH0ylvoQuVCFO|-_Qnuh~<)Ryvi*HsfxmC5~cGa>w)ywZpoH%jn)T#64 z&D*eH!>(Ps_U+r(Fz<NJ!eeb~?@rosZ_>^e+YaA8aNxk9Lx+wXJ9gs4iBqReojG&n z?%lgL9)0`&|3AYh7!3i+LO}5+3nK#qAA=6a7*L*I;F!-K%OT^jVZp&>mh3YgjfYq| z1(lp?K5S5QW|J^Yxp3pe#^mFCnoeCZo|g`B%4>LkiP*V`#cPUi%)1K<H#MD=Q;qtN z@j#iWbGlaKqc0a5o;M5H6+Ku{x!EOf9*+xysMVGg{HzK!cQzc{!sI7rU90fGAaup) z>8vI{DjqJ<J}0Ub@<XCwq0Z^e8q7y_Bs4a$aBz#LSR^zwFfcMCDY!@oFjxZsc&oc! literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/dd-insert-arrow-left.gif b/docs/extjs/resources/themes/images/default/grid/dd-insert-arrow-left.gif new file mode 100755 index 0000000000000000000000000000000000000000..5d923b2814e84f99e25731e3670ddca44b57ea4c GIT binary patch literal 299 zcmZ?wbh9u|6krfwxXQqwp0B1;qGMcTXw_iu)M4v6!8LHYPsIG7_+^o4>*BN5r{ru+ zE8dX<L=^`Mn)cVUo~iEM-`;Z^iYA@zoql#Q5KX((JLk$22wHSyE)cE0z7&o&-(Iuh z-p1RnZ~gxBi-D>@@h1x-1A`ia4#-rHpBUIY93~fd=t%XSSW=X!RXD?mhh^5u1eqRJ zra}V|4(7yC6`@KS8NXveD>;rxe2zT3&O@bf;od_Jstz(SGPv+_sRXDB26XrI_Bk?G F0|2KMVH*Gd literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/dd-insert-arrow-left.png b/docs/extjs/resources/themes/images/default/grid/dd-insert-arrow-left.png new file mode 100755 index 0000000000000000000000000000000000000000..5dc696781e6135d37b5bf2e98e46fd94f020c48d GIT binary patch literal 345 zcmV-f0jB<mP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00004XF*Lt006JZ zHwB960000PbVXQnQ*UN;cVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBUy>q$gGR5;6H z{Qv(y10{fofkH6I3@AO3$p*x`Nil#0jeqs;pT9Ds7{CaN1)$9r#n~kE{`~pF@bLXZ zhF?E_GyM7i!oL`P0x_8Wj$ni2F7#hzWPxfvDaI<Ur@*bm@aNwj1{rQSF#Y@QUm*U? z@cSPS|NR3M1JS=3R<B%(@B+};zyC1)Vfgj;7g*6BprYSk#lI0W)Bup&pZ`FyUw=@& zkhwGNyfB-H0S7ZD!^4*k8D77CgVos}uYolG`Td9C{=!F$jL0c5c2&qtph7vI2FDF) rJ5G=sjX=%1K+Ok<)r{hW5u6tQ<Dt8}dRo)T00000NkvXXu0mjf%~_cN literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/dd-insert-arrow-right.gif b/docs/extjs/resources/themes/images/default/grid/dd-insert-arrow-right.gif new file mode 100755 index 0000000000000000000000000000000000000000..8d154db706aed7ec585f92f6f35743d47c5f5168 GIT binary patch literal 301 zcmZ?wbh9u|6krfwxXQp_QETSi;q5uWHKZ>naJo<A%uoo5TM_|83G-u8W+$hui_ck^ z0YY2TineD1QPq*6rZbft`&xUCcTPOjH~s8nAewh^=Auh;S6^QWN1Jc2*?Di%<;RzQ z{{G3pz))OST#}j#WB`F^wH=sd0g_@swg-bQ14nXxu3ln6K~Ab(N@7W3N@_`Ja!Gzs zadLi9s$Ozpaz?6NW^!VV9<n)#KUo+V7?c@wK&FBG#K7itU}AxXj#U4NB}Frrbj)ya zX|`DDr80q?Ik3S*>@X+Cm!COivwWT<1&XvJeYQNiErjd+Mbq870xT@Ntjs=&42%KF O-2R=tef=(u4AuZIk#dp% literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/dd-insert-arrow-right.png b/docs/extjs/resources/themes/images/default/grid/dd-insert-arrow-right.png new file mode 100755 index 0000000000000000000000000000000000000000..b1a1819238c6de8f9e50988f4151261fa6ba64ea GIT binary patch literal 349 zcmV-j0iyniP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00004XF*Lt006JZ zHwB960000PbVXQnQ*UN;cVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBUy?@2^KR5;6H z{Qv(y10{fofkH6E3<#LzvD<5s6C2qE{QB|B=I8fcSCPdSL9tMJA`=`HfB*bt`1AV@ z!|z{z7=Hcy4b%X_zZiZ3F^HBFl4SVx>o>#A+qW*AYQLZl(!&BX$x7Ik;qO170ssEM z@$bKXf%rGW?|(r27bf<H;men=dRkd(C$CMrWzGV#8Ke-d8K~$tSn+QJ{TCtk>-TSv zD}TdX0CM*JhkLO)8|Y^+n~Q^sK~hqR;q|N647YFGy>NTZJsWr!5CaSfwJm@a><8NX v2&h?|<XE`SfAs`V^Fg3%bunULgy#hS2<N~z-E6GT00000NkvXXu0mjfI|-VZ literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/dirty.gif b/docs/extjs/resources/themes/images/default/grid/dirty.gif new file mode 100755 index 0000000000000000000000000000000000000000..4f217a47959965037bdaacf23dbcbe800a59273f GIT binary patch literal 832 zcmZ?wbhEHb<YM4rXlGzJz`*eT|9^&2Fd70QG6WQVvM@6+Ff!<Xd=JVK3>>lyj2t2o f3la`CGVn;rtSCr4)W)vpHOFJ)qNAORj11NQ63h`c literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/done.gif b/docs/extjs/resources/themes/images/default/grid/done.gif new file mode 100755 index 0000000000000000000000000000000000000000..a937cb22c84a2ac6ecfc12ae9681ab72ed83ca78 GIT binary patch literal 133 zcmZ?wbhEHb6krfwXl7towPL}<zP7ouCvV@ncJAy++qbTn(BHOd#r(qucV0Mmw7fK@ zrK$4&|Njgyp!k!8nSp_aK?fuNGJ}D|Xu`>p0*huu%~roJzC1V7qiQ)z(xVq;t8Q*e g@TwP&*%vbDj%DY0^FxMh_Sd^OqF)Bg<zTP|06#!B1^@s6 literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/drop-no.gif b/docs/extjs/resources/themes/images/default/grid/drop-no.gif new file mode 100755 index 0000000000000000000000000000000000000000..31a332bf78624b183261a82046f3e09d10af2c12 GIT binary patch literal 947 zcmZ?wbhEHb6krfwXlGzp!@#nRoqGc}|3-e{&EnEqrRBHDEALd-+G}jK&)jOiwcSB` zr$f$ehuyu7`3Iefjysc_dLh5?W_R!H{)u;|&%8H#?vvGPp03~U`tXr=r_X%8edpWb z$3I@b{`LO-zu&+A|NqZ03PwX<5Ql)`PZpr-{xj%++z84O3>*^}7&&A#5)LvkG7IyS zOnBJr%r7CL!Q$}XP&==XoWqO@51m<Cn013BCTwVE<rfyKn_%#92`fJbOWFm7q6Md! zWONt=J}5RhO=nUsVA$}0xw*xG)#*pVg2uqv@+EvRRS6FMjh^gWQ$3AWJIo1^UDI<* mDD4ElviCe6%MFi?_DEaT%{g)5A$y0Ax=_vpg#$+#7_0#YYj80D literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/drop-yes.gif b/docs/extjs/resources/themes/images/default/grid/drop-yes.gif new file mode 100755 index 0000000000000000000000000000000000000000..926010e172a267419e420a4647973b3e1ee28926 GIT binary patch literal 860 zcmZ?wbhEHb6krfwXlGzhTA+OR?cx9b|1*q&(GVDUA)xq^1?cJj3_2jMgYpCehb03e zhm6OD1qYisgtc@e91b`&^2+M<NHi!qGcsuj<*X27aBY^im+R>;T<kPSR=B8!W8%`& K)AgB|7_0#`bsP-< literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/footer-bg.gif b/docs/extjs/resources/themes/images/default/grid/footer-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..126120f71eef89987818dcf64e6510ae83c8e18e GIT binary patch literal 834 zcmZ?wbhEHbWMq(JXlGz}`|9@lH+SE^x%d9<y$^36e0cZp)BDGtK0N*W@!6M;&%b_t z`StVbZ(rVg`||et*LUB)z5fA3-#`5P{_*GcPd|Tr{`K?A?_Xbk|N6!-3PwX<2!?>- zPZpr7|1;=-+z!eU3>@+d`VlJv8V|8>3M$wXTxdAR#L6ikV-V2L(7?dJ#=^p24FK}3 BP__U7 literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/grid-blue-hd.gif b/docs/extjs/resources/themes/images/default/grid/grid-blue-hd.gif new file mode 100755 index 0000000000000000000000000000000000000000..862094e6803f522712e4d193c7becd8e9b857dd3 GIT binary patch literal 829 zcmZ?wbhEHbWMmL!XlGzJa`*r7`~Ocp_<#1%{|it4Uw-=k+VlT6U;e-I>i_*W{~x~l z|K$Du=O6#S`uzXxm;WEW{r~*q|F@t2fByde=kI?YU>F6XAuyCfK=CIF(E0xvbU>Z} m<p~B3DF#iS2?C6VnAv$HbOI(Y9Aso><=_zzU~q6?um%8<;zWG_ literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/grid-blue-split.gif b/docs/extjs/resources/themes/images/default/grid/grid-blue-split.gif new file mode 100755 index 0000000000000000000000000000000000000000..5286f58f6f798184c3eeacba1352cfd39b9ae03e GIT binary patch literal 817 zcmZ?wbhEHbWMbfDXlG!Ub?iS7FpPrH5Ezjmp!kyo=<ojwIw0SJ@&p419|I$cfJecC NgH0U#Y#ba6)&Nl04Iuyk literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/grid-hrow.gif b/docs/extjs/resources/themes/images/default/grid/grid-hrow.gif new file mode 100755 index 0000000000000000000000000000000000000000..637410420736482e521957d51d44f9da47f519de GIT binary patch literal 855 zcmZ?wbhEHbWMU9wXlG!^UvU5W_3L-<-o1D4-u?UcA3S*Q@ZrNpj~+dK{P@X}Cr_U~ zefI3x^XJcBym;~Q<;z#EUcG+(`pug+Z{NOs_wL>M_wPS^_`om<Mnho8hJfNv7NFbz zGw6VP0Ll{#93~8`91;c%42?{zJQ5ZK42(@IoFW<#8yXm!*?46vDn2kUwQvZkc+4<p QWNPISWda(Ypuk`a031t6sQ>@~ literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/grid-loading.gif b/docs/extjs/resources/themes/images/default/grid/grid-loading.gif new file mode 100755 index 0000000000000000000000000000000000000000..d112c54013e1e4c2f606e848352f08958134c46f GIT binary patch literal 701 zcmZ?wbhEHb6krfw_{6~Q|NsBg$>(oA`P8%SHjuGk&%@0ppYOTwO7TCppKD04vtxj( zk)8oFBLf42;y+oZ(#)I^h4Rdj3<Y;jHwEAPvdmNk_teB91rt33paN0f#FSKpq)G+H zti%eR{KOQ!%)GRG2F0H&oLoQ?bbuIWtpEc9voXi6JO2z$d1ebIb69am&SCePk;dt| z(eThNk(md#=_MRFRCqx*TEg<~GImP|9(J$n=N>>8V47nBGRLn+Q9-(eXZMC@T`q-A zfguTok_rhvuF+B}YGk&S-hZ1Y!QP;7UE)!jv*adK6)hob2AOf}GE&w)<#=MknJHoV zY^}*Md|xE}K6*MO&RAU_^MUKk=Djk<R%kOtz7_w&*nF7ZXl07j{QWH0i~{;CNmcul zQQO2fbHd_VyO(jcD)O)xy0j<C2(EH#+Hg^xIVmXiv#q>=g^pDJi6uprK3M%`#IdVL zUEAw<ipU3v&pwSjYGsELVv<6pw6^S&%ZPN+Jb%hTfLZRPjr?IXusK1Kuo?q&j>4e{ zmg0{~p6|Ie&p`6H%mYO|r)_gjg|As;$iv1hQk=MZgX#CFjEx2xI6HUG&(-w8Y7Wpj zcm93g6udbnG<Fu_yIX|?QxiJwCeFEQGOg9o?WlpsgoN4K7<pL^IS9-)Y&dl7+(g{Q z0Aqf2s?(J@n%CtxI1VfH9WUf#F*I0tYQwq!i9^8X3cIzGNue}JqG?{V-~<K+Yf!=g F0|5M};uQb@ literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/grid-split.gif b/docs/extjs/resources/themes/images/default/grid/grid-split.gif new file mode 100755 index 0000000000000000000000000000000000000000..c76a16e95997a487ee9cd1675ecdd99bd2f37c17 GIT binary patch literal 817 zcmZ?wbhEHbWMbfDXlGzpvts7||Nj|A!DtAK$PiHc$pZBEe+C_p??HKjfrF2Mkww6x PV8OvA4t_Qc4hCxg>zoX) literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/grid-vista-hd.gif b/docs/extjs/resources/themes/images/default/grid/grid-vista-hd.gif new file mode 100755 index 0000000000000000000000000000000000000000..d0972638e8305d32d4a2419b3dd317f3c8fd3fe2 GIT binary patch literal 829 zcmZ?wbhEHbWMmL!XlGzJe){5xGZ#;uy>#l_<<sY{oVjrI?8R&6FI~TI`NqX7H!oeg zb@}@3`;VSHeDdt^vlq`^yn6BK&8s(W-@JSO{=>(QpFT5;g3%Bd$|0cmlLhGf{|q`H nPk{0S1BVoYrq2Wc#zV~Pyb=r?3JDC2Ol*7#9t#p29T=<uoNGWJ literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/grid3-hd-btn.gif b/docs/extjs/resources/themes/images/default/grid/grid3-hd-btn.gif new file mode 100755 index 0000000000000000000000000000000000000000..21126075e7397dede53d3032c199cc5dff20d9a1 GIT binary patch literal 1229 zcmZ?wbhEHblwmMpXlGy$wQf;zZ9jbL=h6HBk3aZ-`qBSW&;Fl%{Qu1J{}-P9zwqk+ z<rn`iz5ajg<^OB%{@-}@|JIxT_ul@$@!|iSkN@v~{{P^^|Hq&HKm7Xt+2{XHzx{vy z^Z(1Q|6hOm|N8g;cYpqW{Qv*Ue-L081*0J_C__N;CkxPB{~2^Zt^?%>29Ey>tSt{5 zHY{*#Vsg}oIT5h%K(m0QN{+|JM3-h^O`|Opf{7fxyq0BWID}eGbgMYd>zNVs*sDWV zoA1qwjZY3uXHRaM;~D(iZJx6IEfY?Wr2(@o4CQoZZdq`CwriwbsHEt#km;etaZ`6L zTz!3gENh*F_qI0?jS`nu#m){}(7wIk@jlUvh3oF_E@dsdaeDjvxJFSXZaJBV1#O2r zgyqE~6rDPbPjEKrQ!sFDJ262wU4TQ;rQ!Sn=9UHq#|Nzf3_+{e1Rfn?ZRD4$;FDGQ z#@r~Pu^>)X$(*&3x9Pl?tj&%CoF~dRyY<C9XnM|V)86neW<kqqp@8-Sb+HLe@9#S| ztYX){&{+9d@!WjziUoUre}BtrG{b-YznVtYPp|LKk6+OApMmYid<Pbhj0cUZTrCHh zc+7SzaA0=Pc-SJym2#j}BCSHPMWifaVVgqHjfXArO*0mDD2GWjbxJLok<_Up_25y5 z!6u8v?b^q7Bywm@nz6XgJSbvur{k{`kNa%BEK)jb)GQB7(lwi@GDY3%rt(w?v6WBy d4YO80nrIaDQ)#+cm#6Yfmsy?4GZ+~etO4+$8211G literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/grid3-hrow-over.gif b/docs/extjs/resources/themes/images/default/grid/grid3-hrow-over.gif new file mode 100755 index 0000000000000000000000000000000000000000..f9c07af1347fc44dcabb1a9d22458deb195fd92b GIT binary patch literal 823 zcmZ?wbhEHbWMU9wXlGzpb>`d67r$SB{>v~5Mnhoag@EEu7NDp9Gw6W44$2b@93l*? Z95Nmo7Bnz$2y4ZhC{SczU}R*l1^^j55kLR{ literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/grid3-hrow.gif b/docs/extjs/resources/themes/images/default/grid/grid3-hrow.gif new file mode 100755 index 0000000000000000000000000000000000000000..8d459a304e0b224f8c28d6b7b585da7019d28cce GIT binary patch literal 836 zcmZ?wbhEHbWMYtDXlG!!aN)x1H}BrOegF2|hj;HkzW?y)!^h7bKYjW6^C!b77!85p z9s-I#S%6;r&!7YHC@4=ba40eea>#gWNI1yM!7mYUVnf4WCKe8!85Rx=4Ga>@3=9GS G4Auam1ttan literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/grid3-rowheader.gif b/docs/extjs/resources/themes/images/default/grid/grid3-rowheader.gif new file mode 100755 index 0000000000000000000000000000000000000000..2799b45c6591f1db05c8c00bd1fd0c5c01f57614 GIT binary patch literal 43 scmZ?wbhEHbWMp7uXkcLY|NlP&1B2pE79h#MpaUX6G7L;iE{qJ;0LYaF_y7O^ literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/group-by.gif b/docs/extjs/resources/themes/images/default/grid/group-by.gif new file mode 100755 index 0000000000000000000000000000000000000000..d6075bba2fd87519bce379df01d12cdbe67f255e GIT binary patch literal 917 zcmZ?wbhEHb6krfwXlGz>`0o(b_B3_s=d77u3+H|<U-YeZ`H${ZuUc0B?B4Ke!q(r@ zcK(^Q_wW1z{}vtkf8fA@3lBa#0HPNkz~KLfAOHUY(f|JpqhK@yhF}ON{$ybWIa>!r zfbs+bM-c-fhm6OD1qYj1`88rr6eKb<vdfqxY;bU7VqxPFkWhG_*wCgRT2)f8aEa$+ zQLO-pO2sEmoI3u~d^{bQd>U2cZFVdORzJ@!m~?8+%1KMTTg@3K$aq~=^PX>8{)(q7 acp2+dVHKAK1EYrP>l5}X$w&(@SOWm68Djnb literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/group-collapse.gif b/docs/extjs/resources/themes/images/default/grid/group-collapse.gif new file mode 100755 index 0000000000000000000000000000000000000000..495bb051dcee00b837a948af56f7a59e77b69aa5 GIT binary patch literal 881 zcmZ?wbhEHb<YeGy_|5<VhF-~2mhPPcL~D;N-Fj{1-dlT*9ou^1@v%$KuiX3i{QdXW zpZ@~^SnVh=8Un*A1QdU=FfuUwXV3xp3X~@pIQ$s?bIN#ZSm4;q#i1c%;Ly;(%p&D6 z<wSyGLx-@o(vBI0jZDmpY$hBIlT<tyd9}0xCM<AZVAP6KD$q=DWMX0Cdcjk$V99xA M_GT_w2>}Lc00Z?nwEzGB literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/group-expand-sprite.gif b/docs/extjs/resources/themes/images/default/grid/group-expand-sprite.gif new file mode 100755 index 0000000000000000000000000000000000000000..9c1653b48dbd2d4bb00886c379ba3a66813737c4 GIT binary patch literal 955 zcmZ?wbhEHb<YY);XlGzB^h$R6?=)rU-Z?<D_Sn*`*H-SmwfESuttTEI1A<G>uiX3i z{QdXWpZ@~^!zdUHf#DSbia%Kx85kHDbU@w$<p~Ck84S!EG9DWiI5u;0Xvi2iG&C@? z$aqY-(ZJZyA;cIGQc$SGz{btPAn|~q!E>?_tHlbAgvKT&29}T*1_wr_8B7v4Oad0D zH!!O=%UO7AS#fc($7HS8Q(IPEULLU6Yp&PURaaMg2<zqi5P0k|EiT;1;le~EkBKVH pOdgtLjox#NWAF8>6lV0F?{M|skyG2(-{0TB%q{1$Bh!Jw8USBOURwYF literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/group-expand.gif b/docs/extjs/resources/themes/images/default/grid/group-expand.gif new file mode 100755 index 0000000000000000000000000000000000000000..a33ac30bd2b3758ab2e003f70ce638ab77eaf101 GIT binary patch literal 884 zcmZ?wbhEHb<YeGy_|5<VhF-~2mhPPcL~D;N-Fj{1-dlT*9ou^1@v%$KuiX3i{QdXW zpZ@~^SnVh=8Un*A1QdU=FfuUwXV3xp3X~@pI06~|bIN#ZSm4;q#i1c%;Ly;(%p&D6 z<wSyGLx&J^h)+RbQUfa&4~xVFg$B>bN~|U;Bpe)@m>5|?LIe~TnPxDF-7pDQklw(o P-YjR~vE{{q1_o;Y#^^iR literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/hd-pop.gif b/docs/extjs/resources/themes/images/default/grid/hd-pop.gif new file mode 100755 index 0000000000000000000000000000000000000000..eb8ba79679eabb7811c3d9d1c86c43bcf67552cc GIT binary patch literal 839 zcmZ?wbhEHb<YM4tXlGzZOiXn6@4zq$MnhmkhJfNv7G?$pMg|>_??HKjfkTCXkweD9 mfT4kbgI~?WW5NQ*7JhN9o*xBDE*)ahRw)@D7aeL~um%9t9ucMh literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/hmenu-asc.gif b/docs/extjs/resources/themes/images/default/grid/hmenu-asc.gif new file mode 100755 index 0000000000000000000000000000000000000000..8917e0eee0cdf7758e83c4cffa7a7239f72b8427 GIT binary patch literal 931 zcmeH`u}i~197Zo~Emb-ML>(No#i13!1{`|2)F4_jl^X=3LnUJzge<}>RZc~zP~kV; zB68w#pu>SnK&adpIt5*dn`7OIQ?33Dj(x+oeanNlwY^!!2PQI6AN?^vMGITlu?Sc$ zU>9uS*}igoaC}8PN`jCCnovooc75v7&|^Bl#h|GI2x(JLP!wWj<rpqDZ44O0aBUkL z0>lNOK|~-m_dM?T+-E!pI0dd^5l}(d@Glq_sw<m9>Q5Q<6ypk{;!;VaqFyLusAH|W zI_^hNH}3WaBSr@P!$9skWgujrrQZ^Mn?RWcN@fn{AM5KVovc^P{B4D$=SroI5_&zI zNSF`DRwb35%9fAbth<-%@nxq_$~TO}IN9OvPh(dz1*g;6JvytHv(;6&xjkRcOr!mB r{VRFNa;Pe5osHT>5@ibIb~{3g+0C%lYO~3O6<&R=-|w9m23q?84YkzM literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/hmenu-desc.gif b/docs/extjs/resources/themes/images/default/grid/hmenu-desc.gif new file mode 100755 index 0000000000000000000000000000000000000000..f26b7c2fc5836850958f7f2b1fafd3988a988d7a GIT binary patch literal 930 zcmeH`u}cC`9LIl>nH9kiSwcv;h)RPe4nCSX#PT4JtLbR)IJcwe#y6z#3aSf)9!+l$ z;%yxW@kSwnZWM)ZydeVHiWX}!?QdxG!)N_2ANcN;ig{#6Ai)s+7(q%#GE!y5mQ{jO zj5MrhrlNCIcT|&WCe|#b*{*J3-4-SmmeaOT%60^HIHrQgae`8gf*j^igs3uBp{hnT zopO)5V>`?=nQ1YLFxzIBGSTNY=9rB4oG{nnt~U^b3F->w3Rehk(B^L2>$m$u&+|JS zzvF-O{o!cJw7~xri2now00G#VJYn()2%o@AE8lw!UPJ@SiC{BRyCfUg+)-YByjskr zv+Ug{Ji~hAw(%`jAsUlHdvfpXd_GaEWO`qB`!@?~^gbD{hpr>BT&DZEGYhLy?xoZ; n!ca~nNw;=d4=v4s)H*Z{&Ndrqrwj#{39jU-m51Y}8o>51Tocwt literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/hmenu-lock.gif b/docs/extjs/resources/themes/images/default/grid/hmenu-lock.gif new file mode 100755 index 0000000000000000000000000000000000000000..1596126108fd99fc56226b412c6749c55ad5402b GIT binary patch literal 955 zcmZ?wbhEHb6krfwXlG#X4~ou+bjZoeOV2FG$|=q-C@C(jDlf0eD{N@b6W`Inv#*zP ze=o<1{(yu1+=nJ`ADhB`dOG8|nG9#<aGjhbetACQiFpQR7qXvQ#&dTS!@boE_t!Ao zTE%s5tK^NX=J$4*KU&A|ax25jZ47UAFg(~S@_4({!~Mz+_p3eFrEz|l%Z&}5mo|hy zKP3M8nEd<GQr`|U{5-<&|1!h>s|^2dGCVn`{Pc*@>k~$=Pg%ddVgCO)!~fR||KBnE z|HJVAKg0iLR{x*dJ-;0I|GC%y_pblnMF0Qq{Qtk(|NlOXjV)~*Jzd>>6DCZaK7IO( z88c?ioVjUP%kt&RSFKvLYv;<HJGSoIw{OqhLoY7&{QtlD+O=ypZ{ECp`}V#2&;I{E z{Qv*a|NoEu|9|T7<Hv8_y!rp{$>-0XzkU1m_xG3of4~3u@#FvBAOHXT`19w_f1o=? z!B7qX#h)z93=CNeIv`Jg@&p6N42G*5G9DWiIGRQ-bEs^3`rv@RCy$K9p(kC=rd|^` zST-*?>B_{iQlwx7E2E<(Ghbe(62oy`Y27&t0f`^nn;9J1SUxr?H8M5pwCs2h(8SWt zC8Qv+=HXHgep#c0o(mriDDdjJR6ObU=;Xr2&gPqN_0-kZOwH=MQtsX=WoB-cUnB8y dW3n5EfMAf!nn#R>TRBB^*6i?z@O5CY1_0nG4B-F( literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/hmenu-lock.png b/docs/extjs/resources/themes/images/default/grid/hmenu-lock.png new file mode 100755 index 0000000000000000000000000000000000000000..8b81e7ff284100752e155dff383c18bd00107eee GIT binary patch literal 648 zcmV;30(bq1P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0000hbVXQnLvm$d zbZKvHAXI5>WdKHUATcr^L}hv)GB7YRATlyKF)%tYH6SZ6F)%P+<{wS~000McNliru z(*hb477vONgHQkf010qNS#tmY3h)2`3h)6!tTdPa000DMK}|sb0I`n?{9y$E00H1h zL_t(|+NDy@YZE~f{$`WrhuKPySQAA=4|-5UL@Ysj^nd8hi<Tl$@MsV`dGb;Z+LM%m zQWYucK}8ROc#x`i@=(yMNUG4TnKb)rvb!_mGhUju+aL}zyvH~1ee>S;2Kdj#HUllo z8f~>&*KFH9Nwz?Ckui3oR;%3`NI(gPUDtho|G}f2_3e8bT8ASerBbE5)1bTYdcFQ| zZM?C8k+I47`6u~>51*b--<sMnefwrPox%|z#3~VA8rT!({MEUMi{5&CW_IrB`H2gy z_4tMgnoB$#%Z#H#?9mNm^#XG73uH4!x8#dRZ%LpvPFr8!95M^hF1s<>wCz*ER>uRr zeV-UkHLH%}72i$a+1i|RAKlWyIlu9^60fuoN4rrzunmYfG3Rj9y^HEzZv5(CEO81y zUYkzkSk-KQ`3%0SF=Q~vI7Aru=z0O7P{Z@#ja`PhX$8v2D-^Gzc;YIGcnR19E(0MI z;kZD@0aiO(XrN-PsAlqHZzKK#l1tJ_)zheV5(%VKYS5UK?$7C;0+>qp-G76P-YrWc z5ZrIlD9FnLDKc3)8S0<<?h2A*h2D^On>dA!cTgY+CR4-a*;u;!NrNF3LWTlP5a1_; iES|Z7@j-3=)A|j?vD&^)Yn&Va0000<MNUMnLSTaKlp4(d literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/hmenu-unlock.gif b/docs/extjs/resources/themes/images/default/grid/hmenu-unlock.gif new file mode 100755 index 0000000000000000000000000000000000000000..af59cf92a4222e1cb044474c96507343dc07a3a9 GIT binary patch literal 971 zcmeH`YfF;>7>1uYXA>3Qh}beSb(Ur!W`$ZoRvwlh8h#GSA{v3P9MZmob1&N}#H|)3 ziyhJ(U{)KHf*@)Iy5?}L)|RKuO{O%cx#h;IvM2X1`q0Jo18y$3o31q0)ZQR~04YGX zfXC<aySlmr0>Ow7l;j1uOz`;`%xPF|1H(H=TQ-Al80O7c-*kEIp@ZM``Ch}Whn7a@ zE<NXmvCv~a;~T43c@1mtV13v35FUldILw(_{hxCFOv2^|*s{Tn4bYw$oi4yHfG$7} zY%RdHn?P?~*l|AUDckT=#Jr^m-*NODjk`|8zn-Q%)wl{60t~}W1aJp135bBv8cbFr z)*_w_+AeJ^G~jYW$S%Zi3;u3Lyo}h6zd8_ai^XD+Bqb7wR4SFpWPN>o{qiRYg+i%R z4h#&aR4TPvt<h*6D&D?S>$O^~PNy46p*I)|Mx)VWGFdDZtJOL&G4XSL3{j3aZnxWK zXJ;3eLR8p^IE^@iXhU=a0)b#Kw7t0&jYea!SUet2Boc@bilUOqB;u|J|M|xX6jAAP z03n=6?Mi(Dm?nrZ^SKu7#oi7Bm%1nSA1H5qaf|0_D`c0ZeXQSbMRJ}Wp^ujFWEojX z(Y1{1lBcW8em3h3o6B)FgQ$TZv?6jQ8yMxx;o>^&qx~ghy5ef_6fHB&ac3`cuq8MD zSbdMbr>J*|b@#!#g<nic7)16+TaeR~v#+SC^8R%vLv^@wrE}6hS@^iBv3s%Z<STJn V)*dNPl{y+D_hxx>0h@qxe*x=qGVcHY literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/hmenu-unlock.png b/docs/extjs/resources/themes/images/default/grid/hmenu-unlock.png new file mode 100755 index 0000000000000000000000000000000000000000..9dd5df34b70b94b708e862053ef4a634246acc8d GIT binary patch literal 697 zcmV;q0!ICbP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0000hbVXQnLvm$d zbZKvHAXI5>WdKHUATcr^L}hv)GB7YRATlyKF)%tYH6SZ6F)%P+<{wS~000McNliru z(*g|-5GqRX(<T4_010qNS#tmY3h)2`3h)6!tTdPa000DMK}|sb0I`n?{9y$E00I$7 zL_t(|+O<+kXcJKsJ#X@vX$DgzRtu)032sWn(2aDZF2s%9x$nx2E(Eh_#cah*ARsmy z7lH^8f(R~zx^@vzP!KFpsnQr*lbO+JW+t8A^S+5z(Aq4-3wPe*-E$A;o;$!l1{(#a z)oK%pqAWR%GdCCv+)k(SkaNCJsZ`cQT^dD@&*vZbzJEd2^*%+SP$<kxlJu-xF7F*l zP_Nf>wr!towOa3bz1}%hRS$Ze*UV<KIZe}Uj3j8cjcmVfu^<Ry)oS%csZ=s)l<S#H z28^*&yAp5?_PHyufh(MfYd_x&!)Ve7oN{WLfWYINvn!k*d(8Rld;YCx;Z5GXe5Sgr zZKjZpZDdw&;e@~@5=o293`v3fOM!Os`OCWps!y)HJ@2lBIRrB)Oiafo52;CQZ5jL1 zAC6iw9tr5;;sOuDP$-C6<Kp9QtmKQcDvE_MKu*Kc*5Erje5;H3nLDry51b(u?VT~+ zXf*E2vb=BmKX6v3L*>Xl27U>F*+kf-M;&k-s!`fDVCrZezlf>dy^3`BTW$z=L>EIW zO>?T0B!*En2q>u<@}12dniz6|2?Qm9qx{jpBiX~P{FQ(#@rTzxF``)#1i>x@j&6Pg z`g9}R!YZ+#Bpq}r3e{~P5}$S=h*)1OVUmx@SN9wqKg;4@^1P3fXJWAV73+q9*IOoT f&)vjR{Ezq!d`RXXnklE900000NkvXXu0mjfw|6I- literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/invalid_line.gif b/docs/extjs/resources/themes/images/default/grid/invalid_line.gif new file mode 100755 index 0000000000000000000000000000000000000000..fb7e0f34d6231868ed2f80b6067be837e70cac44 GIT binary patch literal 815 zcmZ?wbhEHbWMN=tXlGzx_z#4mU^E0qXb33&WMKq(T?a&f@&p4150I4La9D7liGhiU G!5RR1hX@}4 literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/loading.gif b/docs/extjs/resources/themes/images/default/grid/loading.gif new file mode 100755 index 0000000000000000000000000000000000000000..e846e1d6c58796558015ffee1fdec546bc207ee8 GIT binary patch literal 771 zcmZ?wbhEHb6krfw*v!MQYQ=(yeQk4RPu{+D?cCXuwr^cCp}%d_ius2R?!0jBXnAQ) zOH<|l|Nj|aK=D7fpKD04vtxj(k)8oFBT!uNCkrbB0}q1^NDatX1{VJbCr|b)oWWMT zS%hVC<e5zgOcIlpc`kLa*!o;M_#F$wy(Jnw%^xoO{@do#FR1axvu?^Eg~=WXT$f%h ziRw+0<X~ye?)5wTu<&NHn6>	~NwO_yO%;SvZ5MdNYf|QNy-I*%yJaj+uTdt+qbZ z4E`Fzb8m}I&!N8OKmWEcCmrLs^Hs&3i)mt@hQVdcqghkaBs*D}tG_lKew4?rTjzIZ z9tSone1TS+TR7tu^CunG)Y7Jg#sw#)sG9C!c0I%LEzP)9;hqRf&)s$D8d5Db{TBs% zgl0~5QQ91luq4Q9tJgt4QLbaxZvAaKeCM9!oy85dg4k>TdBSVqjHub_PG=PO&J-rx z7oYTuF+kH|tG-UK+EkUhDjYx?zW?T|lx><M;PP#XNUM@C2hfJD#O#hF$!^x>+aOQm zzL$v$zBLo4Cj=G&tw{H}dW?tlTkS)SY4<#NS92z*EY-MMB6Ftp`R=*=*Ev7cS+X%W zMCur^FdlokL}1Y+&aasU2J4#EOuNlnb9CmqgLCGTSY!1BD42pkHY^XidQ5=>YQx%` z*%Pm9D!CkBu&tMWm(%-ejACVWGS2RX5=QOJ$1*tr7F}F+*-OA+Ly&Isg|AEuUYicA z#%IG6kPXkHt{zk2M6zK@Vu^4Q(1zE$?yY6M!^&jQ+2^E?!p7{g*|X6}vuRC3p@jk0 W117c83?+LXEZI4G$p&LV25SKE>nb+@ literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/mso-hd.gif b/docs/extjs/resources/themes/images/default/grid/mso-hd.gif new file mode 100755 index 0000000000000000000000000000000000000000..669f3cf089a61580a9d1c7632a5b1309f8d0439a GIT binary patch literal 875 zcmZ?wbhEHbWMYtKXlGzpd-4Cei~rYO`oH1Q|BaXbZ@T<{^OgTwuKwS8_5ZeO|94#b zzw`S4UDyBbzVUz0&HsCE{@-`&|NdM558VEL<nI6D_y3=I@c-<i|K}h7zx4F~)#v|j zy!e0X)&IM%|37&9|MC0(45MH)1O|5qDE?#tI`BV(4#=6HJi)->!C+hQ;zA>HJFm1! z#)%1x%x&D_IuR=Z8kt%-g@N({4h;>A%p3w50S6iynb`#tJSI3aHnDO`7-U>H(Adn* Pui(%j;MmmCz+epk$!Kdz literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/nowait.gif b/docs/extjs/resources/themes/images/default/grid/nowait.gif new file mode 100755 index 0000000000000000000000000000000000000000..4c5862cd554d78f20683709d0b450b67f81bd24d GIT binary patch literal 884 zcmZ?wbhEHb6k-r!XlGz>`0sG^=;33>fanOrC>RZa5f%c9KUtVTUe*B-pgh6A5y-&E zA>*-O!NDdb7MYkC1`iK4@=0rzWCSQRbnt4Ywd@dF=+rMIANR*%(jvDmG5%#TnwOp& kU}SchrxH17*#QO%<_$5P0_ncfbgjEYUKG8!(7<2~0Pia+WB>pF literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/page-first-disabled.gif b/docs/extjs/resources/themes/images/default/grid/page-first-disabled.gif new file mode 100755 index 0000000000000000000000000000000000000000..1e02c419f5e73fc1ba5770df0448d44adf856288 GIT binary patch literal 925 zcmZ?wbhEHb6krfwXlGzZPfyRu$tfx-s;H=_udjFb@6g=b+}hgO*4EbE-rn8a-P_yS z*VotI-#=;6q{)*fPnj}h=FFM1XV0EDZ{Ga*^A|2$xOnm6B}<kpU%q_BiWMtYu3WWh z)!Mad*RNl{apT4<TefW7x^?^Z?K^ht*tv7(-o1PG?b~<q<jK>gPhY%v@z$+dw{PFR zd-v{x2M-uV!Dt8!L<lJUWMO7tU}ew&Sq{n*3>;Mq+#E6<8x|aFW_O<QBH=@mqkxW# z&>4e+3))3Q*|Q=94?bWMk!6jGP<+(r$fM>Xwqe7gmNr&4?FkK$jz>EMMFb>zJ~*Z~ zvMU=|C?p6pu`gocw@ENKkig96%Ptk5a9{xwcPOV4M}k2k%Q{v@i4+D0okN>5F7xql HFjxZs_zi%( literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/page-first.gif b/docs/extjs/resources/themes/images/default/grid/page-first.gif new file mode 100755 index 0000000000000000000000000000000000000000..d84f41a91fca3a0ccc1107a78ffbf7b62c527afb GIT binary patch literal 925 zcmZ?wbhEHb6krfwXlGzh@tC0DJ54uuo^j+di-h&|8QW#kzUrr(*H68ylXk-(>4ag{ zZHv4+cEz{tOYf>=ebOm>XHxXSuI{Hx{sE`lD_*51{Hrf`RNeQhe(3PuA-LgMaLe7$ z)_W1{_x-!R`FH*eY<?Kt{vfR7Wn|Z*`0fYsJr5Ilo}~7_&Ybu-W6IO)$*=RLy~&;V zEPc-J%vt|4=KL(2^}KHWyQT%tTi5;XUHzeB-T!G@-Y?wuVbR|IOZWd@b>uz6C>RX^ z>V<&fPZnkd21y1TkddG~!N5_)V9X)ov0=f%X7<Dr4v7XWj$&3aLMjUnCUi-QvQIma zcyIxyv@C1ciHD1t4how1q&=9Be5{?5&GAUXPDb}$aUm{=JsX_T+t_q%9262RG;%Fs w;&-VqIH1rh?8~lYpm5*;lVB*P5=VjoBilMwMu{a14myW6XI$pv;b5=^0JnOQ-v9sr literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/page-last-disabled.gif b/docs/extjs/resources/themes/images/default/grid/page-last-disabled.gif new file mode 100755 index 0000000000000000000000000000000000000000..869706777ce1e5c8350e0086f6febc18aa2bf814 GIT binary patch literal 923 zcmZ?wbhEHb6krfwXlGzZPfyRu$tfx-s;H=_udjFb@6guP*52OU-QC^W+uPUI*Wcei zY0{+0lP6D^GG*q>nX_llo;Ppa!i5VLFJ8Q4$&%&Em#<i{V%4fuYuBz_zkdD3jT^UY z*|K%(*6rK3@7%d_@7}%p_U$`)^5p5$r!QW-c<a`!+qZ8&c<_K>6pV(z;0OW5pDfG_ z46F<~Am@Pc1OrC}12>0^$A$$5o7t@;-Y_UNJMxKf6&W}lT+k*Y$eyJjc<@21kdg?` z9)m}X2f37ODg+`IICZeGskVGL@ZdlLlaQT?!H)&bz6?zAIR*(A8e5nhSgkHN9C*OQ m>dC5ipkT8?(+Va*AAy7q4&fY(0%9#)p=)k#W@Tbxum%8@3U^Ha literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/page-last.gif b/docs/extjs/resources/themes/images/default/grid/page-last.gif new file mode 100755 index 0000000000000000000000000000000000000000..3df5c2ba50b143fca7d168d5acbcc4404b903ee8 GIT binary patch literal 923 zcmZ?wbhEHb6krfwXlGzh@tC0DJ54uuo^j+di-h&|8QW#kzUrr(*H68ylXk-(>4ag{ zZHv4+cEz{tOYf>=ebOm>XHxXSuI{Hx{sE`lD_*51{Hrf`RNeQhe(3PuA-LgMaLe7$ z)_W1{_x-!R`FH*eY<?Kt{vfR7Wn|Z*`0fYsJr5Ilo}~7_&Ybu-W6IO)$*=RLy~&;V zEPc-J%vt|4=KL(2^}KHWyQT%tTi5;XUHzeB-T!G@-Y?wuVbR|IOZWd@b>uz6C>RX^ z>V<&fPZnkd21y1TkddG~!N5_$V9X)ov0=f%X7)sh7DeV(M==$yO&0_YC2+|IvM<}Q z@ZbVY8B+}&lf=VK2L;XIwg}8jWa;H%bG(qjsCck}M<L0_pn}oOmw`!tjYh%+#ts$- tR;vKV0}9Mso~%X|g_|EVtzZ)G5J)g^4Ci4K5NqiQU2}7@Boh;ZH2`<ekBI;P literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/page-next-disabled.gif b/docs/extjs/resources/themes/images/default/grid/page-next-disabled.gif new file mode 100755 index 0000000000000000000000000000000000000000..90a7756f6fd77f74fd2b5786dd3586b5c50c8d89 GIT binary patch literal 875 zcmZ?wbhEHb6krfwXlGzZPfxF?sBrl2(B9tO-QC^S*Vo_QKWWmWDO0A*oH=vh!iCG1 zFJG}@#i~`SHg4Rwb?esc+qduBx%1@7lc!IgzIgHC?c28*M!{$Z4A~G+{K>+|z`(?y z1M&eVPcU$JFtBpScx+g3u$hC^!6V}XBXb*zY)A!1phGj4Fjq*7gQ62lFOR54M?r!E kLmQ{U6cz@-#wJD`MJWvdVWq}d0_-7oPHt8|*uY>70KTb0MF0Q* literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/page-next.gif b/docs/extjs/resources/themes/images/default/grid/page-next.gif new file mode 100755 index 0000000000000000000000000000000000000000..960163530132545abe690cb8e49c5fef0f923344 GIT binary patch literal 875 zcmZ?wbhEHb6krfwXlGzh@tC0DJ54uuo^j+di-h&|8QW#kzUrr(*H68ylXk-(>4ag{ zZHv4+cEz{tOYf>=ebOm>XHxXSuI{Hx{sE`lD_*51{Hrf`RNeQhe(3PuA-LgMaLe7$ z)_W1{_x-!R`FH*eY<?Kt{vfR7Wn|Z*`0fYsJr5Ilo}~7_&Ybu-W6IO)$*=RLy~&;V zEPc-J%vt|4=KL(2^}KHWyQT%tTi5;XUHzeB-T!G@-Y?wuVbR|IOZWd@b>uz6C>RX^ z>V<&fPZnkd21y1TkddG~!NB3cV9X)ov0=f%W)9;69vKr@Ionu*A5?G{Hgn3DYJ|un wK6d5q<#D`_!KiqUp-ntt3Jb$U#ts%8MWY1*!jGC}2?&SWIk{Q=U;~3S0KQg&YXATM literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/page-prev-disabled.gif b/docs/extjs/resources/themes/images/default/grid/page-prev-disabled.gif new file mode 100755 index 0000000000000000000000000000000000000000..37154d62406ddc064dba311b95f554e49ad38003 GIT binary patch literal 879 zcmZ?wbhEHb6krfwXlGzZPfyRu$tfx-s;H=_udjFb@6g=b+}hgO*4EbD-QC;U+t=4O zY0{+0lPAxdIdk5;dGqJbU$}7L;>C-XELpN*#fp_HSMJ!cW9QDDr%#{0ef##^yLTBz z!Dt8!oe)s`$->OQz{;Qlaxy4SFmU)VaC69bY*=uxnS<NUBVxiK<~C;Si~@#@2UvK; zq#UL!V030><xx&KP{7E<)WNG4kl?W3Q6n2STZm4ALSw^BRsog+kqivy=R5GSu`pNz E0Q^5n9{>OV literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/page-prev.gif b/docs/extjs/resources/themes/images/default/grid/page-prev.gif new file mode 100755 index 0000000000000000000000000000000000000000..eb70cf8f6a3b7f524bbeb3656d875a823b27fd7c GIT binary patch literal 879 zcmZ?wbhEHb6krfwXlGzh@tC0DJ54uuo^j+di-h&|8QW#kzUrr(*H68ylXk-(>4ag{ zZHv4+cEz{tOYf>=ebOm>XHxXSuI{Hx{sE`lD_*51{Hrf`RNeQhe(3PuA-LgMaLe7$ z)_W1{_x-!R`FH*eY<?Kt{vfR7Wn|Z*`0fYsJr5Ilo}~7_&Ybu-W6IO)$*=RLy~&;V zEPc-J%vt|4=KL(2^}KHWyQT%tTi5;XUHzeB-T!G@-Y?wuVbR|IOZWd@b>uz6C>RX^ z>V<&fPZnkd21y1TkddG~!NB3eV9X)ov0=f%W)AK)kBA8^Y;DZmPc|?ZI=9Q{X*oQZ zkbJD2lgIqQijPiCj2*mD6%7sx9yN0CvxS^laG;@KrlbJNftid9=jS`{vav8&0{~Hw Bh1385 literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/pick-button.gif b/docs/extjs/resources/themes/images/default/grid/pick-button.gif new file mode 100755 index 0000000000000000000000000000000000000000..6957924a8bf01f24f6930aa0213d794a3f56924d GIT binary patch literal 1036 zcmZ?wbhEHb<Yy3JXlG#XO>A}e@6f*BUeEG-{mbu9UVeYtn)@A#A9pQ#+`IB&@5(0= zRzH}y`r(9CPbRH>G-dUZ>1!TLU-xM0+NU$tJ)FJ%!HkVh=4^U8ck{CaTb?f6`F!=h zms^g%-go-h&Rf5C-u=Dz!SB6~|L%M6=kVF*ht9t`fBVhRyMGQn`g7pPpQDfe9DDTl z(5wGPUi>@u`u~ZCzfU~=ed^KQvyc9qee&n@+yCcY{k`z?&xIF%F1`GB>D9kWZ~k3* z`RB^(KUZJ<z54p^jaPqey#90J?Vmeu{@!`}_x8vCcR&2Q|KZR5PyZf%`uFJb-^XA6 zKmGRq<*)zm{`~*+@Bg>||Ns8~&oBx`LjW}d6o0ZXGcYhR=zxSld4hrCB?B{ujK>Cr zPF^XagaZi+ome=9<V+k4lA0&0c~8;sY+BMGplDxopkcv6PGMCKE545x7rXOG8K|Y4 zs7UGXRWM0<(Zkq$s8z+Yi$zjO<yg14Zr?AKC>Dmm#SD}7El7CSA;=KXekY^RG>e-{ zuuVYm(pR@|5zQ!{2@Y3s!WlFkEt+xRKzr=&*z_|U*@qgNWbB##KVWn?)_GXn$>4`} z#Rk5^9iqw$CMLJ{owi8Xkg$-crJaR6?!tz^#b0>Dw8Q57c+l9;Af%gcqV6G6E2r=p gYaW5X0}L(q1$Yc3_9+}>;A5Sv9e-|5r2~UC0H_cnr~m)} literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/property-cell-bg.gif b/docs/extjs/resources/themes/images/default/grid/property-cell-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..7890cf9f887ca6dcd09f0106c97b44b6bd032304 GIT binary patch literal 155 zcmZ?wbhEHblwc5Gc+AOg;lhR2Z{EFm`~K~_5AWW8eE;FohmW5>e){tB=g<GxfDQu? zfb=r31PGk;Ja4!|#Hfvf(V@4aRZ{ACqmt#!o7ZX={*K$|wcV`e)aqGlTYkTcaDJp| s>daSrM&Udw>$^!;7jFpfiJKq0dh%|O{FRAsr%cJ6cQeymfr-Hy05I5B@&Et; literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/property-cell-selected-bg.gif b/docs/extjs/resources/themes/images/default/grid/property-cell-selected-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..1dfe9a69eae133929f3835ffcfd108959539b9e5 GIT binary patch literal 843 zcmZ?wbhEHblwe?DXlGzpb>`cJ$G<K;`E~i}udB~~Uwi)h`t#p6U;MuH^7oxrzwf>N zbN|hshj0HpdiUqa`#(?L|9SS|&x?<LUw-=g`tx6gQ7{?;Lp%f&f3g65@Si~k<PT7u yVBpYTQ0EZQP-JRh=aVvsSfIez#LUJeAfceZ(9p=js}yqLf}%^Oh%OrogEatv6hrX< literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/refresh-disabled.gif b/docs/extjs/resources/themes/images/default/grid/refresh-disabled.gif new file mode 100755 index 0000000000000000000000000000000000000000..607800b85e4dee8c3922d56b8666dff796603d6e GIT binary patch literal 577 zcmZ?wbhEHb6krfwcvj4C^whZzA3s&pwcWgXfA68=hmN0FxncYD+xH?8vYI<5Oq@1n z`rJi%CDj|Z?>Tku;-O<F7c5(yT~fVa+n$wcH?Cg0>Bz~m8F^(Xxn=WLtiN>a=Bx$F zE?m8F;nLL!Q)l&0o9h!C(=%n(wOe=Z-ha4p+phfwkEZ5Vc1)PQY|Z9dx9>(KWnH~~ z>(S$<ljkhix^r(*R&h*9UT#TER&jM{P0RYt+ly;j>RNmD?mv9-+Rg2I4_CJIHMaG% zPnb4+&ceq}p0)H%FR85Wo;q*Ux=pFMWe1L)nlNk8yoJkV&R?=-^RCpKQa9hQwEXgn z!pip_KJM6ec>m#J*KXY2f8^w`6Q^e`TG`P(@#U-6IYpHfO+D3(9i5ZsY}~%Lv1{Uq zvlkaGS=HV<xo`5!U3(5>7gkm^w5Q~jme)4VU$mmSscZUz74w#^?wB~^=g*%RMb(8> z&7BjcKYH@~{)0!8XDuwKZoPH){;G{T7>EOkKUo+V7>XHmK*~XJ!oWVSp}48JrL|2t z%F8=3u&p`0Ak5C8$Vs=)FN>E?AUn<7Baf4*MT)W6--OM=GeE4bSy-LLSvqt>F{7&i zgQ&TE6Th`WhFXr2Y&0`7J9}^ww@;xYgOHm>TsTuQk6BY}E(5EeV_RmksUj;&zVVJ? zqex9(HbbrEkeHTKIc+_OAiWO?j?WH@yUQHepwOi1&dIu?>P1B(15azY1T!OpH2`<~ B4eI~^ literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/refresh.gif b/docs/extjs/resources/themes/images/default/grid/refresh.gif new file mode 100755 index 0000000000000000000000000000000000000000..110f6844b63f04ee495cb6260aadccc5c91f3245 GIT binary patch literal 977 zcmZ?wbhEHb6krfwXlGy$h}b9*vsWVToJh$rg~Ib{73bBfFRNEyRjIzARe8a@{G?U= zS=*`;&XtFqYK{lh9g^y}Bh~OmX2K7phHF|4mvmY#YBk-m>AI%V{Zwn}AFb*CO}Zah zE&Ol0{J&TG39p`WUhP-C+HU)IUUQmo-)qvfh`zI76Yqx1zV0&XfzSMxLGvGbFMQ~+ z=(Y3m{~l}q`>*>SwD@7vl2_py{zq>5pE~<)_MEHvb8Z#%9?x5TCvVmLlErrtmc7Ye z^(1@q`{eEa%QikQ+y0|u-~Un|+W)`u;QzYA|67+{YhHeP%Er5`D<5=iecZe0VgIfd z6ZSoyyYE@Yq4%wa{&t-D-*@u=lr#UQo%uiG{Quc!{>?l8fByOZOAkC-c<TMyLr>Nm zdAaJ$n+2EuFS_`D;g$bOF8yC{^Z%AJuQpuyyy5=;?RWm~z4m$Iga5mp{NMZF|DH$x z_dNZ7<o1^%cfXyx`}x3=|3@GFKlkMOwTEA>J^Oa?<^NmHzCC{Z^XcdR&%XSB{pru! zuYbP%{{Q3WpTGb9|NHkJ2pC4ez=eR~PZnkdh6V;5kP|?8f`MZl10$!5$A$$5)il%s zei$5ka6nGTs361eNrP~El!A@oXXa)eCC+CvI2<Rq&uh#x<LG2M(8biwJe^@?&{7}f z84X_~A|E{Ep2g0zdriYZrB*IW(<2)iH>;iHZM67s#E^NJN1wTgOT&i;3Ec;TOAjTi zTyP{|exu5jn1!2~IsF{O7w}9FI^s0Dv3!z%j9{}Lqr9=eiw8w24r1-;JbMZ*Iy$pR TTfCj3pwPfLY5NRjCI)K&rUX|l literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/row-check-sprite.gif b/docs/extjs/resources/themes/images/default/grid/row-check-sprite.gif new file mode 100755 index 0000000000000000000000000000000000000000..610116465e7e34fe6ec137d674a5a65eb44f3313 GIT binary patch literal 1083 zcmZ?wbhEHbG-BXmXlGz>j-2EYIms=0ihImdkJxD*ann5GrhCOt_fD7*mN_@JU|~Yh zlH}5*DP>F3%9rQXt#bJ9;Pl_AtZj8)e}DJP-90mRO_;lP-R7O^x9r-qeb1Jidw1;K zKX>_o#p_P2-*JBTzJq)AAKI|<;`aSlckaKi>)_Qrhp!zxeDu(fW5<r4ICkRH(UWIS zoj!Bs?AeoNE}TAp_3ZhJC(qwKbK%<Ai$HY!%9X2Eu3o!(_1cBYH!fVcdFkq{E7xyd zy>aL2&AYd5-M(@A-tF6WZr{0c>(2e#ckkc1d++>}M|bZ(ymSA_y$28PKYDua;miAv zUOssE@WI2!4<9{x_~`M2N6#KTe)9Oq(<e`#K79rT&w=0t5WEC|S0L~j2;RJY0|sxw z;N83T@87?A^Wp8gj~_mK_yh!>zkK@q?aP-hU%!6+_U+q`A3uKn{Q2YOFNRSt)Ivb< zCkrzJgCK(r$l;(o!NBpKL779wW5a@j%^bpFa}I1+c({#=)o#uSgQOPDOrxwjGt!z| zdt@$e$lSc_@o^LJpjAf}JZwJMArZPP=b&Sgps8HqqLPD`kM_zs`Roai*qqK|#L3VT zF?sR}KXId?9~w-oM=!LvF0}h7u%L13YL4V{2NpVaOx6sKXt0%-%sxprU4%n}F=ee| zk7OB3V$o4<2?NtNdOnMp+}aIPI1Cb!oedm&q`N#WDjn;2s@TV#Wb?^^L6Du@WzE4m zBH2;`fg2hOC%gI1Qk$u|ta4(CLnAZyojrZEhG#jire0bj>DOw0Oe9%D!a<-Z<>RHq z%WD>VO!l0r8@nULP;YPhBrdTFH4+!k**<Z5kz=|l^YF2)ZePkZ?fz)oUwE{E!5RSE C1AUGF literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/row-expand-sprite.gif b/docs/extjs/resources/themes/images/default/grid/row-expand-sprite.gif new file mode 100755 index 0000000000000000000000000000000000000000..6f4d874f57b160bf731c057d8bd4f85d846ba4a7 GIT binary patch literal 955 zcmZ?wbhEHbG-BXmXlGzB^h$R6?=)rU-Z?<D_Sn*`*H-SmwfESuttTEI1A<G>uiX3i z{QdXWpZ@~^!zdUHf#DSbia%Kx85kHDbU@w$<p~Ck84S!EG9DWi9Bk$g)`~f?Vd3F+ z0a-l-hr$C4j7)qEb0R(_xplC}bcoz+U}Tt}>^aLtQ^>)SRb9SKCQ``Jr`=eVAz{OT z183VTy}$iAS<v9e;KBH#CBsDX(o%j_3k}YM#wI2gaWBy<QEeASCq@m22c}xrH>S#R nB^X?DXxtttx-R#(S?*zGzsXrO9p?HCdj*-f<$NLv92l$th`d^G literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/row-over.gif b/docs/extjs/resources/themes/images/default/grid/row-over.gif new file mode 100755 index 0000000000000000000000000000000000000000..b288e38739ad9914b73eb32837303a11a37f354a GIT binary patch literal 823 zcmV-71IYYGNk%w1VF3Ug0EYko000010RaL60s{jB1Ox;H1qB8M1_uWR2nYxX2?+`c z3JVJh3=9kn4Gj(s4i66x5D*X%5fKs+5)%^>6ciK{6%`g178e&67#J8C85tTH8XFrM z92^`S9UUGX9v>ecARr(iAt53nA|oRsBqSsyB_$>%CMPE+C@3f?DJd!{Dl021EG#T7 zEiEoCE-x=HFfcGNF)=bSGBYzXG&D3dH8nOiHa9mnI5;>tIXOByIy*Z%JUl!-Jv}}? zK0iM{KtMo2K|w-7LPJACL_|bIMMXwNMn^|SNJvOYNl8jdN=r*iOiWBoO-)WtPESuy zP*6}&QBhJ-Qd3h?R8&+|RaI72R##V7SXfwDSy@_IT3cINTwGjTU0q&YUSD5dU|?Wj zVPRroVq;@tWMpJzWo2e&W@l$-XlQ6@X=!R|YHMq2Y;0_8ZEbFDZf|dIaBy&OadC2T za&vQYbaZreb#-=jc6WDoczAeud3kzzdV70&e0+R;eSLm@et&;|fPjF3fq{a8f`fyD zgoK2Jg@uNOhKGlTh=_=ZiHVAeii?YjjEszpjg5|uj*pLzkdTm(k&%*;l9Q8@l$4Z} zm6ev3mY0{8n3$NEnVFiJnwy)OoSdAUot>VZo}ZteprD|kp`oIpqNAguq@<*!rKP5( zrl+T;sHmu^si~@}s;jH3tgNi9t*x%EuCK4Ju&}VPv9YqUva_?Zw6wIfwY9dkwzs#p zxVX5vxw*Q!y1To(yu7@<y}iD^zQ4b}z`(%4!NJ19!o$PE#KgqK#l^<P#>dCU$jHda z$;ryf%FD~k%*@Qq&CSlv&d<-!(9qD)(b3Y<($mw^)YR0~)z#M4*4Nk9*x1<F+1c9K z+S}XP+}zyV-QC{a-rwKf;Nall;o;)q;^X7v<mBY#<>lt)=I7_<=;-L_>FMg~>g((4 z?Ck9A?d|UF?(gsK@bK{Q@$vHV^7Hfa^z`)g_4W4l_V@Sq`1ttw`T6?#`uqF){QUg= z{r&#_{{R2~A^8LV00930EC2ui0096U000OS0Po$iSC8I2dGX-ATgb4XLx%wY06VC` Bj$r@* literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/row-sel.gif b/docs/extjs/resources/themes/images/default/grid/row-sel.gif new file mode 100755 index 0000000000000000000000000000000000000000..98209e6e7f1ea8cf1ae6c1d61c49e775a37a246c GIT binary patch literal 823 zcmZ?wbhEHbWMq(KXlG!!`QrEOm%s16{{7(1pGR;1JbC};*@r(bKmL9F`S1V#{~1QX wXb24J5K#Qd0`%X11|5(uL3x6KLxe$C!6IP+Ln9*-6GOy_4GW#y85tR@0bQ{sTL1t6 literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/sort-hd.gif b/docs/extjs/resources/themes/images/default/grid/sort-hd.gif new file mode 100755 index 0000000000000000000000000000000000000000..45e545f74423d274d5ba7fd942349e9b6e377787 GIT binary patch literal 1473 zcmeH`Yfn-E06_1O8OuKCZ05?;9y0{yY?;~WgRMsR$~K$2`D~d1@}bQ#*KE^FOzmNr zk4h0m5xA%*2nq<AiYPv3zNRD!UM^e^kkXhH)!%5Ie{jxrZbT6xF5TgyLV!{Lh$~c* zt7jk4=S#RNW$l^<slG`LEyH_=<CoLv1oqi4@Lv}==|uhYa{>5&mj9jr&@R9m?MLJ@ z28+?&*i;q2X{glmbaXwjt9hit_dI1))x{ir6L_uMFRHs`tO}FBO&#lQRo8}|J5?7Y zU`>9C$Th8w3EHL`Ba086h!(PEnZzn=+PIK2*LI5;-9YgM=D}nEMKj(5E_P-Pm7j<a z@s<UoIc}O-)Sl7;pwRg-;tq{8-(k|I#hq)4LN^b8*@cjz1MX;C`b2M+ZnW}r3_Z55 z`(7)}>o~EXPhgm4T&wVplL(D->;y1<QqqGg^6#qYaZ-_Gr8gJ(Iw=)f*9M9`0&dEB z?K)KzE@Mj8=P=ALW0IaSB;S!GLC)G#zjW8C9jb5z#LHz)2RsL6Ow0TCc5OO!W4uEC zYww2xS({cUTrR*Jqb)@FkhDeUAh!0|;c!@6>`B0^KR=R4S}*a<X0Oxy^5FH-KpJM_ z#hDt?Mj3|1-YCb5;Ejq<B}Vr$Y=NYE6#=nzudnRDx;K&T!TQSUK4kq{Vh~6FE;ih# zuewDD-h6*Mk-S-*oXy#+NzF5E)@IUzp}MRZGW3DO;y@p%A|v$afil=o|8Rk9Xvl{+ z271Ac(a>1vj)fV>NEY1mB8Uq&zYI6Q%t`{**z!J+Vr;E@5~g9*=aqW{3>u}nt)+%y z;;>ng6u?b5{(;L^(y<6nxNxiv6hU01L$+fA6FPrm&HQ1X9CMc{2sC$3gd=9b3;|~m zeo4%+^eknA7SU=RVi9X;xUJr+UX-mqm<4W0%pzn<YE$B@vTqAH*8U$5XqErmL97bk zAl^2BI!d(-qR;YdpATO&+lD-E;O)allBo6(-}^kf((kd^J{nkx-&UQerEZU5+IZXJ Lcri6I61e;aamu5Y literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/sort_asc.gif b/docs/extjs/resources/themes/images/default/grid/sort_asc.gif new file mode 100755 index 0000000000000000000000000000000000000000..67a2a4c669fc5821a07fc486228d626e16d6ad9e GIT binary patch literal 830 zcmZ?wbhEHb<Yi!GXlGzZoN(6Rzr*8qzZpisXb6nF5K#Qd!py+H$e;uAIw(&ta7Z&S hbMP=EEO2aQ5R!A55%BO(n*cx843CM64mL1Y0{|rI66OE^ literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/sort_desc.gif b/docs/extjs/resources/themes/images/default/grid/sort_desc.gif new file mode 100755 index 0000000000000000000000000000000000000000..34db47c3b1eecab2d3873ee2fc556cd3a6e322f9 GIT binary patch literal 833 zcmZ?wbhEHb<Yi!GXlGzZoN(6Rzr*8qzZpisXb6nF5K#Qd!py+H$e;uAIw(&taL55k i2@ipW1_lm6E}aU4#6zuYvR)!L0u~+a5@Kdzum%7{ff3ID literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/unchecked.gif b/docs/extjs/resources/themes/images/default/grid/unchecked.gif new file mode 100755 index 0000000000000000000000000000000000000000..43823e52db80e04017b2bc1e031bef2d82c67e6a GIT binary patch literal 941 zcmZ?wbhEHb6krfwXlGz>`0voy-@k72&h=Y%ZQ8zP%g((!cJJT4@8F*OhYlV-dg#cp zW5-XNI(_EM*|Vq5Up;&A+S!ZOuUxr$<?6Kymv3CSa`V#FTUV~%zIx-%jobHb-@bF} z&i&hW@87w5@9zDF4;}*1<A;wPJ$&@|(c>qNpFDl?^y$-QVDS9;ix)3mg1{>fcnt(^ zUcUi>w{PFRfB*i&hYz1Vefsj{%h#`8zkU10FbYOPfHonZ_>+YhWU>y30Obh=jxGj9 z4jGRP3l283GHb+~D0p~)!9>Yxj)(FAXDKG5ESZ1@4oAD0WI9R=9v*6Ak!N+{dHKMR zl}FY^$AdFLm4!>ptVN@75u<Mhi(bZ$hDWSC5<+#C3@$Vt>5?#BR20ya;KC(goN;9V qqtnW!)kYaNB(j|}n>i$H<|I5^)XKF~L^CSn=7x7MEgZ~D4AuZjXTU80 literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/grid/wait.gif b/docs/extjs/resources/themes/images/default/grid/wait.gif new file mode 100755 index 0000000000000000000000000000000000000000..471c1a4f93f2cabf0b3a85c3ff8e0a8aadefc548 GIT binary patch literal 1100 zcmZwFZA@EL90u^)S14;kcS~P51JcqXyBK7YjR|$m*3qt)1nqFnf*+(nyIT_zZIrbc zP70+hE$ePOAcE2K4FU;V;KM+=xUiQtnG(k(Qx;;(oQVNl47kM11c$9(j7iV=cuw*= z&;L26aeaM*8AVX!4nUmF3luezO5JukyN8Fbj*JY)<FUCpDxJQaNW`ySU!ItlSYBRo zIJ$j4&-(g3kH<YaI+{-3q3Lhu=jVop!?9R2nf#Kb?|Hog`}_OI|CeI_z-zj*Z=BK^ zb+y$sEJo&3@fVweAONY#-poD&;n*S-!7khAH+BmDY(}ZG>E9#Hd|0*@ZIv{eO*Nb# z12yCIrOhLLJlbn33DTB}t(F_b2bV4~y*j=}%v9m90(t13QX1^b_==P$D+H{5*5Mu? z8<YWo;GEBY1&T!BQK0xwXCMqjnAr%YGou4t2y@PyRzL5TthyGfwkF=Of4;|C558C{ z6JT7WWr2j~28PmdD&J;)Tj=1l^nDuHZPJYtZ0{NxO0c1lQ(r$gnrJ9R)_&N{SfHl| z2!-ca0oHja5LD-MyE5*0jKrL?Z>gKY>BXXf^7@!+sCzFj+>XgJsqfc(1Ya(r=#J=3 zlZtj9{~(p*xA$9X2mMtN6e0bM#^36uHAhJ9Q&;+@HQ_ThCJ=yPPcaaStzMs1DHP_0 zvw_E92pgO+s83$0SnZp{u*pvQ$A3#Rftg(VD(=52XCTzUftd4T-22$PQrgIR*gHx4 z{43C_yk?5j?(i$Mual4dFf?{<9Wn}qfaB%>iNwkdu&q!m&h2IcZ$2Th!C8}<*_&Pr zyKl`OZw8N)3D^4?RK}UoD=o00gbKYHy=yv32mZ9Dl8aIS8x^Z$2?NwcBLzFmZOtoW zzN62&u*QDIz{Fy}^YAXY&Txmg7ATSAhAr8K5fZbFZ*SFa$_qE2L|VVFHOI{wKE8B_ zGXV2p-56OO`rc4Z7g3zbj)2_3YjK$((`OUqD%*mgvS`YELYsVW1or<Ji5ibxaAYiy z=gk9rKEVhw2pD`JXUG4J`ezawn{8F=L+M4NSK^3j$#Wa9kJJEJ-c-|b-w~wbz{b|@ z8l-rY)_}?(Xrs~{A%BGk9SDaFM(<Ns_Gi0#G;t%r?qy<5AoWN;>1)YW%;)D$oE>#r zQ3z|D(W$Eg`c?NY^+fD&+nctrc25@u47U__J8-QW7NqK!$T9C@*SpuaHyFRRpIGae rj_Lao#za}+eaj_<`F9!mRdtBiaY8;H<a_dgNJKC%GYNP(1HbeS!vuHT literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/layout/mini-bottom.gif b/docs/extjs/resources/themes/images/default/layout/mini-bottom.gif new file mode 100755 index 0000000000000000000000000000000000000000..c18f9e34ac1f4d06525592c5ec25783921e7ab1c GIT binary patch literal 856 zcmZ?wbhEHbRAyjhXlGz>c6N36?{M+r#W!!>FpPrH5Ex-0p!k!8nSp_kK?me-P@Z7m zFlAunknz~C;9xU5Gl#^14GRyqF(|p!cuZW_z#t(WR-;k)_;9y`aa9RNLW=VQMPsFy Kokpn+4AubBJRUOu literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/layout/mini-left.gif b/docs/extjs/resources/themes/images/default/layout/mini-left.gif new file mode 100755 index 0000000000000000000000000000000000000000..99f7993f260b374440c5c8baa41a600eca99d74d GIT binary patch literal 871 zcmZ?wbhEHbWMxohXlGz>c6N36?{M+r#W!!>FpPrH5Ex-0p!k!8nSp_kK?me-P@Z7m zaA9EP;893e(9p!fE+S&!pm?~AUD|4jgy5sYono4CYdSV2yD|teHi#$`Jz<zAZ@KEu aiJ--&dkk#zd{zV~IJdAA3h{6-SOWlJm?6yo literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/layout/mini-right.gif b/docs/extjs/resources/themes/images/default/layout/mini-right.gif new file mode 100755 index 0000000000000000000000000000000000000000..5b13c5a8b91b86e33d5def2ed29b4e348a5795a2 GIT binary patch literal 872 zcmZ?wbhEHbWMxohXlGz>c6N36?{M+r#W!!>FpPrH5Ex-0p!k!8nSp_kK?me-P@Z7m zaAja+k&tj`IMB$%CgZbW!-Ix)HhHZSi@+q84iWvZBN>K^-5Dep8%#8W7*0-Pa>$EW bxpC?7J_E~BDJKIG4z;p#3-JgDFjxZsq+}v; literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/layout/mini-top.gif b/docs/extjs/resources/themes/images/default/layout/mini-top.gif new file mode 100755 index 0000000000000000000000000000000000000000..a4ca2bb20aad89264b9022fee88ee29154dfb192 GIT binary patch literal 856 zcmZ?wbhEHbRAyjhXlGz>c6N36?{M+r#W!!>FpPrH5Ex-0p!k!8nSp_kK?me-P@Z7m zFlAuo;89qx;9xU{u$s(?fCCNf0?JM-3L76eGxBgot>IYk*sW87)#{JM#>MWF#5uKM LPHswdV6X-Nu*4oA literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/menu/checked.gif b/docs/extjs/resources/themes/images/default/menu/checked.gif new file mode 100755 index 0000000000000000000000000000000000000000..fad5893727ee8a13f428aa777380ae97152adec8 GIT binary patch literal 959 zcmZ?wbhEHb6krfwXlGz>j-2EYIms=0ihImdkJxD*ann5GrhCOt_fD7*mN_@JU|~Yh zlH}5*DP>F3%9rQXt#bJ9P}a7(ufM;0=I)-EyC%%tyKeK&xyuhMUUy>sj`JIKUfjO_ z>dyTab{)LB=kT>-Cr%wbdG^%lGbhhnIDP)=+4C1qp1*tM!nLy(uU)-*?dpv?S8v|E zb?f%+J9qBfy?6e~qdWJX+<Wlw{-dY&9=^Q)=;gylj~+aF1_aNazj*ob)$7-9-n@PL z_T9TzZ$7+z_wm!`FP}bt`|{<>*RNl{ef##~$B&;sfByLSi(wRuh5*qap!k!8nE{v; zbU->ld4hps4uc|xjK_ur2b)<{HDXQ_Japi6Q1W6iYUvPA5Rzlscwpk<4sO9XmXjI+ zi&_OWe7|@wG&BoL67X4M6R7Omz-DfcwPk^l8<#v6OGU!M%_;%{ss?XfI5Zp-5OGar zYW(QXz|GEX#*rx~s>CVD%q0^Mz{1hH&cW`(j0A>8wr;ZvZ4rjePOb7*MGqXL4LK$% TI;tJY@rY17bXb6iiNP8GS6tA5 literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/menu/group-checked.gif b/docs/extjs/resources/themes/images/default/menu/group-checked.gif new file mode 100755 index 0000000000000000000000000000000000000000..d30b3e5a8f138bfbbfea3d1d6d5631a81268fe26 GIT binary patch literal 891 zcmZ?wbhEHb6krfwXlGzxGAUp-FJv++Vzw-1u&!ctt7CJo<?*WL^{!`dYGiO~VsLI^ zaA{_6ZDDY0WpHn2@Mvf7Y-jN5VDRo@@abmo?P2iiVF>DF4C-YI>17M;<p83vUcty- z*_dA0*j~BVUgelBh1gz|m@eI<UZ=DP4yjXI(<eG*PIk+l;*c}PA$N{j;Y|0!nf{e? z{VM1A)GYr0|3AYh7!3isgn;5t7G?$pLk1m?ZJ<2Cz!AZa%pv2kVZp&>4q>erj}J#1 znRLYtaeQ=iW)bC#?NNBB=*-HhDWD|4xae>zCoh|V$$>=XHZB1n7Kal~O{`q}VgeQu b3s{-ixj1G-bT~0I2=PqTialkbz+epkbq-F$ literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/menu/item-over.gif b/docs/extjs/resources/themes/images/default/menu/item-over.gif new file mode 100755 index 0000000000000000000000000000000000000000..da1f289fc9d80d11f57ea8e69f8f5c738c5c0f71 GIT binary patch literal 47 zcmZ?wbhEHbWMYtFSjfz<>dd#BFMhxN{P+L=|2hmn01{_l;+WFEQt~aovJQha0J+!^ ACIA2c literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/menu/menu-item-active-bg.gif b/docs/extjs/resources/themes/images/default/menu/menu-item-active-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..afb0225751dd52de8c6cb1e9fbb5ef44e2949c11 GIT binary patch literal 1833 zcmZ?wbhEHb<YzEu{{Elg)V&`U9{qUq=GT=czpg#|b?e2id#`?7dh+Yei(fZ@=-ICa zZ+@M5@Z;QrAOA<eXb23u5K#Qd!pOkD$DqRi1fV?8KAIzjT_lfsh=dT}_|L$~A>*-O z!NF!GagCT08x}UU3n+Wd@%X6N)GcA0rE_58;^X}a&P6^Bo0goM%o4OJ=44UB>FEZ^ zr{=u;)NppTMKRlrlbe^HpYKp^CgHVZMIf8UWUW}P1uHKv4_NFq*K6yltE(e6XWc!u zb@lc235UC6y|=BoxjEzVs@T)p*52M;@c7hR@9pdE?ymU!>h9_7>+kPxVCI(d*|Fi_ z;SOQ#xHCI8K0ZD{*?XSP&P`8G&oIuucV_42=jRtVcgy+i+Vb-9is038XLoIVeSJgn z>3P1px4pf+qxki`v%9yyzki^aTi$Qaj*pK|OxBJ+w`b?)=NA@x&-dHA>+9<qo3rnq W+q?Vw`v-@++2sBA?RnL}U=0BC6OWky literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/menu/menu-item-active-corners.gif b/docs/extjs/resources/themes/images/default/menu/menu-item-active-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..bac40a3ab9daf015dcb4a8c53d2d709a44360953 GIT binary patch literal 1621 zcmZ?wbhEHbWM&Xz`2L?^#i=hR?)^A+>)V<$U*5d?aOS~}V|RW$dH3tmqaR0Z{n&Nw z$F3_sE<F0N?%cN{cYbU*_wCucUyt7XdiU<b|4}d+0z*Fp6o0ZXGB5};=r8~QC{MJH z=7^ymtD`<3KLj|87#KNP96mH0WZ)3yVsSWdfPsZo!NkBqfsv7eRX`%gfMFpcE1QZ! RMnk~?cSe2z4-O6nYXAT?{IdW6 literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/menu/menu-item-active-sides.gif b/docs/extjs/resources/themes/images/default/menu/menu-item-active-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..becc1a5afa15c3985cf03af3adc7e178f2412e9c GIT binary patch literal 1909 zcmZ?wbhEHbWMeR9{{Ej~#i=i+?)^CP;K!9Gzpg#|b?e2id#`>ydh_eXvtJM1{JQhv z*NqpyE<O2m?!k`>kAD0g1*0J_yh1?nCkrD313!Zf0}z1nMEhut7+x_v>KoERfa5;{ zql`oaLxV#To3MsY!i5HBW?p%z5Qo6VgG>_KF=sLa8r@mgI6G7l3K~u_s`^W%9GG<Q z)HF8P6D0{78qcz^vAz&VFlac>U|Y}j)lx*GVZPf$vDm7RjNnE7ldVFfrfObY9lY7; z=&sP!SJox$@7nrmYEH!F<khR5&YGrsYkT(TW46}Y*T!rwefa2Z^>+Q(ef58D@%mJ3 zNZi{bC>~a0u|D}gucGn1KNf{gk4{&Po;GKu(ev}Oos-#YqqaP|w8DS&x13p}S=U!v zpH`EdZT9B&=IG~jdv|ZkyS=xNS^nQ{i~L8&dw=_#tJzun@YF){>HlnYls>t-G5CI+ zZPoXe_cvDuU6-3@{qytV%gyfl<M#ge_Tm0%^Y`=WYJPt{{W^XAeEWa@e_s`UP|N&H xeL+1dQ^$iQb~6u!W`3)TgccFMjD<}?Nf8U%#MNFXw#YV}c-SF7O;muv8USoRoyh<I literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/menu/menu-parent.gif b/docs/extjs/resources/themes/images/default/menu/menu-parent.gif new file mode 100755 index 0000000000000000000000000000000000000000..1e375622ff951a3a3f1ccc668061e81b9c93b411 GIT binary patch literal 854 zcmZ?wbhEHb<YC}sXlG#1%-g3`xZkLBzfQpc?b1_LRp%W3J6JSbvuwF+({kCi<F0%6 zNypBcp;OKUEqD{M;AQ%Pt4XUq_8tD#b@<QJ)BhPp!Dt8!<q%N($->OQz{a2h@&qVP zFmM<%@JmQ|Y*@g^%E=?8;=tJG)Wo9VlknjJLnFJO0!M|%0mo(rQBEC(fQyeBCb4lX KFcA=7um%9T95sFb literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/menu/menu.gif b/docs/extjs/resources/themes/images/default/menu/menu.gif new file mode 100755 index 0000000000000000000000000000000000000000..30a2c4b6c0458751f85126e8bbca6ef2ccc2ff00 GIT binary patch literal 834 zcmZ?wbhEHb{Kde?(9Xc{=<(wZA3ps5|DRzLjE2C-3jxKSEI?2HXV3w89h4^+IOG|a lIb=LGEI8Q6z#<cKV#C72?E=bPb38UKI@&Fv%*MiC4FI5a8gBpq literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/menu/unchecked.gif b/docs/extjs/resources/themes/images/default/menu/unchecked.gif new file mode 100755 index 0000000000000000000000000000000000000000..43823e52db80e04017b2bc1e031bef2d82c67e6a GIT binary patch literal 941 zcmZ?wbhEHb6krfwXlGz>`0voy-@k72&h=Y%ZQ8zP%g((!cJJT4@8F*OhYlV-dg#cp zW5-XNI(_EM*|Vq5Up;&A+S!ZOuUxr$<?6Kymv3CSa`V#FTUV~%zIx-%jobHb-@bF} z&i&hW@87w5@9zDF4;}*1<A;wPJ$&@|(c>qNpFDl?^y$-QVDS9;ix)3mg1{>fcnt(^ zUcUi>w{PFRfB*i&hYz1Vefsj{%h#`8zkU10FbYOPfHonZ_>+YhWU>y30Obh=jxGj9 z4jGRP3l283GHb+~D0p~)!9>Yxj)(FAXDKG5ESZ1@4oAD0WI9R=9v*6Ak!N+{dHKMR zl}FY^$AdFLm4!>ptVN@75u<Mhi(bZ$hDWSC5<+#C3@$Vt>5?#BR20ya;KC(goN;9V qqtnW!)kYaNB(j|}n>i$H<|I5^)XKF~L^CSn=7x7MEgZ~D4AuZjXTU80 literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-bottom-bg.gif b/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-bottom-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..408066bfba107a3da8a8198d63140e3114b9e303 GIT binary patch literal 1862 zcmZ?wbhEHb<Y%y8{{Ej~)v-4>o_)FT<jb`uU%veKbLG*OOF;DC%atcz&fNQS;lZbK z_dcDt_36;H4@Yi%IB?~|u^S)uTza?f%DY_`-t9Q|?*Awl4S}H?0*XIb7#SEu8FUzc z0F)=%M{~qbj?YoIQyKys{~4G$WIQ%3IM~b~tQB)&!@|Su0?J-<JT@*m+AU$6b?3y! z#mD;<oV#Q^H!V3iStEE=%*jnlPfs^UJ~hX4^RlzEEs9^=Ik|cH`S}jbT(VwUR$N@{ zF<C42)RvW(mj^8Nn(MW7)z#Gzo3rko+PeDs`h>$>vfkU)+}xaTc~$J`ZEJ6DFL-=v zuJ`tJcXwBOes%Zs_VxGoH!yR{`Rv&6@NkE)cHEgA8y_E^pzJ-*XXmD;r)L;v|Fc@K z`T6+;&fV`~7HoNWc}4JQz1#&`UtixKdSagM?rm>xZxVlT@9ggKruzq)x!E1|?D+Ut zWRiCLxtgZW&o3-?pW(N6*VorKmV4hgw|Dn<_6LW%mF4d**z@!Ai_5F^-!Itv`}+sQ a6Z8G|+cp3G@%gp-f&Kgc|7T=mum%8ZOq&J( literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-bottom-bg.gif b/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-bottom-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..ad2113f3b3cf8d5dae45f7e0b4055d1e72cef99f GIT binary patch literal 1839 zcmZ?wbhEHb<YzEp{{Ej~)v-4>o_)FT<jb`uU#>j*a_P~R3lD(k)46+}j@<Zg=-P(^ zS3VrL_F>nBcl$2A+jHsNj&tv}oqP9x6pV(zum}OgpDc_F3_=V#3_t+N6YZlpVpv4% zs3*t_0gnF+%p5Wv8x|aF<`CA3Ik92k;dTLKuQ?tY7ai@EFwVMjV&mfD{R+-qGM<~3 zoSdu?yej78rlqH+8zi5a<GFd++1VDwukM`Oy!`xphh{EWuPrMsF7}wL6?<yS%FD|G z7JJS0+PdoM>WIx*cTa6yeSLkx;VxP4ZEJ3B&bYiP_Vl*3x3?EOJ~h{S`?|ZkD?Y!v zdwTo&`}-T1x#fIzY<PIMLs&cR%#MwZk55qcp69c3)6>&4jI;k)E!h10`~v6hcRmZY zyu7?3c(q>af~~KwZ{R&K&v*B>x3@P5zPNXGcX`YG1I^s*4tsWde9SvZJO13Bou8lZ qFY=!6cenBD>l>T(Z=Bn^yPWmG;cg!J`3v^^{QTnbYJGVD25SJ(yNW3Q literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-bottom-corners.gif b/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-bottom-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..f4380faf23f5ebca25bf6d15eca8704ff6923b86 GIT binary patch literal 1648 zcmZ?wbhEHbWMPnC`2L?^#-0}!?!23~@5QWrFK#^ha^uODV>dqBd-dbaiyzmXd^vaT z)0Q*u794mn@4$;W`(B*5_36Z&ck52PIdtvasXL!GoO-kE+`DJ*emr>f<I}f4Uw-^~ z_U_lefB*iEg3%BdA|asolZBCiL54wx0SG{OqJ1<+43VfCbtX+hfWw!8k%Pry!GeQL zoI+{_2QD0FZs#}hIAgG3(E%P-#srlGhKWa;L>!qsJPH}w*x8h1HW)ZIHE>H<6htT- YP-J5iHj!D-@Q{I-gGcKG4+n!a06`!CZ~y=R literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-bottom-sides.gif b/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-bottom-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..2f5557f99b9fb4c1109af6c850123f1d4a6a7bed GIT binary patch literal 2015 zcmZ?wbhEHb<X|vi{{Ej~#-0~9o_)FT<jbmKZ@&EabM48OE04Zhdi3SOgHIP8d^vaT z(~%n=4qf|j0En)9*mvpOo=fj`U3j<S+`Db(-u)j1qaiTFLqPE-3nK%A2!jp-5P<ST z`)H0B;!!&4e2PMV<39tV0EdGC10w?yx0H*;h6e{*_$0MzZcI=(+9{;$v}MM`$H!Xb z^|RJ+Oj_d6uVy{%h(yrSlT(!=m*sdCFY}#gk^IVK=H%yoGwhm~WPfd1aeA?7wUBGo z=j9id_|4R+y%nNyb!E_Er>(Q5zP`3Jetp(ju4!u`)~D^Bc2p|t?ai&pH<#slm#>T6 zS@HOl>+I?8<95_BGt2$iw&C{S(%(XEHQ(1iJklqrU3VwK;OWUp%Ff&7%>4Z9=zRU` zbv(1SWSn1SJ^h$W)Yq3+7e_A7^R3>NdvizfYqz<xzvtc9*UT*cZ`Y33kGEC}yVw2R z{_)AVncDUDVl2MCytLSP`@FfozdgObK6}r4zIl5p-ap$t{kUA*-=AL}-&~&WU%#*R z=a0v)-RIB$U-#o5E60O|_o6TEHGci-uF&-TZ+b!#pV5j3&AeP54_k!XI2N`_7VUW0 zBp<gTu~lJ`#-et$vIwO%#Z?uLx|BD~Na{8@m$A6V;+RDkqm7tDV85MF%7F=N0WK*M zd1MznVH8n(pu*&9=Q)unM9bkKON5`pMTQtYhd`DDw-2c^L>v>;SVU|WJYyEIe6WmJ V#85$<SwuJCIaBGq$^ZujYXFn3$*%wa literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-bottom-bg.gif b/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-bottom-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..4556726f66305ada1ccdc98bc2e53f2f68b42a3b GIT binary patch literal 1820 zcmZ?wbhEHb<YzEs{{Ej~)v-5M9(}p==*xu%K=kR{y-!DOd^mLN!vP?=@?qD7cl$2A z+jHsNj&tv}oqP9x6pV(z@CpINpDc_F4Ezi_3_t+N6YZlpVtB>ysBcIM0gj&x%p5Wv z8x|aF<`CA3Ik92k;dTLKuQ?tY7ai@EFwVMjV&mfD{R+-qGM<~3oSdu?yej78rlqH+ z8zi5a<GFd++1VDwukM`Oy!`xphh{EWuPrMsF7}wL6?<yS%FD|G7JJS0+PdoM>WIx* zcTa6yeSLkx;VxP4ZEJ3B&bYiP_Vl*3x3?EOJ~h{S`?|ZkD?Y!vdwTo&`}-T1x#fIz zY<PIMLs&cR%#MwZk55qcp69c3)6>&4jI+zM7i@lhegS)jobRqJFE20RUJ-Y8*Vg9i z8<J16Iqcr{_BL11>w9N+Z-0M>r-@tMucq<i;}etBBhKyF`I-5`V(<BR3wC{dePeU> JdN~0GYXF`kewhFO literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-bottom-corners.gif b/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-bottom-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..8328b0535e6f82e0175f0ebac83d0dbf0dc16121 GIT binary patch literal 1667 zcmZ?wbhEHbWMPnC`2L?^#-0}!?!4P_=FOaaFCM-5aqhvlV>dp0`u69^n;&;x{J8h( z$Bidnww!r)=-Rt&=iZ&T^KRC@7uTMBo44=9iCdrM9e8o-&ZjRw{ycm4<H4&R*PeV^ zaNxzd6K}3P`Eujgms`)ioxAtx&WmsNUi{c_>dmuvzyAIEcjDH!|D#|u1O`nADE?$& zWMEKZ&|v@qP@ZTX%@Knpaz-6803pDUz`)4C@?c@}K~@g&l!zGz8=RSimHak1Ts-8! zpyrh$5#Z3w#KI&Z5Ml7Zp@oOp%*3Ekp^;6PJId&Uz{7@?Ny0oi0R;=4m^mf*W*8iF ZU^>FgtkvV8@Th@_mtVs|LP~(a8UT$m{(=Ai literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-bottom-sides.gif b/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-bottom-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..59d140b6328d2f0dd667b94c71361d7720d6220c GIT binary patch literal 1998 zcmZ?wbhEHb<X|vl{{Ej~#-0~f9(}p==*y~OZ@&EabK$|43lBb>yZ7nHjSq*eeK-I_ zS3c~!^ls0kce^gU+i~vQwsY_PkAl$<7%m~8_>+Z^fkBW#hXDvcd7^zZM+}#^9rXt} zA;9sUfl+|N!GM90fr(qn#bU#QgDrfLS~WK&C>-q+Qg+%hW8&jut@8R=Yd9t?@#t5x zo_0hc=;_I+%8|=*Jd2n4&a_B=<uY^fbH5pO%}lbtHmx|l*tA;6wd(Woi%a}wYSrEf z(YU%YXtC4QSyNwMTN=MUYc1EbH4*F6c27Gh754V#*5sSZa=pvf#qO+l{K|Fq^!IT) z>X@13{%qTD`*7)RA-9_E>mMHJlhm%e6JhZ5<RoS1ZF6RRes*-ee)c+^Sz9vBFSDM0 zOeX5<%d3kcm*@FbZ_B;8Bl)%4+}YprZtQDjmjAbF$Lq&itA*X`esBNy<lIc{`g<`J zUteBY?7V&6+~41x-d~@+dOhE~Jr(bt?Vf&IF7EHoua9po&-bt2SNrqF<Ja!<=l`$! z@sE|`LBo5|7xx;!esx!9`u;aPp^49E#e-&EE{}&TLT(%jTP2HjJZzGWTannRFiB%k zyINU<Qk&wcibq|_n`R_+o1Dv7++%UfVito9mqQ?<gV=}U2_muyPZ&iU7pSm^@IH9L tAY!SolsVAPGmtsL%t4Sj#>n9!Q-YpDAXAE(gCJ9eQbF1*c2*V!YXE>W!nOba literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-left-bg.gif b/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-left-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..73a97fdfb20f3818f7a992d017e6f0bd5af3d978 GIT binary patch literal 1634 zcmZ?wbhEHbG+<_A`2L?^)v-5M9(}p==*xu%K=kR{y-#QEeL8aE!=Y;*4qW-L=fb;v zSKjTp^lsOMcRS9#`#%asLtuD?fZ|UUMg|6c1|0?<0Og7H(Ht?nVtCXyq=f*7Jp;dt z!-Ry!CN@3>5e)-}h6V-!Wv@9N8y6kzmN3q`b7JG-<NXTGT{51VmYkfd5xgqq<ff&k RryC@nn&Y`y?PLRkH2~Gg4gLTC literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-left-corners.gif b/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-left-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..301eec62740648af07233fc41013a928027b2ee7 GIT binary patch literal 1684 zcmZ?wbhEHb<Y5qC`2L?^#-0}!?!4P_?#--yFK#^ha_+&mBR4+XdGYPWvu`(^d^vOH z-3g%VnRnaHz1wu=-L)rQHk^8M?8b+A2VTtC_hQY7H}m$rSa9IQiCdqZy!&zI*|%#? zzMZ)B?bMx5pT7Nh^ybH{XWyQ^`|;)5pA9G8Jb3lv$(tYdUi|p-<Ilf;|Nf7H(GVB} zA)xq^g^__lgF%M@2tawFeKbc5f@m3a!hnSUM<GLC&H@95hE8rlIe{Mx3mRDXWqFiB zJQx}n_$Bl_d^{FBY7vl8%2~pZz{Jd|;a0|S;b8+SvzE5ffdU369|kT%pB+C9pZKyV wJ7n0L*tm#^Q&~w!wet`|%Utj9XHyD_pE0tVM@K~z1UoT{Xf6)p;b5=^08=LeA^-pY literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-left-sides.gif b/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-left-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..40f49b0ca3eab8933381aa733f0a40c8accbe827 GIT binary patch literal 1831 zcmZ?wbhEHbG+^dn`2L?^#-0~f9(}p==*y~OZ@&EabK$|43lBb>x%cVZy-!DOd^mLN z!+|Rw_FZ|m=hC}97vAl<@NUPscmGGhXb23K5K#Qd!pOiN$e_aj1fV?8KAIzjOWcn7 zgPaiH_|L$|A>*-O!NFz@VXc@G8x|gJ7f|+^<FRqk(QXOjtUD(*E<WC`;M^tSxoOGC z$ts*HVoq*adV0D+@~JtVo0pxPZBhK{&dJTo&(C*g=92Z=vf|=mkI7oGr?#xTyxd1v zC168?V>7z|n~Xz%Lqh{Y!r?Ai?`>;tZqB&8D)#iYwYRqyJU%tod;7Y(yDL7wx_f&2 z`uqDEn7QSAb{NF23|X6W_0-kX506h!_MYdnbJNq)GmNwEo!M!eawK$p+TB}US3keJ zB6xM&*<D*-U*C|too#JJN%G}Q#jo$3-M#(&{R7Sa+r0Md`1tt5WbOEKdv<<)eqpiq f{Ju@QzP`S(Is5*(y}Q4^e{i^)Mc&^|fx#L8g)4*U literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-right-bg.gif b/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-right-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..3a2f9de5a396c88abd7f6f3f6af009cb72ad8810 GIT binary patch literal 1634 zcmZ?wbhEHbG+<_A`2L?^)v-56ZhSa&?Zbg9AI{wSbmh^POOL)>cmPD7&fWX8=fb;v zSKjTp^lsOMcRS9#`#%asLtuD?fZ|UUMg|6c1|0?<0Og7H(Ht?nVtCXyq=f*7Jp(g` zjK_ur2b(#BwPH?eSa`TyK-p`K$HqlRyCsaX?wr`T_;|m9bC-<grX?pQi?Q-VELhOU R%)lZfW00`Gp|OF%8UQCh3}yfT literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-right-corners.gif b/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-right-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..2c5788995778554ea30e3526c7d0040a187b3967 GIT binary patch literal 1687 zcmZ?wbhEHb<Y5qC`2L?^#-0~v?!4P_?#--yFRnfNa_+&m6SqEHd-CPXy-%m^d^&RD z(}g?lP5>30dAIG{yBklwY&!F9-hmf$_Psc9>)Wv#AJ&|BGjHFE1qWVSd-Cnhvu}^y z{CM^0*M?JXZan+;;MI>$-~QZs_U+b-ZyQd$dGO}Pmv4W*{P^?l-@pH(U^D~<M+hkX zWMO1rP-oC#00K~+XdlfHgCk}}T`@2rz)`~B@3X>yfq{uxgwIBUae+e%pFD$#!-@$D z8~7A>JeKSbXlUW#Fjsq{vCy$WSV@~nVd2B3rYW+9ITsEvsvTyQ_3+s6Qc#6;9xq4B x1&czJ!wiCaE;_3|wJ`Bn&n!FgQ<3RBpRwYHKMx)<G0zi}nd6{2HPL~=8USE%2qgdj literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-right-sides.gif b/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-right-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..31b23e6b0cea99a4055a3e765a75a0e41788befe GIT binary patch literal 1831 zcmZ?wbhEHbG+^dn`2L?^#-0~PZhSa&?Zc{LZ!SFe^ySB&3lF|rdGzJdqc3OfeL8pV z(}61=_FZ|m=hC}f7vAl;@NUPscmGGhXb23K5K#Qd!pOiN$e_aj1fV?8KAIzjOWcn7 zgPaiH_|L$|A>*-O!NFz@VXc@G8x|gJ7f|+^<FRqk(QXOjtUD(*E<WC`;M^tSxoOGC z$tv6{Voq*adV0D+@~JtVo0pxPZBhK{&dJTo&(C*g=92Z=vf|=mkI7oGr?#xTyxfP` zW3JcMRaaL>Y|grSYU}Fj>k|%l$$D>Fb8~aX<yEn#x2?Usz2Nbwx!&8?-QAtWs*`Zx z0AmXyr-*<-!-E5idpd-*<Ie2Z`1tq)W$$@DJ2yQ&QuXr}tImuK4^J;}?w0f2wdLjI z6~U|R=I(rd|3EXhe4Ov@ZEtVyD1LqKY<2nTvm0#X8@%@H`1tt5WbOEKdv<<)eqpiq f{Ju@QzP`S(Is5*(y}Q4^e{i^)Mc&^|fx#L85NLtE literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-top-bg.gif b/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-top-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..78f64e4e96d32c672c7e4775dac1443c9193fce8 GIT binary patch literal 1821 zcmZ?wbhEHb<YzEs{{Ej~)v-56ZhSa&?Zbg<AI{zTbmh^POOL)>cmPD74qW-L>%zM| zm)`BW^lrzwciYar`#%asLtuD?fZ|UUMg|6c1|0?<0Og7H(Ht?nVtCXyq=f*-F9vQ7 z8IKJM4mNWLOGTX6u<$UmfU?&dj|Gd4c1sv%t$DFv@$r5I#ts?JO-q_4YXq-~Ir-^H z({zL6Qz;Icmz|x>S@i18$>4_b^BtPmB)qn)xVYG3vR3S=Eh{fC4_NFq*K6yltE(e6 zXWc!ub@lc235UC6y|=BoxjEzVs@T)p*52M;@c7hR@9pdE?ymU!>h9_7>+kPxVCI(d z*|Fi_;SOQ#xHCI8K0ZD{*?XSP&P`8G&oIuucV_42=jRtVcgy+i+Vb-9is038XLoIV zeSJgn>3P1px4pf+qxki`v%9yyzki^aTi$Qaj*pK|OxBJ+w`b?)=NA@x&-dHA>+9<q No3ropSt&4B0|0Gif^`4@ literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-top-corners.gif b/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-top-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..12bcf23a36e78482886e3af9eab7806c803a67ef GIT binary patch literal 1668 zcmZ?wbhEHbWMPnC`2L?^#-0}!?!4P_=FPl)FRnfNa_+&mV>dp$`ta-4i*GlceY^JT z+o?OB&fWWT=H90hAZ70kU3<6f+`Cyo#ZSI0IPhZ5z8CWjyf|^|)4CIHzI^-h=+%!q zKwVG1ow)Vw#*;6fzWurN?AxnPzaG8$@#M{q4X56G`SIu9zkmNn!Dt8!ju24%$->CM zpw6Jf00f{s(LS0Z21m?{x?*5LfFqHCk%J{*Q9>sRhp<nC#lZ$=W^tvsj13DOIWVYO zC9DW&IMl(z<R;@0pxAtfOG07J35BLZoh*tbHZvwD9A@B@*ONHlz;KY2gP9}8qVUl{ Y24-$Mo*fMdOr6U_WCA)IOcWTb0apV6V*mgE literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-top-sides.gif b/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-top-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..33d20229aedb48045cc18d7229f4dbaad185eb7a GIT binary patch literal 2002 zcmZ?wbhEHb<X|vl{{Ej~#-0~PZhSa&?Zc{LZ_eHO^ySB&E04Zhdi3SO10ecz;M#`+ zS3c~y^lsm!ce^gU+jj2Vj&tw+kAl$<7%m~8_>+Z^fkBW#hXDvcd7^zZM+}#^9rXt} zA;9sUfl<W3;erDr0~5EDi^YZqj*aX}aupE_jjk*roEa(;3YCwtE64}PI219svTMlB z@$sD4=*=b~eIm!9u<<Ob2<r<G2g8Q*47T-bUoAy64$pUERnk56WktYpmxXG&8$z;z zm-=sXyK1#n>-y@D&24wBwylm>pL%dnZ1pzX$Zh#|XZ3oQuZ!JU^zqu&>g%iSudlz% z)^=NbL*l`9&d;$n7Wt3&_H!%GTVrAL_(-3j^EI8FM$b=AF>b$Svukt4`K6AF<7#)A zW?ow#JG;-fdRy+*O@-I5)!yFp{`~%6_V&BdI|?5j@BAERXH)+9?)h%z`Ri<~K0i6P z(fPXGUaRk~uWW8#f8TE3?uz$M4=#?c-)CF-?fu=^{r>g)YQKK^c>Q|){aydx|6eMu zQ1h2DV?hJE(24s^%+IbrsN)ywc+kS-b|RsPFNtGen^4$^hpi%M5|7%H%QP0Xt2T8! z>Qdk4q13IvD<i4L<Xpz$E~7^gi~G!@UOaBMUnZf_W6PAeWP-cU$;XqNpWS%U=P%az vWQv#D$&^WcNt{ck1%;h_IyEFs^4YZHGR<YvQ=2-U%}U?qnU>1P$Y2cs(>ubE literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-left-bg.gif b/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-left-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..ff78a2bab3834ee4e573d02245cfff88bfaf3815 GIT binary patch literal 1638 zcmZ?wbhEHbG-hUG`2L?^)v-4>o_)FT<ja*uUoJiRa^b<3YfrwMx%cV9gHPw~eL8gQ z!+|Rwj@<aL=fb;vSKjTp^lsOMcRS9#`#%asLtt2hfZ|UUMg|5U1|0?<0Og7H(Ht=> zB6idhWQG8TGlQf?z=i{k%p8IYG9Cd942_J;JS;OjHZD5aEn%E>=fuXv$NLqWyJS2! hEjc+^BY0KJ$xTa7Pd7+DHOF)Fva_=-{MlF-tO4)V4D|p2 literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-left-corners.gif b/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-left-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..bb487a5209f1fa0017fd7fc6a19da2a88ca94509 GIT binary patch literal 1669 zcmZ?wbhEHb<Y5qC`2L?^#-0~v?!23~@5QWrFK#^ha_+&mBR4)hc=hAniyzmXeA#m5 z-G&oy)|_~=<=mS&`(DgD@Z!dkFUM|tIC1OKmmhyVefx9b*0)o4K0SH&<I$TR|Ni~^ z^6k&FcR&7*g3%BdA|asolZBCiL54wx0SG{OqJ1<+43VfCbtX+hfFp^)G9<x(;Q$M# zppbw9!-50MJi<ImAtyF4ws8xosKszN9AM!VGznsH*!1LJFOT{PmCB+g9usBaw>^0w vsN&Pc#g}u!Vsat_BfHW!mIDV5Ffp1lo|q#sIXP&m;N)p3C#NJjFjxZsWVs75 literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-left-sides.gif b/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-left-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..14f4971fff9a4dff13ea935604fe1310a485bdc1 GIT binary patch literal 1841 zcmZ?wbhEHbG-l>t`2L?^#-0~9o_)FT<jbmKZ@&EabM48OOOL)>dGzJN10ecz?%t;} z_dXrD@!`<54+pM%*mvdKo=flcTzI$Z!n+;k-u)j1qaiTFLqPE-3nK%A2!jp-5P<ST z`)H0B;!!&4e2PMV<39r<hm6OD1qYisgtcN$Y*=`>T|n7uj>pDDN4q7Av+kVOxcGR# zf^(OQ=cXkmC#!R=h&j1w>FMbP$*1OcZeDhFwng!)J0~|UKR@50nM>Ad%ZiJOJtk|# zp4zhV@^XJkgNz3c7+E-l*)#$g4m30}vvRRWcyC*Cb92V!Rk5eHt-Zay;PI)s-rLvR z-Cgnd)!ozE*WcgYz|1Y@vtz@<!yWIvmS%~r4qF#@u*=tH=ccEpXBcPSJF|21^YaUw zyO-_R@#^ZD=-qX^*1NX8zP=&(^gQ3)+uq*Z;%)B6TlqER&VgobdA~h7K0ZFt>l}M- x&(6=!FD&++@3(i?*Vi{TXUBJL+Wr0ggTvi?^8Wkw{QUgl^6L2WbqNj()&NHFgyjGL literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-right-bg.gif b/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-right-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..df72cd36f41beb9255d24ec9afd3706bc01358bf GIT binary patch literal 1639 zcmZ?wbhEHbG-hUG`2L?^)v-6H?tD6N>(j9tAI{wSbmh^POOL)>cmPD7&fWWT<i>|X z*FGG$@?p<~cl)lq+jHsNt_$yWoO}0w6pV(zum}OgpDc_F3_=V#3_t+N6YZlpVpv4% zs3*t_0S*@iW)2yT4GRu7a|mn2oY=7NaJzuA*Bp<Hi;i|n7-!u%v2pS7eg)?)8P82i gPEHnO<q24jz{t$btKh=mpm30pnT<<?gM+~u01xH}UjP6A literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-right-corners.gif b/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-right-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..30d9895742d19cb91239c428de951070903d464f GIT binary patch literal 1667 zcmZ?wbhEHb<Y5qC`2L?^#-0}^?z}s8<HMYNFV5U~cjDHkQ+GaHxbyDFjZfRoz1wu= z-G)<d794mn@4$;|Prh7x^6kcxFE^fjd-dtpgI7O3ef#s^&5tkN{yYMbKmPpt_wWBG z7!83T6#|MsSr{1@q!@G<fB=*y+DCK5kcz-j$5J^2I1(5bIYcrRG%&CW7;qdpAmDJY znUhnhBtu}KQx}s#6pMiaBO|Yra@2|g42~YH{3<aK1wswY9Aa!+j#zwt=+nj}pC_Xs jxaiPyk(5_G5{`#hSamgh5(E~cHnT`M@P$eUFjxZs8^H-b literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-right-sides.gif b/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-right-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..0abe4a360b4fd7981ae7909a5b17e4151416652b GIT binary patch literal 1844 zcmZ?wbhEHbG-l>t`2L?^#-10a?tD6N>(i=ZZ!SFe^ySB&3lF|rdGzJdqc3OfeL8pV z)3F;Lj@<Zg=-P*USKb}C@?p=Vce^gU+jHUFj&tw+kAl$<7~&zI_>+Z^fkA{phXDvc zd7^zZM-1^O9d$lMA;9sUfssSTW5a@j%^bp7F()=GJlrmz>@~+@<D#S862@6~PHbF! zykEh&OU854l9Q9wxmU!T+_d!cbc5tmb38XMJ3HH=_|=`0o0p%T@6gO8>$PRY#l;?z zwPH_gS$TQ6KeNYNudS=Du8!E8b@$ZP)z{Z29PX0!-nQoE=8Vg$Voz^ddwYAq<5P3J zx39aqJC#)@;lP4MW_AH3ABhPLjEu}2d@=`4@7VbG_ylF|c|JQgJv}|cI6H04^!4!v znmDE1)>LeMd3i<f>bSGJw!Xf;A+r44Z}Sfi4z&yG_nqCn{r&v|&D`>SF+bj%-{$%} zjA!f4&(AL`_MY#zch}d~H#TSAKUb@I>ivVm-GcJ|`}X|&{NnQJ`1AYr{%&MsWUvMR DRaJyH literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-top-bg.gif b/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-top-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..810660c9a65e0928fba21330be6d47429ec4692a GIT binary patch literal 1842 zcmZ?wbhEHb<YzEp{{Ej~)v-6H?tD6N>(j9tAI{zTbmh^POOL)>cmPD7j@<Zg=-P(^ zKy>B9t_$z>U3$0Y(z_k!-fcVg?*Awl4S``10*XIb7#SFZ7<3qb0F)=%M{~rmh}cn2 zkQo9T{~5SBWIQ%3IM~b~EEREL!@|SN0?J-<JQgfE+AU$6wMJs$;^X}aj2$wbn^Kx5 zYXq-~Ir-^H^K^scQzZ_Ymz|x>Q}pW2$>7HG^BtPiB)qn)xX9=+Su6I`7R?~WfW=;O zr53EZx;kQW*4<NES6^SBaJWm>d)u0un=>x2iaot;?d|Oak5A3@-oEbc?uyT^?w;Ph z{{H?3W^Os39UC4V?hw|FJF{cs<Kq*Qz32Jt-1PMH4CCy3XLfFWetv;-x18^;EiW&x z2woj`cGuR|*Eb}ep69!J+uPeaieKM5yL<cl`v;o2<^A^T`1tt5WbOEKdv<<)eqpiq re80WBzP`S(Is5*(y}Q4^e{i^)U*3P;o}ZszTwWc2e&6304Gh)*FyM_Y literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-top-corners.gif b/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-top-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..e3d7bb5675db2b1bb63523ae8bf51b5f8ff80a40 GIT binary patch literal 1652 zcmZ?wbhEHbWMPnC`2L?^#-0}^ZhcyC;KiJMFK#^fa^lvvV>dord-CPbwRc<20MVOu zC*GX8^J(6`7uTMAJ9qEXxd-2FJp1<O)sIJSemr^e<Jz-tuRi>G_377_Z-2i0`19}I zzyG6PGz5lD2q^w!VPs&CX3${(0#Kf4AI%X%C-z2NO8pSv2xMU7V41KmfsKiSQzoL~ zK!Y<gqY_(!!^DFQ4ANXW5)6(EtUR0=5gi5$&CSfrVhT4J5}O)$1@$~U3KW>y*jQwR WdORjPa&4DnaN+SXd~vja!5RP_CIL|Z literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-top-sides.gif b/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-top-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..38b27559f10179cc9754e9ea11f198c79b983b48 GIT binary patch literal 2019 zcmZ?wbhEHb<X|vi{{Ej~#-10a?tD6N>(i=ZZ_eHO^ySB&E04Zhdi3SO10ecz?8b*9 zH$EJ?_Tc~!UHP!@(z`vE-tD^ZZrizcJI=lPKMF=eV2Fo+;!hSv1_luZ9R?r(<%#yu z95KYBbkzA2g#gEY21XGBhYJpj3{2coE*2XeI5x5?$yG!!G`g~gaAv4XC{%XkR8S3& zaVTOq%Auh=$H!B!$(ut&{zQ$##YSIt5y=-R4uy^9Sw%!SLIp}RTp2xB19%RY9JsX1 zf2LdMsSTQ;jbY2P)^bf<9kM>0JB4+(Xm<GK_=|0_tGBJWu{r<pu~_cuZ)3KXeZF>A zJ3K#rU&((iJ|7AFgu~5(;%cXN<UZcr|5vZfN3tmOWS6nK-5$%r=O?E*C;waX(<uG& zyufC;wY#>wxV%32cpUHSuQ}JZ6<@!n8(p4%Z%aKlzn_eG!Q;ad#nsR5DgAu=e64=D zpKMj>%Tt@(?f2PMet&uGaPoow>;77mf4+CIS$_S#JwHCbzkEENfBxT^@83ROzpo!( zU;ppRU-g6rmPhOh8kv<M6e@YPU4Kx^|7-h#W)Y`|g)LlZ5)T`t)owg&5o_ys*e(@! zVqvG;B92ELTGKQhb?PsZc-&>M$zpN0*|UhpeMYZtDEFKE(@2@%@`z)}L}#T)l}?{+ zH=gwR|Jt!+a)?vp(kWhPl20c_tKED$C9JLU>GY_$lS^mDE#iDOBWs%GvzhtJB%jYJ U*krkUcG<JY=ktpCL<JbE0nq8gQ2+n{ literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-left-bg.gif b/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-left-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..381535d38a896637b9784a644be1270d75974ef2 GIT binary patch literal 1640 zcmZ?wbhEHbG-YOF`2L?^)v-4>o_)FY<ja*uU%veKbLr8SOAo$Wc<|}my-z1@eL8aE z!+|Rwj@|fh=-P)pm)`BW@^06KcRMb;`#%asLtt2hfZ|UUMg|5U1|0?<0Og7H(Ht=> zB6idhWQG8TD+8xW!h!_{o7nke92gcb9Aso>W#bSKSg`15w}f%lof8`uAMaOi?vnA` kwB+Pujo?)=CpRrUJ>4Mr)Ev*v%g)ZWD1PN5DZpS20Nvyd1poj5 literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-right-bg.gif b/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-right-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..7240859e13665d79a0482ddd43d8addadcda83d2 GIT binary patch literal 1640 zcmZ?wbhEHbG-YOF`2L?^)v-6H?tD6N>(h}NA1*xj^ySB&OAo$Wdi3SmlP^~ueK~jU z)1hl04qW+g?8b*Zm)`BT@NU<Icl)lq`#%asLtt2hfZ|UUMg|5U1|0?<0Og7H(Ht=> zB6idhWQG8TD+4o!jK_ur2b(#BwPH?eSa`TyK-p`K$HqlRyCsaX?wr`T_;|m9bC-<g jrX?pQi?W(XY-n&~Vds-$kXX>bz{t!l@IpsGfWaC77rY9# literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-top-bg.gif b/docs/extjs/resources/themes/images/default/panel-header/panel-header-default-top-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..df8ba358077bb37d84e98ed89c48e8bba76318d3 GIT binary patch literal 1863 zcmZ?wbhEHb<Y%y8{{Ej~)v-6H?tD6N>(h}NAI{zT^ySB&YfrvhdGzJVlP{MZeYy1D z%Z(>rE<E^j=H916*FGG$^5NKx4|^`X+i~vQt_$z>U3vF^6pV(zP!0jbpDc_F45AD= z3_t+N6YZlpVkpPwsM{$G0gnF++#E6<8y++@a|mmh9N4h%aJzuAk&VN~MMt|OjDvg* zY+QW2pU0_7#&c4`$;leQt71-WQf-)SkbG*2!{%jYXA2j-x^vRF>HK_$W-i%RlbbFs z_LyuJacaxTVD^B;UURJ$th%~7VsqA7u7#_wuTNm@koDe{)37<?@~YU=+t%LRUhw$T zT<`7c?(VMm{Oa!M?d$LFZ(!z@^VzZC;o%Np?YJ{LHa<Q+LD_qr&(2LxPtP#UzISHl z=I7@ZICsnW?%MM5@`~Wqac6gJeSLjH^67cLySKf)y`%W`y|cTwzrTN=nOoj(&yJ6e zPfXU1KeuP+=jRs|d(ZdVyX))g8=JH5pWD0p`}+rnyH(`<_wD)l`Niec@#pvL{r&yJ c<J0r~_wW1r`^V?k_s{R&|NsA1Ru%?p0D8uoivR!s literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/panel/panel-default-framed-corners.gif b/docs/extjs/resources/themes/images/default/panel/panel-default-framed-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..fac8dcae0b2df2039d812cd11548bfde36f884b0 GIT binary patch literal 1639 zcmZ?wbhEHbWMPnC`2L?^&c0{&UVPhe;oXcqFaG`ecj?}jOOHNXdGP7dgAWT1yqLA; z*@As9u08s4<<X}_2VPvc_hrkuH`~s<+j8#RwMU=+kAl$<7~&zI_>+Z^fkA{phXDvc zd7^zZM-1^O9d$lMA;96nz|J8fuwcQ#W)5K~8H)xcRt^RYl>`9>rlSlDJWL%A3>=zS nM7ZQ8EHF$y$id6yWg~E4A<JY5ZYcqQ0}aev3@jEr91PX~eGB}y literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/panel/panel-default-framed-sides.gif b/docs/extjs/resources/themes/images/default/panel/panel-default-framed-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..5bb75e22067286531f548074c27ec029d17b36c0 GIT binary patch literal 1727 zcmZ?wbhEHb<X~9C@clo-j6E;zz4-Qj6pV(zhztS6pDc_F3``6<3_t+N6YZlpVnil{ zQBOldfMX5=Ba4KGK!ZaQGp~|Qg}}l?t^BfPIu;Wj9%2yGj60JdnB>|cZ`pK5Vw1|r z$#Q{SAuA1+o}Q{7eQ1v6<}~+N=DB@6GdDl?n`2+vC6hHNJz%~|q>?U|$;!axzB9R| z?h1K%adp7*sIyUDHAC0L?`*m&wN2;d=D3S)p{q^T-rkyj`_NqN?Rnw5%HQ_&&ffk$ UZcqK!F4>%E`3d_On3x!>0UPc`5C8xG literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/progress/progress-default-bg.gif b/docs/extjs/resources/themes/images/default/progress/progress-default-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..a19c88cb1b39e521b2c8261d331698204565ea13 GIT binary patch literal 1837 zcmZ?wbhEHb<YzEs{{EjKZrZJc8MoG*db8@-n<YnHEjaLM)}9yBcD<Oe?OD&3XB``! zWX-!*u;5<af_oWr?xfASlQQGZ|4}d+0>dQ)6o0ZXGB5}-=r8~QC{MJH=7`}Ex1;_b zCj>bDGq7^Vcx-sk(99vMrE*}y!o%&XN?vn3E;bzPmN1sPabn|QcNPWbE}5ANmYkfd zA-W>w<R;bT=?2NCavU}<J3E`Z=+&K*o0p%T!{5Xu>m|~3ak0l_wun<(Rt7T!EcTk~ zwRP3i)e)Ps?w;DZ`uh5W!(Fo8+t%FNoN;+o?CEW5Z*MPnd}^-u_H}o6SA2eT_w@Gl z_xCq2bIbYc*zoXhhp=|snH?J+AD^J?J<n(7rl+T87-!!*vvc$F^9!82<$QN-d3kw7 z@anj;ySBc*z9ISaJm1~h-rn9({QBP6-P_;aKhVrA@3&{i$HyloYsa74v-9)w3yZzy l`|aKJ_4SR-+4s-w-TnRjgTvii^8Wkw{QUgFmYs#c8USIqc+>y@ literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/shared/blue-loading.gif b/docs/extjs/resources/themes/images/default/shared/blue-loading.gif new file mode 100755 index 0000000000000000000000000000000000000000..3bbf639efae54ae59e83067121a5283ca34fc319 GIT binary patch literal 3236 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 literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/shared/calendar.gif b/docs/extjs/resources/themes/images/default/shared/calendar.gif new file mode 100755 index 0000000000000000000000000000000000000000..133cf232b243baf857367233e750477675f3190f GIT binary patch literal 979 zcmZ?wbhEHb6krfw_|Cv!=$UBjnPB3PXyTD<>X~HXm1O3TVD6D*;+bL!L|&=p9%&Yy z$rhfe21!Q^Q_foy-7_zKYFYTes_3C(>0^ho$8NPxd}^OC{AUPgcoyFJG`!<^QvZ{z zDbMnzKTnzZDQo7}(m5|{=DsSP^R0H#i}HnEYgc@4VPKfFc<YpfTP82sId$2tnXC5A zTX(c|*~_-2FFIGh>R$P>d-aR%Rj;~Nz3y50x_9NPmes$yHvFEn<<ImTzi03Lvv||V z#aqrV-+g=a&I@bz-=2T)-?oDnHy^&U`^4P^hyN}<{QvN|`=>75zjyE6rRxuF+<AEa z$(#TG|1*q&(Gb800mYvzj0_AC3_2hgP@Z7m*uY@OA>*-OfrGSB)`bNRn_N2hWXw`F z1SB%CNxF5h++3*4-Y2c*)x+@dA!D0_Ny3>5#Y4>Oyy6-T9SR2-+2lNnp5<Ip;q;&H zBao1>aC62aVf7*|&4xzT^Yd-|U2>IL4xC*cvD9p$mdk;F#a0uwaxaLi_TL;LoDk6{ z_LiSPBA|iw_G1P%(cIo|3A36`3aNVZ2}m*>X-_;{7Al|+pwP(3%EG4-A<%HJk&(@q JpNE6N8UT=&&-wrW literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/shared/glass-bg.gif b/docs/extjs/resources/themes/images/default/shared/glass-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..26fbbae3bc6d2510832a5ed709f0cb029c2c1170 GIT binary patch literal 873 zcmZ?wbhEHbWMpt*XlGzJe&g*4AiDYX<juFIZoWNz>)q+w@6G_xop)#NygPUI-MM=} z^!_{$-T!dm{)dbAKU@Mb9(=g)@WaK2A1*!oaQVT<%a1-@ehfsPt~~sB_0h*Gk3U^| z^yxZ~`{dJA5c+)e>E~-e^z6&^=U;C;`E>K?=UY!d-+uP_&hsxfUVOdx;_KT_KNv>A zXb8|f1QdU=0PXzGpaZfQlqVQC+!&%a1WaT)$|)>om2)9Mk%@&tK#^^Rgu{V`ZWgW# wlLCgu<17lIIuQpJG%~aEtN6@tSlD!$TihV!!H0*;9Rf;j6Erp|DKJ<A0Kq<$Q2+n{ literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/shared/hd-sprite.gif b/docs/extjs/resources/themes/images/default/shared/hd-sprite.gif new file mode 100755 index 0000000000000000000000000000000000000000..42da1ea1aa4322c3995eebfbbea9a6e8c3eb77ea GIT binary patch literal 1099 zcmZ?wbhEHbWM-&lXlGy$)C?EYiV)I@6w;0o)`=F@i4oC_714_m)r%L^PY^Rm6f;Z` zH%t~cN|7*5l`u||G)b2<&5$z9lrqbbGS8Ma&ylvsm9fl|vCNmXDv-4<l(R09vniIh zEs?h?Rj?~lurF71s8DpMRC26Ra;jE#s!?{X^(xu(_y2!}Q7{?;104d2KUtU=7&I7k zKn?-r2?mb;4B8<Mg-#1Ng+;xltZ-;@X%$q~>JSK2bm`zya0vPFVPO+Hzo=EoiUW<# zt-R7&85aT+o!hu13_^AkENo)sW?~Im5RiDNg-b{!q(fjK6AOo^oXv^{2OL}3c(n`? z0um24adC-+cuZKp#Ka=XC$l2qfI}-2tCoO5K;nT0E+&=`4uJ(sK-Uz9X;c_IJk-Xo z?6;=E@bR%edFMWzN~5Qzrs*f2TT>bQ{@gtKW<K32lb4s4`7iccTV?wC+Pe6|eY(|V zZ*OhOe|&CjwfXbT+w8s?Iu|Ff91#?Djo_Im$a0)t-nQdSz$E5VyxOKa&IkxIpXD|$ ze0Aq#u~Pu2i?WPH>w+(i!R!IjKB)<%j$y1Z!Zof6-y9;DGq~5NJ}7gDVJu-S5NBXy HWUvMRItY+| literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/shared/icon-error.gif b/docs/extjs/resources/themes/images/default/shared/icon-error.gif new file mode 100755 index 0000000000000000000000000000000000000000..397b655ab83e5362fdc7eb0d18cf361c6f86bd9d GIT binary patch literal 1669 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 PBfNl1GVhQS5C8x>^BLCH literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/shared/icon-info.gif b/docs/extjs/resources/themes/images/default/shared/icon-info.gif new file mode 100755 index 0000000000000000000000000000000000000000..58281c3067b309779f5cf949a7196170c8ca97b9 GIT binary patch literal 1586 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 literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/shared/icon-question.gif b/docs/extjs/resources/themes/images/default/shared/icon-question.gif new file mode 100755 index 0000000000000000000000000000000000000000..08abd82ae86c9457172c7a4fdbc527641cf28e48 GIT binary patch literal 1607 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 F06QAMRrde@ literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/shared/icon-warning.gif b/docs/extjs/resources/themes/images/default/shared/icon-warning.gif new file mode 100755 index 0000000000000000000000000000000000000000..27ff98b4f787f776e24227da0227bc781e3b11e8 GIT binary patch literal 1483 zcmXAoYc$k(9LB%H%(yfgGuR9b<4z3ocd29*O43CNd(`UWmQ=H)a>`a4DYpzOx}c(x zSlvdcWJ?+unZaR-H7>b~v1S^TyJ_?Pt<HYV^Wu5;ym>x;{_9t|N0<T=X5oKG0Ga?a z00RIz07F-s3}6o62!Lq=+W=Nu(y2B}EN$pa03Qw5L?`%~Xl`Wat_9c+aEh#Rc#+O= z3hn4({Ub|AQ6`HHQI{MtpdU11?5EOB>Ki69nENoJ2v3`>&g|W8&busa_So7*+dD)$ zvLc<>kt@t%F{f~h9qzG`vt^ZG;7|7JumJBhJ9Y+8Lf4suZE^fH#5_9C`L|tWUS6U8 z{=uOE0fBzowgqiH9`W<<k-KR6Nydy+EBh2HR+^)8nv+|Ghj)6QS8h;n+P+_EqV^QU z?k_uZxa?TMgT&;A+>?y6`^?T9Sbi>kIro^$r3_Y4hFwk)R(#Q}G+VFY!jG?tX{A@K zA7Ak-yF;xiAyhqNys9yLRL-ovzEyCSA}UpDxeZO_<kkn|`f9b#3h1~GZ7-mk2Ol26 zhbkDTf}v`V)xdBq2pSB8LW_|)_@@D6B2d)9Xd@^ZNuTRLDFB5CltL5Pdl=~j#e0JC zosPT*6kU{2vA(j+X#6#dH^6iwj5opbTbOPIl@L_T@J$5stuQHui4K@;Q=8}pRVM+7 z;aj@~-T`<AX|4ypegGs{2od!G>LcSl+NfU}@28A3*bVbNWrHA>f<g`xQW#f&Y7qXF z!JLeU1_2)=BN?C(5|V16K?*L@`Z}tPMgb{EXbf<L7Lw|sQ7V$_qcJK{>Z4D_larvD z0o4={9|wFI(DV=ZJRp1#nxdfzI{Lyuvvho356v%?4p|^%j&Mta>}F<GBZSFYV?VZs z%Rih}Dt3GviB?DtejMGS7&whkY-;+$%*?yV$&WI!c-h&NIe$FQ&3$(1QuXEh=LH2% z3JYuQlszrI{qnDx=GsSSRFWz0JumOemi6!y@|*Si_Qu9eVN=Jucimlo_emuE3-ojk z^!5%6^h>3~{K0|F!GZpTzVLoC6_EgdgTr?dzB>V$ILvD;-4MrIlR(m27G@h~>JlYZ zVAt|_ro3<gw}a|eS@P;YIoDS-D!uBL`YrJ0PQh3{wu(7)J-EE(VnximqKMwg=oo%b z**VOEoRwe6HXKncO>YUVh;qD&xzwC(+MYO@wD@Y_NS8}VxR3300jn*@X<;}{z{$rL zTQ1Ygt3r~JNZK6NqxROCFAF5#=}AsXB5Gp!SiKu3HLoB=^T~;XI#AbK!S$~9<!0u* zVmu>M1UFk{5%nyiu}%*CZiIbNf<7_U*)eK2jmJEb7FxOYX=;RObGwm=_w(}-X91Z& zqYL6B`%{}cDrkMSM*JWx2`jXogS!VNpUr25HWVJ_hwMpzlk(}y+|3Y<!9AIqLo7BT z47nHcoHHcU8f3d_n&eF#*_6mLRQDyt>Z)%_6gfm?u*PI1fu~NtNN%<%o?1bnQ|HcP z+A{@eE%wEmbNMT^8Mo3bU$&{4r}IL6UfVqFo%2t*Tz4deYD9aVZE~6`7TH{nSG#4; z<6vfan`>!V4h5%@)!a#Ahc&Ef--@I2iU;@wEYEC-zjIsI(0PM(`f?qQqf=C&<CYll zZPs3jZk>8Tb?#p4A}<S}RaQB)dL?#MraRt<HvhBesVjI9w1?Tvw{s^ZL>3P=ZzHb8 zU%2?0<TvLwS>08r{GmdfTSw5X-f*JnevxfSlSM{Cc=no(Hy6^Zi{dugQHUH~t06Bw zQt4307HjGF&8-z0AF;fZZq8-%?^|4nr#0y83LDz+toN8`gZZg2p9Yd5@bP-%L)8(V zUmmP8OS8yf(llyk`BV+l3sY@pR^S)K>*+DB$}jc0e)m$1w?{Mi5Ahq5K8vj4mE(=f iL}jwpve+-)v>A%!R(IJo>4b>g=<wKGo@1m7;PD^3leLoo literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/shared/large-loading.gif b/docs/extjs/resources/themes/images/default/shared/large-loading.gif new file mode 100755 index 0000000000000000000000000000000000000000..b36b555b4ff04f841bb2101514d8f95bcf7358f4 GIT binary patch literal 3236 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 literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/shared/left-btn.gif b/docs/extjs/resources/themes/images/default/shared/left-btn.gif new file mode 100755 index 0000000000000000000000000000000000000000..a0ddd9ee8203b9fc45eb5ee78ae6bcb7e57aed7b GIT binary patch literal 870 zcmZ?wbhEHb<Y(Y#_|Cu}WsoatQLE_Gs_r>SKV^zd-BO3vC604f{{R1<VHAvpz;F)% z9gqh>d4Yk$n}L-<!efJiBO@aVPsE804;fk*WxQe}6c#pgOBlzkIk8c>sZYVSj)zmI o(Q}fL|Dq=uMNdw3X~iE>$=vYlK$lteqcf2P3=A_Zn3))?0bn93t^fc4 literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/shared/loading-balls.gif b/docs/extjs/resources/themes/images/default/shared/loading-balls.gif new file mode 100755 index 0000000000000000000000000000000000000000..9ce214beb5cd4db00666778d371223c605874519 GIT binary patch literal 2118 zcmbW22~ZPf7=}Y29Kir0FmlXvp;AJNF@T|n3=l~OQNReX(lJsJSV$lTCK1p9Cy_(M zQm|OSsz3m3sz4Eyf*^8<#%d)Dpydoi0>~kDK!ll=ZaA%FI-`5dzq{YQ`#%5s?JSAx z<GPD(57UFCz|>1lbx&?h&&9gFi*>!1pzUs7{@wn9`hLm1fx>(Jl7@kz#sNtqbnGu~ zQe16TTxnMP)H3+<{h@2EL)RY+mC2N450&LIW#w<fHy;n*exkbdM0NXj)vr%g)omj+ zZ6kN&&^FrKG2GHI+}fq;?(XjG?Hw2x7#tiN8X8h6mBYisDwS$vWMp)7bZl&Fe0+Rj zVq$V~a%yVo)vH(2)6+9EGqba^Z{EC_o12@TpI=y5SX^8biA0cj>qY$lA~nbxPa!&C zu$mg`OY>TK<}eSK12l%IF?DpG!V-0@d@BkYlXMMpg0lep88I%nH28pK5h2~o?kkh6 z2b2xQChiFj0eW(#g;VTwwMJ5_?EDvp>#4GK+r2+JC89@-_OzrTH4{qP8k0!hnWK}9 zap_c+yqJ92gY!};(l)Zfx*I7zMHm#j&@PQG;7HGJgfynxUXLv`)H1{Pg;t0}hNdo2 zEzCw6`;fZ{f2sO<=B5-4@O@rsqC&BzvE4Uy6nRmKzwG>WQa)|oDe}n~loonAD-5{> z?UL_)*}^8e6BlB4$-lNLQ?wCd`#X$Xp*I-B46&`*HeU)u(UfY42oW;RS(7rB(NZ(l zVXa9y3Fg@)<UAV=k|s&g$+U8&yrr~RC#RuIwcjenwn!;gJ(Dn#<_D#jCax#DV~#dG z&_DsMq49tss>|wdEu-^Mr$bM<2lcshb1_0+qU%7*YY5d4R}04b5q{6gDK#lN_Yz+3 zA)Yn+Y!&vbrDwhDx#Nq+`TkLUbU3j!TN`d7b-gn)W>MmQ_}fG`$z)HJCVV5zccWav z)VK6731;9=Y1sl!Lg@h;g8A<FUJ<^TgvzoZFQD;_&8IgR`{WUJRlbmA;Sl932_{TT z%sWd@8CVn8Qmhwxe}UI!<BXS3f(1~5(i1pRSDDUEkwP>mhLs23E}Fg8bsA}jW84be zJj3a&!EX+(#)=!^aPHuvE0%9D^z0oWQl`8qV(5Oxp*_o)rkOg&mhP%-u(0<l%wsyu zjEZeHX`!=T-(<BH60-w*Yh5Ncj8gvJDAkNx<%12z`o`PP8s{X$^wlUWpak77d|x74 z$y96KIn2KqM=1qfYYm+IC&8kFgtYSDRJ+nmqYcVvzeMz{HE`Q8heMxy&hAK)pCY!Y z6Z~P{v+~sjhSBOz*w@EPiirBzII}NLCInV0bB$~Orb0vjTXU_iV#SOhnfwYd+vP}; zmk4fUU*vMRqH3~RL*oOI+$y&wq?#d?K2yE4_bJKeZH}x(s=L;(OMP18nPf0|fw~rH zDALLkq8wC4b(I~tp=x{7IUZcG8mV}hGG(2zE-}TXB8Co6LTI6vD9`3Xed=NUhhuna zPUK3YMnQRAj;~9Y?GjRM`O!N<JxvW{f}d|~l{(44GkwT@M1V{n22jb=uTe;EK1dgW z;Q)^haCqUY2o^ME97iGd@L6;&3aMUKOBlxiJUfgDa*hN3EN*xlj~^|tLm^3IAHbW( z6$tsq!h|dy7YG7{0EN$s00jc*l+H#WnL=TV+m0P^ad8;V>XS@f3?_`nfh@f|7!XJ# zk%OqjKq3JM^2G-d4?(;7)p&sb<S^Kfr#P0732gK#x23xGeF0={7zU!?#RE7j78-z{ zkjHfZ_6MMlepnLVh=(qE;{)&nJXH3-4%N4*OqKwE+;Tv!5VFE%16-aEpvT03bUwi1 z0ud}W2o<c%<&sxAzy~8)0wKtU+{c1^^;}@oKLZHDdw+nC;fTS)5ikQBOdF>DCoC_x zFgMyk0aQ)fOAm{tLDLuoh6x2UK0R(bi$jkD1vEB~9?s%M(#YylM@%FuVp#;fssZ~@ e5vO$#&5sswUKi2&Xpx=kB8ZO`!7YivcK-uGv{KRl literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/shared/right-btn.gif b/docs/extjs/resources/themes/images/default/shared/right-btn.gif new file mode 100755 index 0000000000000000000000000000000000000000..dee63e2113fcca680699455e8a56ee3eecc81c40 GIT binary patch literal 871 zcmZ?wbhEHb<Y(Y#_|Cu}WsoatQLE_Gs_r>SKV^zd-BO3vC604f{{R1<VHAvpz;F)% z9gqh>d4Yk$hk=zr!efJiBO@aVPsE804;fk*WxQe}6c#pgOBlzkIk8cxsZYUC>4${T q6OT!%mh)U@eo8sjryPH%CUe8H16^j>kIqCIFfh!NVPs)pum%9ETq}wI literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/shared/shadow-c.png b/docs/extjs/resources/themes/images/default/shared/shadow-c.png new file mode 100755 index 0000000000000000000000000000000000000000..d435f80aeaf38aa37a2afbea4363d7cf8706205b GIT binary patch literal 118 zcmeAS@N?(olHy`uVBq!ia0vp^tRT$61|)m))t&+=$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1G5}q!OAr-fhQW6q2Bsehp@I)}QHZd@=F-Y_=I0esbe+N{< N;OXk;vd$@?2>@aO9`*nL literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/shared/shadow-lr.png b/docs/extjs/resources/themes/images/default/shared/shadow-lr.png new file mode 100755 index 0000000000000000000000000000000000000000..bb88b6f2be887650f28b16726e470c09459b9c86 GIT binary patch literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^JV4CG!3HG1zpHNqQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>JiZnf4978H@C8Z=JJZMPDQ+U>TNx_ce55uGN4u2%Q{wE|U g2=cJ=GBC0+@aVFNEX<$33#f^~)78&qol`;+0F-4Xf&c&j literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/shared/shadow.png b/docs/extjs/resources/themes/images/default/shared/shadow.png new file mode 100755 index 0000000000000000000000000000000000000000..75c0eba3e101e3f32cef8bde7bae7383d849e935 GIT binary patch literal 311 zcmeAS@N?(olHy`uVBq!ia0vp^Y(Q+l0V0jwbN>KRk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5XZhE>nhE&`-GTD~D$v~hjI>0gT@Uw(Rj}ARr(#+ZY|Nr|R ztz576{))TQsGN9FjsN;R=N;cX_7>}LNxZmoT3OARN%FUXp-|AVh0k3k3m;=qQcO<t z`YEW%DrBq}yiq*wP^1Ny_!`AB5sx`7tGjqzT{|n<Be?l>Ogc@EIAyfV(r;i((zEeg z`}y44S?ng!NoE&wcK=*_2F$s1%jHel(|yj_4>tF9g$FFYCZ&0@DQ;=K_|9xe0dH@S zX*Z%4Z8@@VyGFIRewDnzd#yOua)FIqa}4Vg?=kT(Xhpeh(=cjy2J|F@r>mdKI;Vst E09T24*8l(j literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/shared/warning.gif b/docs/extjs/resources/themes/images/default/shared/warning.gif new file mode 100755 index 0000000000000000000000000000000000000000..806d4bc09385a98ef1ac19d25e30a21310964e7e GIT binary patch literal 960 zcmZ?wbhEHb6krfwXlDR{f&hVn2muENhm@owhyM-@5dsqm1SVuCOej#8P@%A(LSO-q zY!KMcp>SY^z=a6{7Zxa7SYhyB1;c|43=ehyk-&!?1`l=wJUAfm;Do@30|Fm_<OP8b zH-MzVhZ_nXE*N}xpzz@Z5E(o;5b)uJ!-o$6A3h{}_)yT=($LyJyLal`2{YzRnZ01f zyoIyouUxQd$I=bE)^6RsW!tuGJGX7$yKURvoqP9f-*;r!<#U@poM`y)1BfPk__5%? zfdj`+A3b~J{P`>AFI_r#;p+LTS5IEMaRKbDQDQU%2#0{;PZnkd237_gkWx^dVBna` zz|A4!v0=eMCPx*A6NM8NOc1gSve|KQ1H(iiYYu@O7ZQ#gR8*}I_~Dqq(8*@R^@`(W z@)HIIWfz?e!wVeVa#HbKFBUvx;Axbo`SPIg5jz8ey-mRe1I2~|N`gTPEE1a-8hE@l zIU)=NI+%skoc{dSsL0&PpvCnl!Qs*I)AH$&GFuihv|L@Lt98xe!$KzpaZ%Pw4hauj N9~|!BW@BNn1^{&szCZu~ literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/sizer/e-handle-dark.gif b/docs/extjs/resources/themes/images/default/sizer/e-handle-dark.gif new file mode 100755 index 0000000000000000000000000000000000000000..b5486c1a95bcc0f39a88c15c10c04ef7c3c561dd GIT binary patch literal 1062 zcmZ?wbhEHb<YKtM-p&95p^ZEL|NjqWjuN9GFtS2G@h1y2$j3S$0+c5hIQ}y*a>#gW zSa7hJLs%>3#D;~3+Xa-p=6GyebhKN-IP1=djf;=>D>!$_cy3y9a<WG7s+g0TmY$w& zkbG*6=jLT+XIm7%x^r^#^7Hc@nz>}Xwye0g*kiI*?5Qm)FE0;R>^0YG>#D1(BQ|H< zJ+*c9_4NsdyJWq$t+}~5<MOK5)7#eG-d^zd)LifF>+bHZ`26bb>Fw+9?{8q{mh;)M z;o;#9VePmxJJK5%IOMq<G!l%C9G}P>VHRPj^sIT3W`5a^n+Y$P=Sr`RJG*P^>+2hm zPtWt+z3uJo9mTKjo!!0t{rv;Y-12^Vc6@w%VzPGpxjj2SKfkcpd%oY^U0+|{*qnX; T+}_>a-#<9q&HP<TfWaC7Jd~Un literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/sizer/e-handle.gif b/docs/extjs/resources/themes/images/default/sizer/e-handle.gif new file mode 100755 index 0000000000000000000000000000000000000000..00ba83500851702fd0afca2129c5b53004ffd1e3 GIT binary patch literal 1586 zcmZ?wbhEHb<YKtM-p;^Kw&v5}TR%_T`*q>*pKCAv-hK1$|Ns9CqhK@yMn(uI{$v4q z^gn|R$h)9C!NBpKfm=XAL80MbGZUwri^YZqhZs0z^?H5?BpvP&kx!db5t!`W$7S2b zqB-%Q$7EIBJeSUo%H9(-b?1e=ob=3RreXN4Gm*mSr)OK$9{O`qIOF^RkA5xFQ(IO9 zFA8Y)Qk9(g>dN%6%}IB6ZPp537_~c2R9fuK^(DT0C)w`)@-kv`_TxiyyRYTm+?Dlm z+u82#x%YQh|7ByF6IPITsO+X(*qn%W@yBY|oz3n<yiYnl$uNFf%+HO_&ds!RzxO86 z<mtr)p6z;PtF~re-4J}*&G+|~+#_2H@6TJa+x-3g`NhoUZ>@jiJwDpWpD!D2@#*RM zbouaqd#t{`KC@K){5zTIFYoRwZ~uS)Uu;d~r?Y35yRVo1RrUSt+WvO_e>SyWKknT> zJ%9fHy1zfqK96ts%NTLLo=K|Xej|%gL_(8*oyNju5wi@%W(mC&iq(=uJ08}`wQ)S^ zU@r4m)TA`+$HFenMHNXcqO(ps>K2aMv8dblS;yl(gIhO}`i(wCBu{X-7xARuS!$-r zBtxy6DwFLl{a7+3@KuG%R2RL@rISOsESFA=YWlf!dTg9#+RVgBGoQ{#TXpj3tc*=F z(`J{P%UnLE;@C>{IW_xUs!yq9`t^KTlbF|wh3RZvD`vN;S*=*yYqTq4ZlxC2%O&OS zey&(Dz3kM><x{exGFMD%nw7b7N#3kiE0(Xi^{OA37$yX-VcU}8u(s}~l{UkUq7rR4 zQN<<NZd-2M(snwy%4Ch((W)=2S5I}))>?LPQ<U!3%T>FywyoHAYVDT0ajVyEf83S5 zYUk}~v)}G~z3g<}j<=J3>+SdwC9S{f)2`L|`~Ez7{eCaQVeNvw_itHmILNZPy5Jy> z_M8uUINa|T91(v1`~4w4?>U7>|FZqra8xea=i@Pz{v4wd67%mAp3<n_v+1<>VHu<2 zhTV5Ioz;IFV|><ldX4dUo##AT&N#k*v-yI%^x93A?A7mnzT|JtTY522+1B)8#OoN- z%VFMcORpys>wdeI5}aFh%{jYv+pP@iy=AuwcHjMWHRrml`Q7q*+i$mvZu8$Qzn3`O RcKf}i-@V(HGcqz*0{{svxFG-l literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/sizer/ne-handle-dark.gif b/docs/extjs/resources/themes/images/default/sizer/ne-handle-dark.gif new file mode 100755 index 0000000000000000000000000000000000000000..04e5ecf7d3837aec9510f5467282c10f158a5563 GIT binary patch literal 839 zcmZ?wbhEHb<YM4rXlDR{(8itr|NjRwM~Tr87+E2p_>+Yh<YOHW0m>5$94ZWq95Nmo l794Em;N}uwNKib;z{ui|Vj-Z!(9Iz$HK#)0@qq>gYXJ2^5-b1! literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/sizer/ne-handle.gif b/docs/extjs/resources/themes/images/default/sizer/ne-handle.gif new file mode 100755 index 0000000000000000000000000000000000000000..09405c7ac7b321b3eb9170b1584167448819a071 GIT binary patch literal 854 zcmZ?wbhEHb<YM4rXlGz3Tl4Agt)D0F{<`q^&*i6ouf6zt<K@4bum0V6{qOFZfB*mg zXBY*eAuxPHK=CIF&~yJ8bU<DN<p~B3V+Ljp8IKJM4mNXe@&zn#U~q0?V9@AT!JyQ@ fD99>c63}qqP#3eHjE2L+1SS?XB|ZfS0S0RTeD^Ni literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/sizer/nw-handle-dark.gif b/docs/extjs/resources/themes/images/default/sizer/nw-handle-dark.gif new file mode 100755 index 0000000000000000000000000000000000000000..6e49d6967c08db2c02a3aeb9c1f3cacb9c8665f6 GIT binary patch literal 839 zcmZ?wbhEHb<YM4rXlDR{(8itr|NjRwM~Tr87+E2p_>+Yh<YOHW0m>5$94ZWq95Nmo l794Em5abeINJw;KWMp#S2{2G%=w_Cco6{kn+|a;a4FKuB5a0j+ literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/sizer/nw-handle.gif b/docs/extjs/resources/themes/images/default/sizer/nw-handle.gif new file mode 100755 index 0000000000000000000000000000000000000000..2fcea8a9285dc74626ba9374055b25ab77e53a08 GIT binary patch literal 853 zcmZ?wbhEHb<YM4rXlGz3Tl4Agt)D0F{<`q^&*i6ouf6zt<K@4bum0V6{qOFZfB*mg zXBY*eAuxPHK=CIF&~yJ8bU<DN<p~B3BL-#;8IKJM4mNWLY6U1HJY;AB3U_ccEMVwl dR&fe3XmDU;7El$lXlO`qV_*|d;oxAf1^`atE@%J% literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/sizer/s-handle-dark.gif b/docs/extjs/resources/themes/images/default/sizer/s-handle-dark.gif new file mode 100755 index 0000000000000000000000000000000000000000..4eb5f0fccb6d0e43905f732d10cd41533745c092 GIT binary patch literal 1060 zcmZ?wbhEHbyui-I(9Qq?p^ZEL|NjqWjuN9GFtS2G@h1y2$j3S$0+c5hIQ}y*a>#gW zSa7hJLs%>3#D;~3+Xa-p=6GyebhKN-IP1=djf;=>D>!$_cy3y9a<WG7s+g0TmY$w& zkbG*6=jLT+XIm7%x^r^#^7Hc@nz>}Xwye0g*kiI*?5UEB1_q}2ZmnDnS(jHwY|grS zYU}Fj>k|%l$$D>Fb8~aX<yEn#Kd)?9#dvR5>+fl6@9wVn{Oa!M?d$LFZ(!z@^VzW> zaVFC%HL)EM4v!B{Q1+hZvvbqa(=&{-@15DX`T6+;&fRjpySBW%ydrpY+}T}QUtiyl ze0rYm?rm>x?<jtK@9ggF@9!UI=9c%{v*Y9A6O*;$&+Xay`T2##-t+zT?)v)r#^&t% R=l1UY{{F#qHbxc(YXFYFo9h4o literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/sizer/s-handle.gif b/docs/extjs/resources/themes/images/default/sizer/s-handle.gif new file mode 100755 index 0000000000000000000000000000000000000000..bf069c243a3f5c59c4019e832bc571371987f030 GIT binary patch literal 1318 zcmZ?wbhEHbyui-I(9Xb6w&v5}TR%_T`*q>*pKCAv-hK1$|Ns9CqhK@yMn(uI{$v4q z^gn|R$h)9C!NBpKfty3dW5a@j%^bp7F()=GJlrmz>@~+@<D#S862@6~PHbF!ykEh& zOU854l9Q7)f>*_y+_d!cbc5tmb38XMJ3HH=_|=`0o0p%T&eFss>$PRY#l;?zwPH_g zS$TPRz+$htURzgPT^+GG>+Y$otFNz5INT-cy=~3S%^8<h#cGQ%G%Uz_xKCAJ`r5m@ zD?Y!vdwTo&`}-T1x#fIzY)D+kETkQGX2-_I$0sOz&-2;2>FMbi#@YAI?A-kP`~v50 zIp1AdUS3`iygKgeuC1@HZ%95pZ|#k>jf~q0nRm>cz3u(|1I^s>etUL&e0*ZEcKo?L zJ3n7!TI4<7Z||<JuWxM5zJG4-?(gp(9Pa)v@4s))&(AL|uZ};zZ}0E#A0D5c@4tWF z-`_tzzrJsOx1sUHKgJ*P85lpMKWOAoTk)WY$Lz&}W&t;ihb<yu84s%%Q&v1|lPP=g zuw9`|<57pow2Vic8p~EZ>eAWv;!(H3F^$JPCf70^_gXw#@wm_C+l$Bj4s4oFCb)=Y zKAGsDw(`j&AG4QFCI`4_KAjR0micsQMB2)y(_+eAKAoP>rul3}%CyX9Gc%U0d^Rg* z+skLO3yx_%pHp%z^ZDG0XDgr2tNHfw`TPbptrrVg#Ijy2>`+_vVo{ITs~3wWxM{sy zG9@hQ<<c2xt6nafQ}*iR@&#>LuU0IXmi21oie;-_ty;6~)vMJTjxl$oIxtuR03tF% AKmY&$ literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/sizer/se-handle-dark.gif b/docs/extjs/resources/themes/images/default/sizer/se-handle-dark.gif new file mode 100755 index 0000000000000000000000000000000000000000..c4c1087868afab5b5bfd329f52d9907eb1c0061a GIT binary patch literal 838 zcmZ?wbhEHb<YM4rXlDR{(8itr|NjRwM~Tr87+E2p_>+YZ<YOHW0m>5$9Lfxg96SOJ k3mltSSY>Q9925^Vv52er?AV~l(9La}b>~E3vIB!P0N;ZWjQ{`u literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/sizer/se-handle.gif b/docs/extjs/resources/themes/images/default/sizer/se-handle.gif new file mode 100755 index 0000000000000000000000000000000000000000..972055e7b297a702ab9aa2d799d133b94ac92315 GIT binary patch literal 853 zcmZ?wbhEHb<YM4rXlGz3Tl4Agt)D0F{<`q^&*i6ouf6zt<K@4bum0V6{qOFZfB*mg zXBY*eAuxPHK=CIF&~yJ8bU<DN<p~B3BL-mw0|tfz4GbL23Kjti7Bsam@`xxHI2=6O f!pbfp!f<h+bBCxX#|Dm#OHNMK2%g5n!C(ylO93$s literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/sizer/square.gif b/docs/extjs/resources/themes/images/default/sizer/square.gif new file mode 100755 index 0000000000000000000000000000000000000000..14ce6f7251071ecadda2c968ebdcc5047018de50 GIT binary patch literal 864 zcmZ?wbhEHb<YwSzXlGzZoqYb-ou4P~{XBjD*SUwkE<XNs<>{~M&wt%~@%zrJ-wdN* zGz5lq2q^w!0s8MhgAT}-pgh6AVaveCA>$E{(A3N!$mMciL!xsdyOP%wjSCG&yTw_> nZk(97*nvsGxlP1k!4l8OOsp$nb_OLhOgBgro5QJ~z+epkjJq?f literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/sizer/sw-handle-dark.gif b/docs/extjs/resources/themes/images/default/sizer/sw-handle-dark.gif new file mode 100755 index 0000000000000000000000000000000000000000..77224b0c06f1666685286c5322fb02b4cd2204bc GIT binary patch literal 839 zcmZ?wbhEHb<YM4rXlDR{(8itr|NjRwM~Tr87+E2p_>+Yh<YOHW0m>5$94ZWq93m15 l2M#ndammSOI2<_C%q421Gvk7Sb33nm)}0d@l^YrutN|0L6o3E# literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/sizer/sw-handle.gif b/docs/extjs/resources/themes/images/default/sizer/sw-handle.gif new file mode 100755 index 0000000000000000000000000000000000000000..3ca0ed96df2059fe283c1d65fa1032a777e1ff97 GIT binary patch literal 855 zcmZ?wbhEHb<YM4rXlGz3Tl4Agt)D0F{<`q^&*i6ouf6zt<K@4bum0V6{qOFZfB*mg zXBY*eAuxPHK=CIF&~yJ8bU<DN<p~B369#4u9s?kknL~(&XTgDlMrIB%tpI}t2S#RY fRtX&rheZe5WZC^h3<?h%nyeALDn?R4fx#L8IQK4b literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/slider/slider-bg.gif b/docs/extjs/resources/themes/images/default/slider/slider-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..fbf3ba83406a928e4b80b207e53b7bd04a577980 GIT binary patch literal 145 zcmZ?wbh9u|WM^<<*v!DNbMuA+dv}~XeiVYvU%Pef;+dP*E<Sm9p8*6a!6X9%H;@Kl z#h)yU3=EtMIv{b784N6T1}8mN@3nZ%vWwkSL(C&{-g6DE9POL}o%1EO-0})6SqTg5 juJ}zY*qC!-NfGC1Ng-RtQvwdM6^k1_o_Ld{#9$2oOtUkh literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/slider/slider-bg.png b/docs/extjs/resources/themes/images/default/slider/slider-bg.png new file mode 100755 index 0000000000000000000000000000000000000000..b3eaf52b7f28a4d29231f82a5916d1ccd615a55d GIT binary patch literal 1494 zcmeAS@N?(olHy`uVBq!ia0vp^>_F_q!3HE}A3wtbq*&4&eH|GXHuiJ>Nn~YUV3x~t zb`J1#c2)=|%1_J8No8QDU~CP!pM5z%<ln8-xf>pKTcrzf+GR}4O9?J<p0h1GeAn5i zS7zH4J!UV<jhS^!<!#*t_M6@LR!7S}vfKS+=egOOUp<NUm`LJ}H62Pm-;_4bn{DE& z9?ZP+`|kTc-&v|Ze-gLgXJOQ35q*A<&|v?ghyEOSB69x|W1Nh$_MZ&j?lv(mHFpR8 z%bP0SZ~n|DcPyvmUH<*m|B|oHn#v>iK}KQU6w@P04<i?3##|{8esHbx{ai!SLuY-8 zBbKvp%BNf8CpSLq=~bSVW@73vi}MisQ70?!9S#;VG9P^Ay>YHl<cYf4%1L_NHmhBO z^q;1<ZsPg&LB6>8Q~ZV%Q(n$q`&^(mcb25z#hR{r@|Lv)J<k}f9<+~_*z34sZb5|E z<He?RPG?ot399XV{;ni*#@p0c(<3#7RAp55B!#Rq&dGen&D=Tb+2yxi0w!&kZ?fOS zIP&x3w*gaGUK<|$`pw(z%dWlGZ%>@e{@B!Rx#qQchktv&e=X{IS~=;%>n(D<SHDD0 zvI@I>`^nj5%7>4X2ih}xI5qXjq-Z>t=){vaEBVN(A3kD|N?uDYWtN0gZnC&$tucAp zTN(F?lkt2z;>5m2Z`$$g!S8u@Rj>E$5p6xXeesRJw_6)u?%E_gOS--^ap~f`hvqw< z&X&$y&CL<`uj}bXkGRxR{!M|`OU<552%i3@l>5BVly|CSLJ>T>)_jQjp_Rks-zt7+ z`u-~?&fQxpc)Fob$8Pn!;Iqfxs9y59^g3n7{;sc1$0UAEFm#TZyHCY;PM77UTLIka zY~@X_pFN7vzs^2y_nFv-zjku0)hkl&J0$+qwMOy7KI46M@!Rt|5|`iJcRA(tV#BD{ zyDv}NwP<72l>Xc5-)#F<2}^F;xNl=!7>D+jMafxSn@ju|m{oKArhjIg{9dqyyQX8E zZfF1Mr0@y;+FbcFdE%z?c&_)jskgzp|1I;j;A^qZGUJOaKWi1dl>U48wVrt>Tb$&9 zi^Y243ye#jaBirH(|Ij=Ti#~g_J)bpx0Bb}<|gjywhLQ*yF@Qqj&V2t>Z|k5uey5o z`ICC?ip77}Rw{E{JG3y~2$*v?3p^r=85sBufiR<}hF1dv17mS!NJL45ua8x7ey(0( zN`6wRUPW#JP<3jaZfGzAgH44Mke{1clBiITo0C^;Rbi_HR%QicgM{^!6u?SKvTc<j zd;=7m^NUgyO!Q3j43zA+6ciL}ic-?7f?V97+JQV<rHqo20xNy}^73-Ma$~*xqI7*j zOG`_A10#JSBVC{h-Qvo;lEez#ykcdDAuw}XQj3#|G7CyF^Yauy<|ZcPmzLNnDS<44 z1Bg3QlHv9glosWHZAnSiPt8fqP0cGQ);H8M)Q1}m)N7NHY*k#El$DxX0(LjtIIstt z64UjOgl+UORom!;T!iF8i1)#wK>you+33T=(vHhlRkj=$%I7^@978MwlmGnxZ_liE zpv9X>#cqpAWSD+z%jLy7L9^H__MTEYdAcoFC|_ZN&Hq2#%l)Rwzn}MbN{Wo)#wPP0 zZ4*_vHI{vUck}E2yQjq^CZ4OP_<!!dyj@L#z?91eCZsTWdU$yma3p!QRycRKIyf{u z{P|g&$3BA9podj`!`|w$q_aYcSMp25RU9tM@J!PEts*KSk+bHlgk=Amy&V&|?%D4; z$lzrcaoUcLle6u)ep~{-qL`USV&~R3)&E}z9*M|Fl~?DtZ|-fDe(d2{%W&z1n~ebz S=Nh2b7(8A5T-G@yGywo2pKYxG literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/slider/slider-thumb.gif b/docs/extjs/resources/themes/images/default/slider/slider-thumb.gif new file mode 100755 index 0000000000000000000000000000000000000000..5ba1dfb1db092194141198eaeab11752d02fa2d0 GIT binary patch literal 542 zcmZ?wbh9u|)MC(OxXQp#xA{%uvfIm#z6GKsSN;Lfo~!S6T>lS6FaGZUql0(;0MW@O z{~_qa=l>9N{q=tcy7uQk1U>!vAC5l%`_I6@pqH4F<C>S4l#`mm0ptP!BO`=nfYDGc zgC3A!#9+c;#&BU%hyX}7U<-u4uocSR4(0EF(274<fXWmYbU;Rc{KUZa-(iBIgN_vM zf+a;KbF5mM`oC;m8O3^Hd71RosMS*oTsP=iv)=c8AY8ZO<g*H)+_h`uduy2W%oiUm zldr0*sf}si&t~uLZf)~t%B|??VejkrWy-5ypVBjZhWD(z%IxOqg;9%Vm(S*3uu@@S zLv};*#`JBww(sz9&dhY#>+9@xY{TI+E|xQA&vBjfJ{=sA$#UVM0!whb#JzhgH*aM! z$V&*l5PEo%CG6hQmoHvlWV!!dp6ln&&nLg$d-3$kTj6m1xlIjBKY5iCJ}B&KVUbq4 zvV4R1;ffEBLXSLsA8lDJVRq~l$EA5ELQXf-CaUorF-kY^-=<Rb#^bc&?js3;=Gy5J z)+r0C+E%i1Xs9i0%#o~ZnX<xf-nKdaTD-b_16L(2`P6mo%B#ycu~U;|UzKV_%#UCE RHz?9|#*QS@R#rv^YXBE={Sg2F literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/slider/slider-thumb.png b/docs/extjs/resources/themes/images/default/slider/slider-thumb.png new file mode 100755 index 0000000000000000000000000000000000000000..cd654a4c1680183026145066b4aa1a7802605456 GIT binary patch literal 933 zcmWktYfO^|6#dFz0*jkYAxr02nPDo(Y#3G2We5n&sxU;xD0?`TAk?4`t&?nHc7tSd z3BhbUwh=-{CW2C=R96rO(&5-gscoUWiha@ACv=ooX>pu=`*F^>IX5>s$;rK%mHE!r zP<kjq5L-D%Q?n_JrVtza48{Mv6r!eNKR+#xf8;`80iRcTo{_^lS4iX(Ut+`^Vq_Ft zV8k(*2@K|&Y!;KvN?^n?SxjbV!umeyZVR82k+x+zkRBfOtf{qzq^yv#quh%G@x1JR z(8Bf}6HsPgQF2ByL5ORfds+}g5VVS{6FF%D2t*@}2B|}MPbZeUbRIl<0*w=;wPQ=b z?`n6a+|jLY-PEI&MAPVUrvX|(4Um2e`%%(jTLfgQ7+6BzA_iA*-vjA9y6q6#(c?z9 z1080xnK0zV;4*sMxNd+F82uOI28Pz~hX*%|m;xq%aX_(&E*nG^=m8xSzy&if2bcf@ zAb*O7UN`_dU;`|`V?YBu+JwXk7vKb}fDxDmIt;jNg4~P|Gaec+_!#|K4Cyg2i+fYJ zJB~Z!=$pY^4LX&$rNFQWf9i0525oYT*`c&TZo#k-4`y+56xsz$&tt*~l?{?Hbg5um zf?)}|Mf6UgXA;&mJXwQf6{cnUZGy`Wrw@*G*u2m$V$un<4ekvrY{2e?c?Gj>$h3lZ zsu&tSJM$EgWSu@k&1X2N$vNfP1r2#P<>bx>9-HY>X?dzQ`iE=Wlw;RNCAE=}lB(Zo z<6gMZclprm#8~&$>T1JWM}M<~-Ml+E|D-6_*cxWgU-Z?i6ust)nk;MoNq#u7uv;l^ zc%Sp4FTSFge0_U;M2mWF(hez^x65SwD7r47cs}l{u%vZ=dWdj%&y6Bm@aZmsp732n z`nJSRY5d(iFV7q)Zw^u^L<>z!SwVOYYiDTWE^70(u!`A86P*2iZai9?pV48-{<Woy zE7;HbIQN4}i>yUCV9Ec?o@;sUjk=1>cAm88uY+&dR!6>c{!;b@zv}ZnqTHCISIq3j zrmRZR!4J?JEO}MEgUxOYRO$OSzfMm1HjkLN%<YS<TI(XTCB;(yHZ2)YeEe3s;zZle zLFZZY>MA;yI5!rveWW!)Se@qKRd$^E(bb#N7V}{^<G7z}sMQD$><f#kPp&)Qdl&U* f;|o=%uaKp|chc=sqDJZ;2!fNAncA81$v6K2%TzE& literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/slider/slider-v-bg.gif b/docs/extjs/resources/themes/images/default/slider/slider-v-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..0cf8c4bcf396694fdede352fe69b574996a6caf6 GIT binary patch literal 150 zcmZ?wbh9u|bYfs<*v!DNbMuA+dv}~XeiVYvU%Pef;+dP*E<Sm9p8*?C{K>+|z`)6% z1Cj)p!NB5da8lFJaRtYz>P<7A^-dCCk$%}2xhiPQk07@MnHN0qYweEe$zBM5c(TSh gNhp)&+_Xb#AC*;S@t8j6{<S8`|JK^+!i)^o0J1kYPyhe` literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/slider/slider-v-bg.png b/docs/extjs/resources/themes/images/default/slider/slider-v-bg.png new file mode 100755 index 0000000000000000000000000000000000000000..121450c282e485da05b0d7e05955bd1398907e85 GIT binary patch literal 288 zcmeAS@N?(olHy`uVBq!ia0vp^PC(4g!3-q3<+E9Vlun6jM2T}zYGO%dex5=|W^O7& zNJgoGk-36zVv&N8fq{jBfw7f|ft8`Tg06w7fx*r#k-tEOlz95Ovfp5l5>w%jXPw*+ z6yhxKh%9Dc;5!7ujG`J|4M0JbbVpxD28NCO+<y{5_NfH;gt-3y|9{nzg-6a_ynE~V zp4~eR@87w3{mMPNcb++M@bHm?XO17daP~M8+f1NA42&f~e!&b5&u*jvIaZ!7jv*Dd zk`o%3+|<(2)Wq0K8e*q3PVMa#b)KN2Y;kkPj++r0MojIu*)|Kl$&r!CnIhR}`zG)z a6GP%W#>UBR8*c(lVeoYIb6Mw<&;$UDTwkjI literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/slider/slider-v-thumb.gif b/docs/extjs/resources/themes/images/default/slider/slider-v-thumb.gif new file mode 100755 index 0000000000000000000000000000000000000000..58afe96aae0b9c6401d8c9991922d2cec6a86171 GIT binary patch literal 533 zcmZ?wbh9u|)Me0OxXQp#xA{%uvfIm#z6GKsSN;Lfo~!S6T>lS6FaGZUql0(;0MW@O z{~_qa=l>9N{q=tcy7uQk1U>!vAC5l%`_DjQp!k!8k%2*hK?h_H$WIJx{~abcI_OBT zvP~#DnPWBobmG!aEBwrF@C%)KtH(M!^Q+<7l&$x^2<ynjo6B#hT9*<m&AZ7`d%@+m z{JiXy`9*b^IgDN1-4V6z9f^gLr}RyjnAF7HoHA{CY{RT(-thkU0Sjj@p1W+h-^$q) zYu2q`nz?F|X!MqB_kEsw)^V{MIeLtR>!9CZ2??R|XC)#}obq9jK70Pcr2=`DtKQdd z-a4Cp|AE4zb6i}vFTZ$s<MkV%rv=X+JYx9$=TF3st49K*e(=w;;(Q}?Z8BTH&4Vpp zUgc&;yis(?5avDQToI_`8h2!qV@`Pgtb@rKlMjA2J~CY};l+|EGb7W)Ev!v4w*|Es zr~4XJ*w(&cl5%_DU(zXIIBS!!#O%f?GlWd5zN7`N@~ve3I&<o^Yja{_1sAU3e&#z} J-w_ys)&R&U>h1sl literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/slider/slider-v-thumb.png b/docs/extjs/resources/themes/images/default/slider/slider-v-thumb.png new file mode 100755 index 0000000000000000000000000000000000000000..7b3d7258ada4c81c6fc060bd5eea69524f0ddd65 GIT binary patch literal 883 zcmWkrX-ty`0R50E#}rYbBu=wW5C%9+p|mz^KUyf-HiDg2qsADUdFzy5J(6V!F6ux{ zaM+2OO$`xO3Uq)R3W!vwP+G1+0l{9h^wh2t1P1Ecw;%7wOWvRN3Pjo4mW8hgCkSGh zfX~}W=_U$Ep}`bKs$wE3`9_+#SDKM~L?S(L_6#XL@#7IfeEd9_vW3i&<dP|LI-8_3 z(wOu#CY#(uXVU56?72j$7a|p8WrmE<)~t>r8Rg-rR1}uO-*=86B3}KEpj8RNJSwCe z<7ROQqPp;lkCMd%5%jZYyEu~r&Z9<Saf4f_b@xo5rrT?r#GnTO;H*qv+2yY9_f>1X zf9j@W8dR9k4|L3<$&YFm<W`iL@s|aacGP>Jnu7Kt{<dNi7y)`dqv0LYvls+SK$R0O z0~iJ@fFF1Z*nra|PBY*DDr~56<HaNf04v}EYFv2kL;DQ6Kf?~VfoDEw7T^RtK=UNp zXQBH917HNk0WY91K{Jn6AE25>FYwd>r5Rl|w2Y#50Oj3~YoXAgst?bG&}PJ#5B*LU z{dhi%PAi5yumtc_57k?YzK3lZCO;fAuuj1>3uQ0r2GKeOg9r8x@cfIq0W`lshXs93 zIA`IVN8>P>-au=Idk*gx@Nx_tR`fbB@($(zCT8GUfYt`J8SN(MT~J+7{6rlSB;A?4 zi{Lm$j#55Vz~hQ9js9@RB1tFCELoIyqu@p3lls?9n^{Tg3m@givo8E|x9G0ECUCv$ zW>S2Nc)=b`i+*yoG<sE3X&NJL<F{Y4lD8Bl7+N%mWhPD=BVW`V7F;0U$sKu@=V;>x z#+_e9u4`NQ<+fT+t3SUpVSIPU;$N@*R&qb?%B_=I<2M+#S1hId9!oIRt6i-(mIr+o zmUzJ$m2>{w#i(h~Zhb8&|6|8ij!3;n-D6VqYdY^0h8ofXcZ&8bNx3$};+3(67|G0C z237+ptgBK!Xd(M@Vq?UoRC)CgD-;F^C*wA|I6wb-VmZG|v7&PSfrH%d3oaQ}7UiZq zmftCgdwjomxq$gFHJCdQ+PZ_EoJLm54s(eZp<wmli3~ooM7BZ5Y?iG(esLh187tJ? b-YZ;0M4ZmhwXjuYYD_|qnaxwCANu7#=K2Ne literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tab-bar/scroll-left.gif b/docs/extjs/resources/themes/images/default/tab-bar/scroll-left.gif new file mode 100755 index 0000000000000000000000000000000000000000..afa125b80cd88920aca0fce96c8bd15d80bdd60c GIT binary patch literal 457 zcmZ?wbhEHbRAJC!IKsf-Q?w+kW?feAu9E3TdN(~jbmPnEyI;;c`gif^zbg+vUw`rM z*2}-QpMHM$;`5`of1iK&`}))058wWM`}L23IH35Gg_D6nm_Y}m9Aqa0>wg8szLd;) zE0(OwSuK=zMkpZnzJ-dQ@B9A;j_J8?dE4Z1e}l&z!+950Oxai+vHr#zW~Uid3uD?V z-gL}3ne^_vwA*a<^i8+4KWsbx%;CTpe_^49MxYf<jpeC=Rn;|ub#2Wp6F6hIr&V^( z6r2{*)-r#7JInO0nX~59H!fJcXd3s7Wz{R@t)A2{b=`*E+1xQ~`wz@Na5#qR*s&SA zkL^3Wzvb-y7>>(V^3$$dK68QT0^6k<munty+`4<={^OTVSXke_d;fv;#j6J~AHTng zVgLQ-??3i$AMRfMzW%|!2BwFCCO`NS57n?ph?V>Zh;!-ur(qY<@lj!Smw@%R%QGe< zyH8^BbxU&T^k3>Sjak2o<%i&sqci1lw-uihNVA#8R;x8dGw6l&0^#f?ms<guuFE9n h=BZQ#WqGdBUc2nbub^!2b+&tt9q|laepG<L8UQ2B+@Jse literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tab-bar/scroll-right.gif b/docs/extjs/resources/themes/images/default/tab-bar/scroll-right.gif new file mode 100755 index 0000000000000000000000000000000000000000..20460f25618bb8d5e76ea9993ed1a0b47a681e2d GIT binary patch literal 460 zcmZ?wbhEHbRAJC!IKsf-Q?w+kW?feAu9E3TdN(~jbmPnEyI;;c`gif^zbg+vUw`rM z*2}-QpMHM$;`5`of1iK&`}))058wWM`}L23IH35Gg_D6nm_Y}m9Aqa0>wg8szLd;) z8j5RkUaxzly*VrSe#N~N0q_4ic=)<+`Pg(~Uf01KtNA_2Mjj0g>(9PQKK-^zK2&Gh zD~;L88Jn$mM0*so*sCV=g$w_vVPd%O{A5u^1|wr>T6tY{O=m+>b4wdvM_0|%+Nw}) zZo!thb2DafPoB19hQO>j^X4sBBv83zYTeA)tL6(X3}xH3n{DczU7Pz>wr<}cuzy$0 z3ARu!u0s<9&t2Ymg6Z@b0gl_Zi!<)rxq9P7=!3iWpK*k;zIprZJ?qn#pKrhZ@cqrF zFE79S_z=p@#3keL!NI=%9fMem#0P~#H3AYwB|icdx-^LhM(xosSiHYihS#a$2cL?2 z{|_I}IG0NQr7qL{E496`n3Q5YT{!zzk9zU46LSS>&8}n$KX;m;T7AxCRzRl5GV{6f jRJ<-_IIeJPO?s;NMLl4(#LBQKyMorZZ4z>3V6X-NW`ERP literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tab-bar/tab-bar-default-bg.gif b/docs/extjs/resources/themes/images/default/tab-bar/tab-bar-default-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..5b01cf9064c88bcc2c6e0402adac913b8dcee7c0 GIT binary patch literal 1829 zcmZ?wbhEHb<YzEr{{Ej~#-11F?tD0N=iRw`AMQN+a_iZbYmYwNc=GAmlTTM3e7f@J z)1?O=E&$QJ5C2EOXb23u5K#Qd!pOkD$DqRi1fV?8KAIzjT_lfsh=dT}_|L$|A>*+@ zp|P1mSS#klhlIv<0cEc_9vc@OWtK3`x^rTqvKzC4bC-<grX?pQa|Nx6Icd~*db&aK zsW~r;8qdzQD1LS4<Yx8e`3}uovJP8TTwKgJNh|i$mX(*62Q2oQ>$P>&)zuN3v+kbS zy88P1gu`93-rLsP+?;WFRqW|)Yj1BaczkNE_x5#ncUOFVb@%l4_4oHTFmucK?AY+| zaEGvV+?gF4A0MBf>^;wC=ccEpXBcPSJF|21^YaUwyXAa$ZFzZlMeyplv%9vwzP=&( z^gQ3)+uq*ZQT+Pe+1=aU-#^gIE$_Ey$H&JfCTqu^+q3iY^9zf;=lkv5_4W0Q&Dr<Q R?cM$T{e#2TnfN#utO4<uiDCc% literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tab/tab-default-bottom-active-bg.gif b/docs/extjs/resources/themes/images/default/tab/tab-default-bottom-active-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..48fa1c847383ae45baf202cc6de3d35c1dd79ed5 GIT binary patch literal 1785 zcmZ?wbhEHb<YzEo{{Elg-kU$)e*OFM<KKsGe_nn1^W@#1|D#|u1V&5<DE?$&WME)p z&|v@qP@ZTX%@HFe@<%<2B?LIGF)(t-cx+g3u$e<xE9S(8g@@Y(l#O&8HZD5a&0>^w z=R{${@qPtoHVMy7OHNMK2woL)a?{e&(+!eO&GFp4?Cfld;#YT0ZeD(VzC$yYtk;$m z7Z-a>)`~r~W##4N0gJundTm{Gb#=t%th=YSuD-rL;c%C%_qH`RH)mX46?=Ny+S}U; z9-o@)y?x!?-4&l--95d1{r&w7%-nK5J2pH#+##$TcV@@N$Hylqd(ZRPx#{WY8OGW7 x&g|U${QLsvZaLpwTV7sX5xhF??5?e^uWv{`J<oUdwzs!;6u-X5YoWkk4FLb@cIE&8 literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tab/tab-default-bottom-active-corners.gif b/docs/extjs/resources/themes/images/default/tab/tab-default-bottom-active-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..9fce01ae7e0c52fedaaecada469a7625f6e4b7c3 GIT binary patch literal 1639 zcmZ?wbhEHbWMPnC`2L@vXVas5Z~okP@$1%;UoSrW`t|4Ek6-_uz5Dg%)2~;ber-AP zZqkk?`>uSLv*+2qEAOW4c(Uc(hiSW>%-Zwp-@kwVN5N<a4Dk?9{K>+|z#zh)!vF-J zJkdUyBZhdCjyj*B5a4iOVCInV*pSe`#38J-=D-G~hIR%HrWFbWNv>UN%oZX$0+k!s nMFor;3>Gr5a&l+|ELf0m@DK;9nnFSVqa!mHzrq?G4hCxgZK44< literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tab/tab-default-bottom-active-sides.gif b/docs/extjs/resources/themes/images/default/tab/tab-default-bottom-active-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..5110be98b6cefc2bca336b010e866b434a88a0cf GIT binary patch literal 1982 zcmZ?wbhEHb<X|vh{{Ek#XVar^zy5vs@$cT7KmY#y`|$10t51KPy!-Qi6pV(z2nYei zpDc_F3>*wP3_t+N6YZlpVgy9{s26dD0LOm@MimK%0tY4rCT=MgiwzGBw(v=6)!dk% zaI{lM*=fs+iI0!9GVyoVI9zP-WESCGq2plKaGF6k{#c2nu-f72W~`6aocz4ZXTC|} zGoKB?8UAzaC$fcFZPB>A*k!U?tku?)A<IJ-Cf%*tsvWv6es2`7ciEcAwMiGJg;rl% zaeI0G=3}h4#n#2{EPuJ_uC;mY{jK${AIYvUH@Ls2PLMfFXNSS#!!5$@aW*?QrW~KD zn0&8hr*Z1J`L@w~zExW?&n^m_9#(s6!|UVgjgPb4mD-kjb9?6Id$!i4@2~F9ek`}n z+T#74eG{3(_4ZhNetcxId%WG=oh8q&E=;~(x7WJ#-Tl4Mv-$n&_Ef%oba8rk{k<K( zpTFOHoc+GszS^JPUv9o{Z(sZW>;J3m_Zxn(o`|per^vCOiAn6lgGLrLiHA+XW*Q5d zMV&exwuzT{D7MR2Wh8c}^kpn+Q(6?Us7qby#iM5ZGzsMn-9s6Rd(1DLc+_XS?8f6R y`)eJKCs?taOzyK&;#@MxN$lj4i7slAPbUSNX)c`{>eTskT6mdfY9b>egEatH%*9~< literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tab/tab-default-bottom-bg.gif b/docs/extjs/resources/themes/images/default/tab/tab-default-bottom-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..5e2b3bfc07fb548146a8594491678b81d1d566da GIT binary patch literal 1789 zcmZ?wbhEHb<YzEo{{Elg(xV?&p8UA?=Fgp1e{Q|{bK}LYYtMfD9|fZ!Ffu|w@h1x- z0|PsQ4g(N?@<jV+ju;s+Kk7^DA;58qft5qXW5a@j%^bp7F()=GJlrmzY$W5banaFk zR->#tCpIoV-oxnBCF3d7aB{Ln@T!=To0guQZjgLxj_2lOXJ=a!zq)gB^YZia9h$jh zy|%2lxY%Q|R_v)QD=#k(SnM^|YwN13t0OjN-95E+_4V}$hr49Gx2?IkIpgxG*wfqA z-ripD_|#nQ?d$IDuK4`w?&<C8@9%G5=9cr>vEkw24q@%MGdnguK0ZO&d!EnEO;1nH zFwVYrX6NST=NCA4%lYow^78VE;MH+wcWr%reM9o;dA_^1y}iAo`1QTBySL}>Vq|2n F1^}9Ycgp|( literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tab/tab-default-bottom-corners.gif b/docs/extjs/resources/themes/images/default/tab/tab-default-bottom-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..5cae8ae41d59cddbd6ae2cc4b7b09e4266b31f37 GIT binary patch literal 1648 zcmZ?wbhEHbWMPnC`2L@vXVar6Z+^_!^J3bLCr{q}xbfoGnqzP7z4>$N$**Vceoff+ z<iedFQ+7O=1Vr1OY&rK~%b9m;PQ5$#;M<2Ue=a=wap}>ID^Gs>`}gn9zkeUT{rNu% zMnhmog@EEu7DfgJDFz(|AOPiw_R$<Mq#|(Cu~ZHL4qpaV4v~Td3l283YHBP|Sh%o- zSHPTM21mjI1_o)aq$@K%HXLmda%2)%`M`;li%rO9#ezhJMs6t+n*@i0hgjJ}jaWJg Q6b~@)^2i<G;b5=^0N}C#oB#j- literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tab/tab-default-bottom-disabled-bg.gif b/docs/extjs/resources/themes/images/default/tab/tab-default-bottom-disabled-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..84368f09358a61e44e7da20be95793ccc1e965c0 GIT binary patch literal 1798 zcmZ?wbhEHb<YzEo{{Elg(VJgS-u-&@>CX!w`tax3hd=*E!DtAKm=I9>$->CMz{a4% z00f{s(LS0ZMoi?7dK60ta6D#U<&g2%u;5@bhp<-6jDm*4?E=bPb6!knINB{?oOLH- zW5e-&1!p!1&rM5CPSyxs6_Y8{aC*8y@~JtVo0pxPZBhK{&dJTo&(C*g=92Z=vf|=m zkI7oGr?#xTygXpB*IciytFEq&*qn9u)YjG4*C!nAlJ(xU=H}*%%d28fZ(DnNd%@#V zbG^5(ySuyM^Q*h3x39myzk!)s&S%Glhle|awd2n0*!cMP1ZD4eK07x(Jw3xX``($I zo1dRw;M^_eyKBqK%PWFc$DQ4^_4V})$*1S}?%wwH_KxD$_s;I#{{H@fW^Q@EJv%-g JWn^Tq1^`N7el`FA literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tab/tab-default-bottom-disabled-corners.gif b/docs/extjs/resources/themes/images/default/tab/tab-default-bottom-disabled-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..396aad7828d3e66c0b69102f5901a40c5ed6d5aa GIT binary patch literal 1648 zcmZ?wbhEHbWMPnC`2L?^#-0~X-u>Eh<-@K^@7{g+_2}Kd2XB78`t;|_y)XN&eAsv8 z-J>_Z?!5VN>dvPJuYO&4@a4dj50BpcI``nqoo7EjeEIY5-@k7^{(SlI=l>`e4S^vT z0*XIb7#V<BL5BedKzX8lG)D}<XdHDi)k1*7mw}OkrC`B=gUzhs8ZikA7B=z-81u}q zNKj~Cl;ldfGUH>z(Iz2BJ^{@IP7SOa8W9`~j7*JO5(YLN8x$N`Sr~N$90D30n0Pql Kj_`0WSOWmcj|c() literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tab/tab-default-bottom-disabled-sides.gif b/docs/extjs/resources/themes/images/default/tab/tab-default-bottom-disabled-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..f5e887f180fbfd32548fd932bfbab9749c528eb8 GIT binary patch literal 1984 zcmZ?wbhEHb<X|vh{{Ej~*QIxl-u!y<?$^J6|6YCi^WxK=XCMB&`0(fdC>RZa5fB23 zKUo+V7&sVo7=QqjC)!7I#0ZG?Q7_^Q0gnF+j4BEa6C9Wrn7E}}EH*qi*up2NRWoBj z!%-#?{iKwP1&bNG<m`*Scmy_hGOGG7GubJmdKj2>0(vw*r=FQ<o_pxX&fs+4Mw7~a zJ_1*kUs&umnd$7#E$NpRy3SXcx@w9>@M^z}PJ5+7Ux%y@-QD%n%j|W;=G5(rVpnf_ zdwp}>;bpbf;d;@#%HJMadP+Peen-XkU$Q(A`40}a3IAWa+af>tV5_|Hv^6sfl27*; zI`5N-{G4)rs&)4>AFIz9mzSC^j$6Cy>+{R&oR`<xMw?~d+MauS*%|4Q{2M#Uf6MX3 zlz(`9Z1Vqgdu_^#A0C~rJbm39i{jVkHahQ@i~U{l{_5`TxzGLVeph^cx_xo{`h9=D ze|~p(dA)tSUG=Z;Z;vlOCtp+l<Hy_Q_Zt{qi9cv$Q~MEL%l+*7f(BN*js-1TLMIlq z@+EORY!%G1SlBLFrlHiXl4h}}Q#G&SQJ2=X9}heA+GafJHa>Misn`6LgmSA*(+%Yw zi+3*`PjGl8@noW#+Rx-(?`JobOmMa9Tr$N==;V^Aeo359rv_$OE}b4KCMLjO4FE&q B&Jq9s literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tab/tab-default-bottom-over-bg.gif b/docs/extjs/resources/themes/images/default/tab/tab-default-bottom-over-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..bd751fdce155cde6dce6f395271df759ed89f18f GIT binary patch literal 1791 zcmZ?wbhEHb<YzEo{{Elg&Z~d--u!#<>EE*t|DJsK_vqcf2XFrU9|fZ!Ffu|w@h1x- z0|PsQ4g(N?@<jV+ju;s+Kk7^DA;58mft5qXW5a@j%^bp7F()=GJlrmzY$W5banaFk z7Ne{?CpI=5?^keUlknWM#FIfIcvZ~FO-oNtH%LA;$8+<tv$HLVU)?#mdHMPI4$WM$ zURzdNT<kGfEB4fum6w+XEcTk~wRP3i)e)Ps?w;DZ`uh5W!(Fo8+t%FNoN;+o?CEW5 zZ*MPnd}^-u_H}o6SA2eT_w@Gl_xCq2bIbYc*zoXhhp=|snH?J+AD^J?J<n(7rl+T8 z7-!!*vvc$F^9!82<$QN-d3kw7@anj;ySBc*z9ISaJm1~h-rn9({QBP6-P_;aKk$}~ Hg~1vC_x^fo literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tab/tab-default-bottom-over-corners.gif b/docs/extjs/resources/themes/images/default/tab/tab-default-bottom-over-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..bbaa39dcf7628074486aa104b2eddf9fc81e0111 GIT binary patch literal 1643 zcmZ?wbhEHbWMPnC`2L@vXVas5?|#kL^J3bLXD>eeyYuSbhEwl8ef#&~!>?!Wem!~j zYtptSx1Ri(vg65)3-5MZ_^{>7ha1oSTzmHG-@kviUI5XbJFk9y`tk4oC>RZaAs7OR zKUo+VfLTF@0SG{OqJ1<+48dp|bu!gLfWw1<l|#f~!GeR$tlSzp0t*vccm#|YW^g1d zU|^8sO1d&*V#CoUAx9>Goe51&%p80o2MibvvhYaAm;_iPK5JzWP*agO@QLwE1A{dH DrUe8F literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tab/tab-default-bottom-over-sides.gif b/docs/extjs/resources/themes/images/default/tab/tab-default-bottom-over-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..3864ac96fb1400ba5e93d2e7d04fd44546a66551 GIT binary patch literal 1985 zcmZ?wbhEHb<X|vh{{Ek#XVarQul_yx@DB)HeERq7!@qlP{ylp4@4=gY|3|@S2n_cS zQ2fcl$iTqKpu+$Jpghq&nj?mLoR9hsUkGsgXJFJ&aG21*#K6QY<zlhn!NC?jNv)b2 z6BLei3Mo5nnKAM4u~sJ54iSe!70)*IAh`t@3zjl=F($D!XiiS^nQbh2>WpTA`nma5 z*=&0)rz~fh@7nlHWY?68;Kd&EwQNsKSrxoGV71#(tJ2lsYZKPjiAtMk-`t#bxlDJr zSZ?%I&&OU<PfvXpv7`9&wX4<N*T(P8Vcad+Q@;M;zLx)=c=uEkJU-MRuWff`#-`-c z6SUor*;H;$Kf6G`UQE`?_~qqg!R2~;rAo7}b|!mIJ3I4R#*NLz*RR$7-kN`VP2+B{ zzUu8C?;WZC%(t(m;`5^u^R?~I&DmA_`oe1W<94;X%ilg&Uq4S=-p=~x=VzD8_4muw zR)0PD*n9f<x&JDDeExj>dj0>s^}pXRzL?kW<869EJ<Gr2@eSO3Hxe2->{dKz<OzDQ zpj9ADLa|La@5RD4g}5IJI~3DA9(AfMyOG$bz39fGF3w{b3wvZPSt#`wKZ{u0XTI;n z;$9u5my0G?yvs=GclmcBd4f0J&6J5Ab}OGu^a*;oWNJW|r0TTbyq8O-CB$`xI51cP E0MD|_dH?_b literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tab/tab-default-bottom-sides.gif b/docs/extjs/resources/themes/images/default/tab/tab-default-bottom-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..d791f866fdb1c08e05d9209f93dfbacdadf00d62 GIT binary patch literal 1984 zcmZ?wbhEHb<X|vh{{Ek#XVargkA7Tv^5fsXfA`+}x%2AJtyh0;y!dtP*{}bjU^E1V zdk850WMO1r;AGHY00K~+XdlfH!#&PN{f93EIQ}y*YA85NXkcPs;+Ar;*zn+B3!kJ` z&5a2PM>~a-owm%F`1n{W6L*J>!^eh`%&PuDA_syPjsmmJo*ql#G~by#$&W-<d|q~b zj!EM!kzK)#{)_A@*+Q+RWL{kCH(4syYHQ}z<sl2>rmotWeQkZ%-Zs|m(ls|XW$c_3 zT0Jc{YDvN3V|T5>-$d`Mc=>GW>uvdWx7Ocg+qZhV!Tp1E-<iU6W*9y^+$Ss@XS1{L z>G3Iw@zd7qEPi%=nr%B<Z{?PkmsVI#4y&D2nssD@^6`5%(O<G}?#O(;?d`7ew^#Q^ zv+rNK+v5GhedWyIdUGs4K0Y^DI^J$?<=5v|7RFCsx3~J+`)hmK=d$<L?)mxY#m>p$ z_48`0o_tt*{JvfMpX#4KUOwOceqa6Hum87-KdAjBdg6Y=zqjlQnwX3{9yIc)WjtsS zHj8-JEaFtLutlnD#=~~8DhZ_yiN1`aPK_duMP2HfW+*ioxJf*2Gw%AasK?^cjK#fr z-y$A&*>970(rYDl^6><_cN|M5IT?9AndqmM`D9YCS>)5nAx@P`r$m*_d^$Z$PE>%w F8UPA-&fow5 literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tab/tab-default-close.gif b/docs/extjs/resources/themes/images/default/tab/tab-default-close.gif new file mode 100755 index 0000000000000000000000000000000000000000..e699878484183bf770efe1e9376a6d0d36b5f1fa GIT binary patch literal 896 zcmZ?wbhEHb<YwSzXlGyusao&w-yynTb5h%mjP5=86A$!mdOUOYi{rOHpMUcE((^yp zUjBRd`TvV=|3Ccv|K->J?|=UP{`(&Y7)HTp2n_uYQ2fcl%)r3Npab#>C{HkO#4<3m zSU7BWz}U#Fsu82{@Bt$ykATIDjt0lW%z^?U8V?ebn>bh$O%xm^r7&}_$QvXWEO>f~ vokdbbz+rM46PqC~1H*!Z<&1OKC3FlnEYJv?!yK*^TN$w6U=tHF6N5DXg62z6 literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tab/tab-default-top-active-bg.gif b/docs/extjs/resources/themes/images/default/tab/tab-default-top-active-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..aee1957beb2f8c0a27cb9458d2de065d1bed035e GIT binary patch literal 1775 zcmZ?wbhEHb<YzEo{{Elg-kU#9-u?OZ>))3j|2};C^Xk)||D#|u1V&5<DE?$&WME)p z&|v@qP@ZTX%@HFe@<%<2B?LImFtBpScx+g3u$hTdBj&`0#Kv|3WiK9wjf;+UGZ<yv zIk9o^@qPv8E*Z~FOHNMK2woL)a?{e&(+!eO&GFp4?Cfld;#YT0ZeD(VzC$yYtk;$m z7Z-a>)`~r~W##4N0gJundTm{Gb#=t%th=YSuD-rL;c%C%_qH`RH)mX46?=Ny+S}U; z9-o@)y?x!?-4&l--95d1{r&w7%-nK5J2pH#+##$TcV@@N$Hylqd(ZRPx#{WY8OGW7 m&g|U${QLsvZaLpwTV7sX5xhF??5?e^uWv{`Eha6%U=09$-*4{# literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tab/tab-default-top-active-corners.gif b/docs/extjs/resources/themes/images/default/tab/tab-default-top-active-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..e4ee0d9a89c9d2284e0f338974268eed6f881110 GIT binary patch literal 1640 zcmZ?wbhEHbWMPnC`2L@vXVas5Z~k0)^XJBkUoSrW`t|4Ek6-_uef#t7%ddBze!cnh zYtptSo6fwOvg65tYwz}4dN*U&lUaM7{rmUt|0oy@fuSD)ia%Kx85o2abQpjDlqcFp zbHvb()lnai9|9b%42&Es4ht1pnK*=%cn)k>c(|QW%_m_)0uu|1h@8TNfCUE+GI2|I mENM_U)WRerV&UMikkPSCpZN&OhY3t)8O$V~wMYsuSOWm?6$e=W literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tab/tab-default-top-active-sides.gif b/docs/extjs/resources/themes/images/default/tab/tab-default-top-active-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..0aa990b9a0ca4e6cbdcd0614e3fa20702cd6eb1d GIT binary patch literal 1962 zcmZ?wbhEHb<X|vh{{Ek#XVas5Z~i=a_vhcgf8T!n`|{)8hi`vgefsl%6pV(z2nYei zpDc_F3>*wP3_t+N6YZlpVgy9{s26dD0LOm@Mim8z2@XsQOx#i~GY&L3GqbbG&8SdF zVq%nFjo>+8c;Hx{yk*;$6C0F08`a!b>2OY3>M>nicuC7np;YhL`h~~ltlYfp%xwE& zw!55Do(If#n=BTq6_Ode%w@h;ua~H1$m-yYVM|YLO~1Z4es11ZFR`4+jZv4|_U<yv zzP&N+@uJ$*-*lpP=Y2dhclGvlcXro*X1m8d<9)*ZHevBNoruEZV=eODeLj+gDW@kJ zhA%t4GynPF`Lg-ne56V;FU|^X-?zuA`1QqQ$&2gO{xZqFy{_=^ytTWxy}7-=nEgKQ zobLtqk4+Yj*Ndqves*NOcfX&kWy$Ny8^f2M-CO?s@%_2^?ce?6YAQe8y4=2hpI!Cu zkIx=2u3!Jpruz50kB8^4-@otA@BdH5AJj2?GG9>7rWWy_iAn2*LNkk<Mq-PI634<; z;iL$~TA6RxA2!Nc?O52Z(iE|%Lu#4CqgL&-8;?5Fj&(fh)|z)>QLo-3j>kP#*EAmY d+CP(c(&zBWVoAT7TI7>SPFgopycro8tO2bYzTE%- literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tab/tab-default-top-bg.gif b/docs/extjs/resources/themes/images/default/tab/tab-default-top-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..47fbdacd564945295666b79e00fb9ec93b57ca42 GIT binary patch literal 1775 zcmZ?wbhEHb<YzEo{{Elg(xV^u-u$`q>d&oLe{Q_^b?w=&D^Gs>9|fZ!Ffu|w@h1x- z0|PsQ4g(N?@<jV+ju;s+Kk7^DA;58lfssSTV?#n?Gl#I2%7G0F54Q^_8;Lk<Ty(UX z(J1TAiH(bo_bWJe$#`yBa&odp@T!=To0guQZjgLxj_2lOXJ=a!zq)gB^YZia9h$jh zy|%2lxY%Q|R_v)QD=#k(SnM^|YwN13t0OjN-95E+_4V}$hr49Gx2?IkIpgxG*wfqA z-ripD_|#nQ?d$IDuK4`w?&<C8@9%G5=9cr>vEkw24q@%MGdnguK0ZO&d!EnEO;1nH pFwVYrX6NST=NCA4%lYow^78VE;MH+wcWr%reM9nTF=+t?YXB3SZIb{1 literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tab/tab-default-top-corners.gif b/docs/extjs/resources/themes/images/default/tab/tab-default-top-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..3cccd3afd7cdab25685c54d9dab55e14f132b597 GIT binary patch literal 1648 zcmZ?wbhEHbWMPnC`2L@vXVaq_FMiF~^J3DrC(qvfSaa;nl{bGTY<n_g$CGmpzHK`5 zZrzDD=N|ny^W?|9H-DbI`*q>bj|-2!U3v23-@ku<{{8##<<F%@Ki+-$^Wxo)XYYRf z9|fZ!Fr-32@h1x-1A`QU4g(N?@<jV+ju=uAIO<p`hX98!10x5^hJ_E>SU7|oA~+5< z9&Q(q<(i@4(9FilY@%?$V4*`BmjIj31c9K&qns=P84Ups4>EBGsqrYhn6Qj_HiL%M R9fpK-e|8&9CJqh;YXHFl0|Ed5 literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tab/tab-default-top-disabled-bg.gif b/docs/extjs/resources/themes/images/default/tab/tab-default-top-disabled-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..1e50a8cf07757db219dbff22fe1af21f716bc04e GIT binary patch literal 1794 zcmZ?wbhEHb<YzEo{{Elg(VJhdKK*$CL?8Y<`|#(<yI=oD!DtAKm=I9>$->CMz{a4% z00f{s(LS0ZMoi?7dK60taNK8L<dE^$u;5@b6Sqdpi46-6w{vlN%<<T`=xDcuG2e|7 z8y6q%S1{+2@Z7ZI<YWzZwuqCPmY$w&kbG*6=jLT+XIm7%x^r^#^7Hc@nz>}Xwye0g z*kiI*?5Qm)FE0;R>^0YG>#D1(BQ|H<J+*c9_4NsdyJWq$t+}~5<MOK5)7#eG-d^zd z)LifF>+bHZ`26bb>Fw+9?{8q{mh;)M;o;#9VePmxJ2pN(K0(=gp3lxrPfyP<&c1hM z=jP|<7dUsz`R>~C^74w{)p2KcZGC-xL-Of)zPq=*y}hIO^}VyZx4*xCpqX1f&RT)N F8UU%4d;0(Y literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tab/tab-default-top-disabled-corners.gif b/docs/extjs/resources/themes/images/default/tab/tab-default-top-disabled-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..2eccc81e48acd7ac7f1e41c3afc96d92e7811e3f GIT binary patch literal 1649 zcmZ?wbhEHbWMPnC`2L?^#-0~X-u>El<-@K^@7{g+_3YE12XB78`t;|_y)Or@eAsj4 z!=pF9ZoT?->dvPJAO2jp_vz8QUmw2w`S<VNmmhyVeEai%6pV(zP!0jbpDc_F45AD= z3_t+N6YZlpVkpPwsM{$G0S-R~b`F_@g$r1jIe2v<c06b}+%6!?G=pP-Q!6`@7RLgG zg^aD7j4U1;8ypTWcMB=0tPn_GVr1cF@(^&ika(8aoIRi<Bay*>K6_P=jDP@xH2}0$ B38w%6 literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tab/tab-default-top-disabled-sides.gif b/docs/extjs/resources/themes/images/default/tab/tab-default-top-disabled-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..641602a61d072c563f8ad3e1640e1a683f3f47b0 GIT binary patch literal 1979 zcmZ?wbhEHb<X|vh{{Ej~*QIx_KK*&|>CdA#zyAIE_u|8!XCMANdH3u8C>RZa5fB23 zKUo+V7&sVo7=QqjC)!7I#0ZG?Q7_^Q0gnF+j4Bci1rAIMOx#i~GafV?W@cx#YdLYD z!IfE1IOa&i$E0IS3fwh3GXonu8CCt$cn%mHI5kZ_@>t2q4XVD4X6diia86$CGv8eJ z3Ck|wbpOTn6WL@}ZCP<)vHxVZSgxrrLzaha4!f%rnjO9_WPca0x0rUs=H!dhR8MWo zyuCVq@48ZN@x0ibS)Y&D?l#Z8zq5?_@!!?o_2LiL2{OyA*|Fil;eKKFIG&jwQ;ttF z4!@@pS)6`uihVbquat4d<;8*1)z0iHe0_So?fNob>9X9LtBQ}??X@m_e{);&<9};^ zo8>>=H<4L>-JTsE9-p7=9?v)TXUX$xo5Szx#a5TUyRyG~2EV_Yb;ak$7pJSA+gJJf z_4~c+%l+l+YJa}^eB6G&eeM6B-&i~D*Z;bEe179UMUDpzTw)pz8u`^E9ySRWSuAW8 zON)5eCX{tUv0bE2BdJ3riDOZx@}dZ(Mjf*ok6QJsb}Z^PITW$DN9&oy<4)^kHy-zx uv2{M~x4L&?@kBc%&L<PR#5A8w^jDL7Iw`=&a_Qu-w8*E^g7_o_7_0%HvA}=; literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tab/tab-default-top-over-bg.gif b/docs/extjs/resources/themes/images/default/tab/tab-default-top-over-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..b03c1039825a43b9f33fef7b080df668f084e1b5 GIT binary patch literal 1777 zcmZ?wbhEHb<YzEo{{Elg&Z~bfKK*<4;op-F{~o>j_u$RHdvE^z9|fZ!Ffu|w@h1x- z0|PsQ4g(N?@<jV+ju;s+Kk7^DA;58tfssSTV?#n?Gl#I2%7G0F54STbdCl<%Y&hC2 zVa#^p#Ky(P`xTtKWIQ)5IXPJ)cvZ~FO-oNtH%LA;$8+<tv$HLVU)?#mdHMPI4$WM$ zURzdNT<kGfEB4fum6w+XEcTk~wRP3i)e)Ps?w;DZ`uh5W!(Fo8+t%FNoN;+o?CEW5 zZ*MPnd}^-u_H}o6SA2eT_w@Gl_xCq2bIbYc*zoXhhp=|snH?J+AD^J?J<n(7rl+T8 r7-!!*vvc$F^9!82<$QN-d3kw7@anj;ySBc*z9ISaJm1+l4h+@+yF74e literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tab/tab-default-top-over-corners.gif b/docs/extjs/resources/themes/images/default/tab/tab-default-top-over-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..087db871a0f579dd2f716e94c46f79a88eb0d187 GIT binary patch literal 1649 zcmZ?wbhEHbWMPnC`2L@vXVas5Z+^|#^J3DrCoewzd+_PcrZew8ef#(9!><=W^zPTR z9nWq&`?KxbyD2-KY&!Ms#*1G&F1)+(=Fh)>|8BkbbL+*wJFouz9|fZ!Ff>Cz@h1x- z1A{n&4g(N?@<jV+ju@ITIqGWagaC&h10x4Z!$Ji%HV(;<h=|69!|ejHTr)Ht9BSoY z*3<DYc<9)~EW+lqAt2F#xm#FBXNSW>1}0`v9UlpY3yHo==8OR)9gGbA^I58bSOf$Z FtN}Fv1L*(& literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tab/tab-default-top-over-sides.gif b/docs/extjs/resources/themes/images/default/tab/tab-default-top-over-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..b88406a322b95a52a5fe01b4479f07739f671a94 GIT binary patch literal 1963 zcmZ?wbhEHb<X|vh{{Ek#XVaq>pZ-1j@bAv6e?ai$!@o!G{@r`?@4=gY|3|@S2n_cS zQ2fcl$iTqKpu+$Jpghq&nj?mLoR9hsUkGsgXJFKja42YCVqoIeuqg;w(Adr<rKRDp zvB8B=g4KiPfZ>5-ee#xVUpfLD-6t{m_r*j8rFu`$cRl8kDU{|l+cfpwm6?;5ot|q~ z`0ve0p^U&q#{GP;T3a;zm-)|S>-8#K6}mKNW7yRy)0N?i<0m%BYH!oIvM%L(QLJ=W z?(H@C+mE?si{(Y_E`56M>g?(3Ztt!8`0wp$v4X@y#r*tnIy(&GkM+y4_xV(AN<BKs zF#KAL<;L{G^97sbba$CNIk&{WI8HXI^!1tb=EvP~rOL8yZ%w^_ZSL%CukY?F{QvH( zR7K&V&HeoGdV4JMpPiq}-tSkttMuumjp5hpY<HGFzCW?KLtcNM&6jsi&KJka$JPFR z^M3nr_k6j!s^4Fq-oHM7{=VOT|2_O3U;l<NLZR`qti^*SCbJXr&HPpp2`wUi84H_) zk|GwiiL1R>*eI{W@u)*-8b@Ng%DfW~yA)U5NNUs1lThwbJ2Ycauj#3Z#eJ5SUOeiv ed-Nl@Uxz7DWumd1<&#NHW+#;=8?mx5SOWlg&$s6Q literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tab/tab-default-top-sides.gif b/docs/extjs/resources/themes/images/default/tab/tab-default-top-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..f545916db21541418bf7b7c52e17e4018a252cc5 GIT binary patch literal 1962 zcmZ?wbhEHb<X|vh{{Ek#XVas5Z~okQ_2<%~AOHUSyY=eNjTgVJJ^OX#$&de|U^E1V zdk850WMO1r;AGHY00K~+XdlfH!#&PN{f93EIQ}y*YDhQ~G%ztR@oU%=1T1K5XOq%u zkPuwR#3;e)!E?ayz_C7g%eF5W8<jm9)!bL<a86q4F<o7BNy|>5RPWjPg~#Ts+`R0} zZ2MxiyPQ*=2h4YyEEcO3k{P_rWxiLhm#AjQ>fnuGOHXc1zrHwrZr)cfv7E?_QJ35H z?lQ~1y)o_aqT1EpbfS0XeLOUG_4ajlcGrJqyT?7_eZu}WVevSfh{EJ!E%M%dK9Yth zrzabRFFU<6|M}thviaY9q)IX`&I)edx5ujZ^~Gh$i|f|@GReNZuJG`@wY#^yxxK%b z{XXxU?*;ddO%{*Wi>WMrc4WSHzn`pS$?MA-!<V1kTmJp={ki$=-~HrjDnH)3+`fOG zUG?ve&mJ$XU;odh`uDq!hv%=~zwgiQ|4+pq)G>TAUr^7c7V)5oN$Z9}GmD)@VvC3p z$HG?OqzJ`YnQzx0Hp*M=SlF)86tSp7YMI2NR_(MKk2=(jbv)|Uns;JRuihh$$30fp gG#>ZbKa+UU=kUp5Nxz#~<daEGS~pX?85tR@0m?YMn*aa+ literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tip/tip-corners.gif b/docs/extjs/resources/themes/images/default/tip/tip-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..e26ea6e705b3da35ea6535f4ad44c5893c845411 GIT binary patch literal 1621 zcmZ?wbhEHbWM&Xz`2L@vZ`HXMAO7t*_iW0#3okzX+jr^3zkmPsTzEEZ!-YdvUhTW^ zY{sTbN3Og&aOuVWQ7{?;!!86Af3h$#Fz_+xFaQB4PqdHbh+!AWqaGq51UQTs7&%lN zHY{*#Vq&xqFmPaCW@6^x(|FL}(8R>Tq|o89z@dqOk4xdi4h08hR&Egs4h{xu0Gdww Axc~qF literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tip/tip-sides.gif b/docs/extjs/resources/themes/images/default/tip/tip-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..cf4c2f62a036eb8d2924f88eb7a761f7296eeebc GIT binary patch literal 1623 zcmZ?wbhEHbWMfcb`2L@vZ`HXMpZ@(H1*0J_B11s&CkrD30~3P|0}z1nMEhut7?BBK z)YH%q;4ooeWRZ|yXmDs^;}o;8Fi>=A;}*5b;V4Wx(k`T(b>@WNV)rgt$GSZln^aCt O77NaknQ5fJU=0A~&kg|q literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/toolbar/more.gif b/docs/extjs/resources/themes/images/default/toolbar/more.gif new file mode 100755 index 0000000000000000000000000000000000000000..02c2509fee0fb4555df61072d8e8daac8dc7430e GIT binary patch literal 845 zcmZ?wbhEHb<Y5qCXlGy$b?SEb@4zq$MnhmkhJfNv7G?$pMg|>_??HKjfkTUdnM1~7 r!-9j&9Ku>L9YCQ*K7KbIgN+Z4bP31@U9tF}<ld&>++`ynz+epkzXub1 literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/toolbar/scroll-left.gif b/docs/extjs/resources/themes/images/default/toolbar/scroll-left.gif new file mode 100755 index 0000000000000000000000000000000000000000..2db8cf5cacdeedff17ce269eed74d98624bb1f67 GIT binary patch literal 1861 zcma)73rt&882(!><r%YuJphThn5amA72FhpY`nV;#M(h+Q$tF73muoXyS?QlCL6ku z%<&MHkvXGrBf8)u(I}aK+i(a@ML>pgyc9MD3~>z*jLvfXPahP6ubbR+zx(~)|2XHr z=UkaQJvL4q0^!gFkjXWvDq9ZJwDFByH6Pvl{D-Bl$CkdCTp5^Jxi+zQeP(5N);2P= zI5D$0Id7Y`+U6E)*5#Gu-&f%OU7^2GJ^%p_D)`A$Qk1e}S+q1dMgZ_Up*ERVF%3{` z;5jtVx%>9hUN=AtLEs0$;HTD@O-TwxCP_rJ>k}@24<f=2M*h8hy~i5HPs^A!03vVX zj9Rm%7;zbZhe~7OcmS#&`Pfq4gxHg4HgQ-W;t+xh99T+lz5}P)HQCA()Z`+*PgAJY zA}&N6k-vs7$W{ugB1aJ@!9X&`z;JpEO%_AJ8FhM=u^Sx2f0)-O{|y$i7M!&G3c%6d z#3w89`7qu~Ixam2pJBKV!4-ws&m!J}I9bojvz>gdAwTPB#Hbe?Dl%peU!r+e%cQ0u zjzHXDF4;@4T~kq*lI7IQ98m93APxo)L@Op<;S3}WG_YBu%a~ZalQF05bvTOyb^3I< zlh>J8`<H+T#I>A7NeX=sahsY;lR5RHj3LMA>mk;vQ!|i{!j6W40vO;x2YO(E1|`TK z8J{v_4KRxqJ!rs)Dh@}NssJr6>p`%fmUyZlxjxtu=8jUu<>@tjb=JRl8{Kv&uxBCp z9a%_L!GHrH%uuu{jRcdsfS$^Zz*P%9L|u4((7&e=l5hg7J!COP&|`rN#&At3a%~Yh zLw)e7g(f93)mh6~P!-{3rPrnN(jn<P(kAKLKP-}?eD@-e3J6E?ljU>gc301!W*^?J z3fHLw`zn)e=phG#=%EzF98N`zoB_%)tUKIl&!`8eXi84SQgJ|2yQoBJCzXnC@l>X( z3`v?KRgwg>BwP|FiI(gk*wt^zBWR1mG0oX|S5H<IYnKn}A)RtGicH9*iiCXRN#jTZ zOAxd8hC7vK%J8fJNHLnqIekGPPsd25PtZwtbTPEtpoxm0)htUB(<$CebBvkcN*HYv zkb{pn0xT-+2byS0pPS>K0!a7;KjVHkx8DMA-VCsHyPFHceYN>*fD4anEL@2r9*9J} z0A}4|G4^+ne=;6O<ASh=d(*1{!1kIT+&d!(wzC+26yP#Tb}#_>Ie@1?ht_KKZz-Ew z!aFZMD(dAEGE&dp?Wi3|^lp){e^l)V(OhMt4%VIHgO6-@Gxz9F=T!Q|7piy6jh0;U zke2?u>4eYpZrb|6a{*;fLVeHaOJ?4(v9$cf%9m7rhYr`gLLIGc@KGJFIb2uK@cOZn zji=r?U3u(P&irznq*+q^ezVH=!{g^vE$5+C<=yUGnAh=1tN2r@qutWo+1l0Jdztba z_-=5Z?b}|}wP8<{*Z7Y=jo%m<9GjTFd25K8p6S0cH$O3Z=k~(nUF-6%OSkSV*jjBx zTNNXTrPj%@D~<K{w;%EHRmR6|%loX_@1c`dzU(`*s}>S`DY>F4slhuSNJ+i-%<xyn Z$j!R#aT}R0j&2KT{`hLc?d}Z_|0m`L+D8BY literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/toolbar/scroll-right.gif b/docs/extjs/resources/themes/images/default/toolbar/scroll-right.gif new file mode 100755 index 0000000000000000000000000000000000000000..5d5a7ab5db4e2dd717e26ac6b3e9a98bc4d51911 GIT binary patch literal 1865 zcma)7c}yHt82@%VEFi={S}P^38ER9p0kWV{kchAxTPR)EEl^5oWZ9jCrF(Vu;0T6F zC`6G$5u-L9QPxULt=2zGTL~7^S_8IRrIe$kfCvOA*d?en?D)MsSPWj1%$wi*zTbDe z_sx4FPD_o6m2ZVza2X(jwPu%}Evma{di!$SR}<geTI#&L^y9d_XVQLS%r-D>ADUSi zp0tfk+s5ZtrWRLb@2@N_+m|2M;s0GBzf-;d8zF@AOG`?UiACZ_VPq5s;MF8I7&Lqu zK&vycXrOZr=F;ASz=tj12f^ScR~QY6QfUTBM6~M@F5d(mVf(`W-oD;r4dbU|j0ymr z4{~~?QK3a#0<a-lVPH)FR5$W5#U=w{FQVDRVu6Ua5?tWKLW1+1IN71elqI1i2l2y- zLb(!gA>y$7HGDy)j9V2si$Dnm5;Ho6RV!$+7*bZRQfnB8!8!bgd5!YlpjKnXNjt8M zIQkn*A{jn+;=QC|Q?u|HiVG23R+xDJ@n*y#wJ9yr#pmeqB`+XGJ@4pY{a)frG^dnI zath)w#H~ileu5pEvce>ZOEX<0PnRMN2H<#hgGuTN#1GPGB&5rjm><s=Q}#QZ`9Ugm zYMP5z88nVB0Tb|#vt}77bUWgUayCWm(vL8@ESK*FzEYmN7x@V6Xeda50TxuC1`W_4 z12Ks3DMnTYGiXtR0`#b2adfK+(Bifp0W)feXEul$g3Y0xD3$EXYDHK5;$OV=9y=5` zvXK1FEF>$Z!+{V+IJ_zi2ZN`8tL3dhs}{PSI)A9o|7tlT;si8~kXnqO#sV3P;hs|X z+9FiChTv5TO-f{HB+C-04D+zU0pYx`U-*&GDxCd?MRJz!StL>c;Yfb6e4gB%>KW7= z#M@orIu++wWzr2bWML3B6r-5MsmPJjK`Dmygj?+y^%xaNrBN|dEYQ^RR00)GCF5Hh zmEkT!kRnJHBmyniC5RP73epL7_gnA;+G24`adqC^lU2pq<->YNr<{!<6LPD<As>0t zIMP51Vhz6GPBk$lcvb);=?$f<x}eZRM+t?y=|nub7&=X-hzO(Q8VyZM@0yG>%NQBf z!YCtv9DKwPz$SAXXuQo`9?rB6;JJJF8FzcQTr<EKBfz6id$>^CSC4!Ma6VdLW-ZQm zz~fy5Fsh!4a=i2WMR*|H;W!)aP47m4l@lEI$HyGE(v0y(04{0B4hA4U2k_$PkmE}A z2UXUyb0@$4vMJi6?R(O?&>BB_>5%@N{Gj?h&4wQyPiT}@+Y&#|J$=2fcV_z8?Rom$ zwVM(yytGKqnRnjN1K2H<3$McP*s0DbgQYmIv@B2&;9F69)Yo#Xq1sRPMy)xZ>cp|U zrnl<qPc}*fR%^v4g36N8Jij*sS_JI5&+^U$K6IhEg@5jJfKPi-UVHmDZ7q^3KE<6r z60e@#zMhWj1Kl@<ZVq$~4)saACw`io7`@vc@bjGa^vwAD<ig!w?oS2GjLrV~+k@Wa zdp*P7e=(X+#GBkUGSD^pE#G%IoXU~rwbcX;?#mqLzI~-)%QbCP&WmH>S3;(?y<c@e gHr`Pd{!H7BTSt`XY_#I__g<5J+EKG3t{NcjPouKnz5oCK literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/toolbar/toolbar-default-bg.gif b/docs/extjs/resources/themes/images/default/toolbar/toolbar-default-bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..22e33026da81fbdca76cfeeaa9f3f0b58390eb3f GIT binary patch literal 1837 zcmZ?wbhEHb<Y%yA{{Elg(t{6I9(=g>;>#T%diLeUlTX*4e7Xfh&pusy^y$i@5C2EO zXb2475K#Qd!pOkD&7i{o1fV?8KAIzjZ)}hHjBp5W{AXb0knz~C;9xU{u$GR+f`y0M z1(dz!cuZ_K+AU$6btglx@p!+2vz&zIrX?qtG=f*foZPhZ^mK#dQ&Tb*EIT{fqWIOF zlg5qb=Q}iW$-WA1ytvq7GF!x{Eh~c=0v3DC_1e1X>gtHiS$9uuU44Ch!r?Ai?`>;t zZqB&8D)#iYwYRqyJU%tod;7Y(yDL7wx_f&2`uqDEn7QSAc5HZfxI<Vw?#zyjkB?7K z_MYdnbJNq)GmNwEo!Pnh`S}IT-EzLWw!FN&B6xM&*<D*-U*C{?dY<p@ZEtVyD1LqK z?C$OF?;mL9miODU<KyEKleOc|?b-SH`Gv*a^ZoYj`uh6D=Is0D_U``v{=wmHE_wfb Odwza?5zWrRU=091RFQrF literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tools/tool-sprite-tpl.gif b/docs/extjs/resources/themes/images/default/tools/tool-sprite-tpl.gif new file mode 100755 index 0000000000000000000000000000000000000000..e6478670e37ea49286d7f29df999169959338750 GIT binary patch literal 971 zcmZ?wbhEHblw;s$XlGz>`0r4-;O@-bFU~*teev0!D=+?Cd-eb3oBt0#|9|%F|Er(> z-~as&1Pr5KGz5lY2q^w!0eb5{gAT}Zpgh6Av4Vk-LBL_d0!KzBR<?)}8xk8@m?S*r zcuZt;Vqj#;xO1ZLz~K&2=cqFplNKHC;0{_9voqld!!!ebqX37^%Y0e&@?TAvxnTME z`J6FKvRcB87Z-a7?(jJkl6HK#-h4Y=fr$-QS4VK}ICCmAt#N(AVX*?uZEJj(GcK<( zeNePEdM5j$Q*)~isNUUeBz|Y=?H~uYz193WA1pRJInph;G_OYE!-B^x60%kz5&{g? E0Cfp(OaK4? literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tools/tool-sprites.gif b/docs/extjs/resources/themes/images/default/tools/tool-sprites.gif new file mode 100755 index 0000000000000000000000000000000000000000..2b6b8098610bd6fe8e0d140e91032bdf49a562c9 GIT binary patch literal 5421 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 aAvIb&vGk?1#~7_f{bJ2zyB-JxsQnl3W4iMI literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tools/tools-sprites-trans.gif b/docs/extjs/resources/themes/images/default/tools/tools-sprites-trans.gif new file mode 100755 index 0000000000000000000000000000000000000000..ead931ef617ac8520a24a263abb456ebc1bcd54e GIT binary patch literal 2843 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 Tp!SptOZP1+i|hOQ&QAXWrjri- literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tree/arrows.gif b/docs/extjs/resources/themes/images/default/tree/arrows.gif new file mode 100755 index 0000000000000000000000000000000000000000..1dcb810841083d95b9b5ea2957364e60d110f9c0 GIT binary patch literal 617 zcmci9|8EO%9LMqNIp*8Cj)q~_*y`I_Upg{b_5(3OB!nNN^HURk^P7YpOX*x!RmCWh zCXKB0myt-wk}mwf)~d!PvBgsBbk)0dy}S1M<-WW>cXa=RXC6Piet(@fdA#eewFlE< zV||#xV6a#$&7TBgL@-7LQ$#RD1?!Y_Js~?B4w58&K3^aZ2nK_pP$(P@+mkSqmWDF$ zGA#u&@QQ*E1;dp5nv#cU`3((kYqAiHMw7|pXBLffD8ivQ3ttLof`bWO`B9Lki)flh zKY296qXZAXcu1BYQ9`q2C6!8Lv)Oz;&oB(jvU4T)U55EGq$<jMRrynaOa-Vaq-(pX zWCVp06uJtupyUL!ARtCSSy9P}%EBU*6M+#?UQ!uJWktk^h?P{XMpk*AFN(lRP?De^ zqJpdzW%ciWuT>&67-qvduv&|sV0B|RZ1!8X9sPGm=YZ?3`<~~%_rb$QgO8v1o_bFo zeP-W$-f!<&zSUo^-REss>D-GGYrGrky8G+RtG9R>FwD6dZ(5@Fti|y|?`;QGb-G72 zAIP2fw)I4dyAjvn#+YsY3bSkSyK~1>TQlD78rRJpjK#kVP&By<Z`-)6b=_s!aOR`? z;>b1Qxw+VdJ;zMMm6o$NCpDKMT4H4IlwPY@+R-^<ebMXQbj06;x92>K#P+^-U-8~x P{CU^aTq0!FVcq`#CX}cg literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tree/drop-above.gif b/docs/extjs/resources/themes/images/default/tree/drop-above.gif new file mode 100755 index 0000000000000000000000000000000000000000..30d1ca7107816233884d23239dd76fce79237fe5 GIT binary patch literal 911 zcmZ?wbhEHb6krfwXlGzB^-Oj%*Y>c~334<Jb1_x$Sdd;dHM?$RN$dQY-evuD33Ga~ z7EZ`pJGXq}f{N=$6CPj5dH<+l#gh4Z*EX$RzkdJz{j*mdIJlwZ{Q2|u@8AFb|3AYh z7!84;69S4qS%8lH&!7WxGAK_laO5zUa>!T+I5ReJa7x*DTyS#YWmWQ8@*yChwS&o6 zrsT(mM-FYgx*h@@4;QobG08Hm@c7Wg%*HKZQ}Uv~iG_ooBg3QNK|^B;FB^}5K!V!o j#p<qME|o!ty_V=Dp7QYsZuXsHRr!lWYs!nm4Gh)*79d!Y literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tree/drop-add.gif b/docs/extjs/resources/themes/images/default/tree/drop-add.gif new file mode 100755 index 0000000000000000000000000000000000000000..b22cd1448efa13c47ad6d3b75bdea8b4031c31e9 GIT binary patch literal 1001 zcmZ?wbhEHb6krfwXlG!sZ8LT1HFNH_aOtsj?X~gjxA*9E^z3&Ep6U}i%{O4CWB5GR zxH(~o^CD6fgr+PAPg@j`zBoE{b!f)w;OtcqS!<$mRz>A)jmQU~$dc{RCEH^Pc0?BK zj4s|4Q@Ag_Y)yK_x{UHY2^CvX>NjQ8>`JNKlUBPgy>f3}?ar*)o!Rv}a|;e8R~}5M zI+k5?IJ@p(X5I1prmcC+Tl3ns7k2C@@7Z0}wX?EwUq$b}>dE`-8_$%sovdm*S<`y9 zvg=S~|DoE>6ZKu^Yp3pS>N(xmcc!K9QuCyv4O0&^O+Vf`{Y>lRvmG-|x6L@yKI2T+ z?1R&1ADl7ea@VxWol~!LO}o-P{c88ji`{c?Oj>eo%Chs*mR*>(;O5i?H>WMVJ$u!a zxvQ_tS$1N<@{<eK-(R}^{<6(Cmu>-~Tgx`xUa|S^%B{CoY`?W?%iUF5@2}Z*cg>Eg z>v!B;zx&SmUDr15xw>=vgZ29!ZQJ`~+mSmvj^5pQ^4^hC_l_QYap3f`!)G2GJNw}H zxtAxeygq;Z-KCo^FW&ih<H4spkKaCg{O-~74^LlweD?bD%lF^j{Qv)-VHD6Z1QdU= zFf%Z8Gw6UU0p$q>j$;hsoH8C8796zp$T+b>@c4oQ4ptl9{CxcUY?nYS7uzPr^nkf~ zF-KnfWK`sLl+9v^jSOlzC8As$;v$iu&bdH0ut_86$zxX@GwwqiGMCbLCdz4)g$X=7 zcxoaWQ~HIKhmx0vy2>O}Xevx#ky5l?_wGr-qtgtHrgJ<B4>}!+;FF#5#6#i2*%nh> zyAFx!#AZoGf3_x%!Zyuz9to2P8w(l~<k^)knHUB(c}j9IJP|qa*@00&H?n}mV8KmA S2{u*^g@#8PwjOL?um%9^7FNXo literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tree/drop-append.gif b/docs/extjs/resources/themes/images/default/tree/drop-append.gif new file mode 100755 index 0000000000000000000000000000000000000000..b22cd1448efa13c47ad6d3b75bdea8b4031c31e9 GIT binary patch literal 1001 zcmZ?wbhEHb6krfwXlG!sZ8LT1HFNH_aOtsj?X~gjxA*9E^z3&Ep6U}i%{O4CWB5GR zxH(~o^CD6fgr+PAPg@j`zBoE{b!f)w;OtcqS!<$mRz>A)jmQU~$dc{RCEH^Pc0?BK zj4s|4Q@Ag_Y)yK_x{UHY2^CvX>NjQ8>`JNKlUBPgy>f3}?ar*)o!Rv}a|;e8R~}5M zI+k5?IJ@p(X5I1prmcC+Tl3ns7k2C@@7Z0}wX?EwUq$b}>dE`-8_$%sovdm*S<`y9 zvg=S~|DoE>6ZKu^Yp3pS>N(xmcc!K9QuCyv4O0&^O+Vf`{Y>lRvmG-|x6L@yKI2T+ z?1R&1ADl7ea@VxWol~!LO}o-P{c88ji`{c?Oj>eo%Chs*mR*>(;O5i?H>WMVJ$u!a zxvQ_tS$1N<@{<eK-(R}^{<6(Cmu>-~Tgx`xUa|S^%B{CoY`?W?%iUF5@2}Z*cg>Eg z>v!B;zx&SmUDr15xw>=vgZ29!ZQJ`~+mSmvj^5pQ^4^hC_l_QYap3f`!)G2GJNw}H zxtAxeygq;Z-KCo^FW&ih<H4spkKaCg{O-~74^LlweD?bD%lF^j{Qv)-VHD6Z1QdU= zFf%Z8Gw6UU0p$q>j$;hsoH8C8796zp$T+b>@c4oQ4ptl9{CxcUY?nYS7uzPr^nkf~ zF-KnfWK`sLl+9v^jSOlzC8As$;v$iu&bdH0ut_86$zxX@GwwqiGMCbLCdz4)g$X=7 zcxoaWQ~HIKhmx0vy2>O}Xevx#ky5l?_wGr-qtgtHrgJ<B4>}!+;FF#5#6#i2*%nh> zyAFx!#AZoGf3_x%!Zyuz9to2P8w(l~<k^)knHUB(c}j9IJP|qa*@00&H?n}mV8KmA S2{u*^g@#8PwjOL?um%9^7FNXo literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tree/drop-below.gif b/docs/extjs/resources/themes/images/default/tree/drop-below.gif new file mode 100755 index 0000000000000000000000000000000000000000..85f66b1e584aece5a5d6d4cf062b8c1f63edce97 GIT binary patch literal 911 zcmZ?wbhEHb6krfwXlGzB^-Oj%*Y>c~334<Jb1_x$Sdd;dHM?$RN$dQY-evuD33Ga~ z7EZ`pJGXq}f{N=$6CPj5dH<+l#gh4Z*EX$RzkdJz{j*mdIJlwZ{Q2|u@8AFb|3AYh z7!84;69S4qS%8lH&!7WxGAK_laO5zUa)@LcY-(xbFpY57A>eSRT}sa)VS__s8w&@Y zgu;q|!z~;Fasmw<8xA%wGBG*Ccx+O2Y*vXZDtTe_=t!5iao(F9ACgZ@)bm{w(wUgh k*e9SZBf7&RvvH|ppWc*{Usi^4=^EOswG7BU)WBd303hyMjsO4v literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tree/drop-between.gif b/docs/extjs/resources/themes/images/default/tree/drop-between.gif new file mode 100755 index 0000000000000000000000000000000000000000..5c6c09d987cf7cee99cf1baec891f85e7477cc02 GIT binary patch literal 907 zcmZ?wbhEHb6krfwXlGzB^-Oj%*Y>c~334<Jb1_x$Sdd;dHM?$RN$dQY-evuD33Ga~ z7EZ`pJGXq}f{N=$6CPj5dH<+l#gh4Z*Ea3nzkl}10|z&>oIij5|Ns9CqhK@yhFS<H z{$v3<`9FgW$l;(o!N8HhV8|g7v9PJ7k;5>=VTXXjp>_!!i-ZjhjBP9&d=d&P1P-@w z2*?REbZj`-z{teJvFE@96*ex`7^N1;;s=LXIk{il(fr(WZkkH%E}e=3)qp;}RJS=1 ZACr#t%8J+VSOzWgoT4>Vi<g7J8UQ~_Qo8^E literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tree/drop-no.gif b/docs/extjs/resources/themes/images/default/tree/drop-no.gif new file mode 100755 index 0000000000000000000000000000000000000000..9d9c6a9ce1307c5ba072f08bf77d998bb1b716cb GIT binary patch literal 949 zcmZ?wbhEHb6krfwXlGzJz`$^jh2@BVz)=yA<1#WQRaDNJn4Gt<xe^d?H6-L_O3JN_ zj5`GdcS}m1OqlR|&YYJ^mb~7u;q8tc@Am9@f8fA}BS$`-IPvMsnXfl)e1GuZ$CD>N zU%dGJ;lrOVU;h61@&EsShEXsY0)sdN6o0Y+UH6|s2joUjo?zgZ#9+@MbEA=|m5*7N zuP1?_;V=Wcmd2kAjEoFSyb3l63JeWQEzG)l4<-aOJF{^!n#_11;LyO$#4EyJxnXG= zBd1*n!vlvz??xWBngt9APKV|*$upc#SeW74&N(&d!GU0fOO1}n=k{oQNIS<b7{xSW o#)DLkb`|z44+e&(2fD<K^WOX@R60COK-Eu0<6u*JC(vSR0BG)Y<p2Nx literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tree/drop-over.gif b/docs/extjs/resources/themes/images/default/tree/drop-over.gif new file mode 100755 index 0000000000000000000000000000000000000000..30d1ca7107816233884d23239dd76fce79237fe5 GIT binary patch literal 911 zcmZ?wbhEHb6krfwXlGzB^-Oj%*Y>c~334<Jb1_x$Sdd;dHM?$RN$dQY-evuD33Ga~ z7EZ`pJGXq}f{N=$6CPj5dH<+l#gh4Z*EX$RzkdJz{j*mdIJlwZ{Q2|u@8AFb|3AYh z7!84;69S4qS%8lH&!7WxGAK_laO5zUa>!T+I5ReJa7x*DTyS#YWmWQ8@*yChwS&o6 zrsT(mM-FYgx*h@@4;QobG08Hm@c7Wg%*HKZQ}Uv~iG_ooBg3QNK|^B;FB^}5K!V!o j#p<qME|o!ty_V=Dp7QYsZuXsHRr!lWYs!nm4Gh)*79d!Y literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tree/drop-under.gif b/docs/extjs/resources/themes/images/default/tree/drop-under.gif new file mode 100755 index 0000000000000000000000000000000000000000..85f66b1e584aece5a5d6d4cf062b8c1f63edce97 GIT binary patch literal 911 zcmZ?wbhEHb6krfwXlGzB^-Oj%*Y>c~334<Jb1_x$Sdd;dHM?$RN$dQY-evuD33Ga~ z7EZ`pJGXq}f{N=$6CPj5dH<+l#gh4Z*EX$RzkdJz{j*mdIJlwZ{Q2|u@8AFb|3AYh z7!84;69S4qS%8lH&!7WxGAK_laO5zUa)@LcY-(xbFpY57A>eSRT}sa)VS__s8w&@Y zgu;q|!z~;Fasmw<8xA%wGBG*Ccx+O2Y*vXZDtTe_=t!5iao(F9ACgZ@)bm{w(wUgh k*e9SZBf7&RvvH|ppWc*{Usi^4=^EOswG7BU)WBd303hyMjsO4v literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tree/drop-yes.gif b/docs/extjs/resources/themes/images/default/tree/drop-yes.gif new file mode 100755 index 0000000000000000000000000000000000000000..8aacb307e89d690f46853e01f5c4726bd5d94e31 GIT binary patch literal 1016 zcmZ?wbhEHb6krfwXlGzhFH%vfSJo_7)vQuAsWC9EH&km;*6LR^?KiY<wYKlJw(qsJ zpJ`*gP~B&`t<yqdmxacj8`J~0>xFJMjooS=wa?sdwqwu&r?{0KDI0upwuR+x56{~g zkq<(VSvvztwnvw2k15z6Ua%vwaA$PU&gkM@F@^i$%l9PIZcnS(l~TJWt#)5}{f^9- z1J*HzZPSi=W*zp-IqIEx!mH#^WYOu+{6mTPhZFOT08vuj(d7JNDFp|U3y&lh98WDi zo>p==rRYRP$%%~86B%VEGs{k8RUS;KJD6E_Jiqc}cGa2O`cnnX`*Pb46}28MZ8%lj zaHgpFTzUJ+%FZKY-6tw0oU5O>vwy;#zG=ssCm!gZcDil)nbs*M`lp@kn035;#_6_M zr`l(nX`gwvYwo%3nHRffUg(*1rFZuAiSsW_n15;F+#8b?UYok``qahOr>(v;d-dhn ztL{u+dw=%2>kHRkU$E}Z()D+iZN9m5<K5+3ZZ6$&YuTpTE4JQVvE}ZnE%(=Ky}xGL zg{|8zZry%!>#o~d_ub#R;qm;f57%vfxPJS?4f`H%+y8jS!N=PUJlT2r&He)i4xD~_ z;M%)OH{V=&_T};0@2@}p{P5-1r$2vx|NZy(|Ns9CqkyasQ2fcl%)rpgpaaqk$`cG6 zR~e)^Wjr=4aC9<_3F%-wzQDoVIAhB~=k&AfoLyW-Re?t*%+d(FBC_aGf`Fq$D3_+D zkjse)Dz(dOBqZEh6jdE-UYxkdEGT3zv4dmE!Dl=ZWi9e<M3iU>%{1g;@!G-s^!P$| z8==@$A<sHwn3<HXM1D%Sr0N;HdqRStdV>R3<{5^GPA?~^>Pma%d|c$9FpH<AXHEf= zXAc{n;-`omMgmU4wi-S?A1*Mq%oSth;IcZ9;y*)FYu^J;Muvcc4jg(7m5<rFnVITk U%ua1eXlP&wOL?s(A;4e_0Qp#8fdBvi literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tree/elbow-end-minus-nl.gif b/docs/extjs/resources/themes/images/default/tree/elbow-end-minus-nl.gif new file mode 100755 index 0000000000000000000000000000000000000000..f50bd40ae3db3333f583681ae0b875e2a83cadaa GIT binary patch literal 151 zcmZ?wbhEHb6krfxc+AIO=#}jB-)YLyy>ozQ?Xjg>udUpBYwxjRJ5N111_ak$-+1`( z`TOs$KmUgS#h)yU3=I4XIt)MnGJ}D|<-<wO)q5>opRJB_vEXSch-q28ikEr8>dQ*& zr*1lvbmi&;28RdllqNhC>tgCx%Fvy_p*nG)g9O)&r%wdl%(Hp0p+cvVfx#L8`j$#l literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tree/elbow-end-minus.gif b/docs/extjs/resources/themes/images/default/tree/elbow-end-minus.gif new file mode 100755 index 0000000000000000000000000000000000000000..55d8a0fa27324b7f4e38c26336106ea63a8d20c3 GIT binary patch literal 157 zcmZ?wbhEHb6krfxc+AIO=#}jB-)YLyy>ozQ?Xjg>udUpBYwxjRJ5N111_ak$-+1`( z`TOs$KmUgS#h)yU3=I4XIt)MnGJ}D|>%&P+;k_2G)3^V>tM0{}$k(hOBl&Po{$U2) zHzzoHcN%V%*me2<qlQ@HobCtDqBXc2yBxL^C@qj=bZ#^d*>~~eL65ZFb1$}72{STS F0{~EqN}K=y literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tree/elbow-end-plus-nl.gif b/docs/extjs/resources/themes/images/default/tree/elbow-end-plus-nl.gif new file mode 100755 index 0000000000000000000000000000000000000000..96f8d723942d4f0c5e23e2fdf9f64d5d414870f7 GIT binary patch literal 152 zcmZ?wbhEHb6krfxc+AIO=#}jB-)YLyy>ozQ?Xjg>udUpBYwxjRTTeVb1_YO$U%B`3 z`TOs$KmUgS#h)yU3=I4XIt)MnGJ}D|^}|We)q5>opRJB_vEXSch-q28ikEqT_64o= zQ&%x;mMAr~Xh@h)E@%<e(7NctVvZ>82Bw2LM$6iowpm(o>{suv@X_;DVz34Pv!F%; literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tree/elbow-end-plus.gif b/docs/extjs/resources/themes/images/default/tree/elbow-end-plus.gif new file mode 100755 index 0000000000000000000000000000000000000000..a5c62fab32adca39a885e19ab9230d21a9cb804d GIT binary patch literal 159 zcmZ?wbhEHb6krfxc+AIO=#}jB-)YLyy>ozQ?Xjg>udUpBYwxjRTTeVb1_YO$U%B`3 z`TOs$KmUgS#h)yU3=I4XIt)MnGJ}D|=fg=&;k_2G)3^V>tM0{}$k(hOBl&Po{$U1P zo)cWXJM|Cfu-#34z#!4<c+T~~1V*v0rU^<DbQ!o>Oq3H+cw0Y|6j{uQT)d^~>^T<( G25SI?qe(ab literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tree/elbow-end.gif b/docs/extjs/resources/themes/images/default/tree/elbow-end.gif new file mode 100755 index 0000000000000000000000000000000000000000..406a88dff55195c8f8fbb65c37a10280e9689e25 GIT binary patch literal 70 zcmZ?wbhEHb6krfxSjfcS^xx^&v19+iK=CIFBLfiVfC!L01Cw}5e&gx43+Bx!j0#)d SwtMyY(nlWCo>_`ASOWlykQ)2| literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tree/elbow-line.gif b/docs/extjs/resources/themes/images/default/tree/elbow-line.gif new file mode 100755 index 0000000000000000000000000000000000000000..e25ed03fb6cebb2a0f891c0730f50977246ddace GIT binary patch literal 72 zcmZ?wbhEHb6krfxSjfcS^xx^&v19+iK=CIFBLfiVfC!L01CwM+e&gx43+Bx!j0#)d Tw)?qX<1KZol+K0jj11NQyrLT7 literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tree/elbow-minus-nl.gif b/docs/extjs/resources/themes/images/default/tree/elbow-minus-nl.gif new file mode 100755 index 0000000000000000000000000000000000000000..f50bd40ae3db3333f583681ae0b875e2a83cadaa GIT binary patch literal 151 zcmZ?wbhEHb6krfxc+AIO=#}jB-)YLyy>ozQ?Xjg>udUpBYwxjRJ5N111_ak$-+1`( z`TOs$KmUgS#h)yU3=I4XIt)MnGJ}D|<-<wO)q5>opRJB_vEXSch-q28ikEr8>dQ*& zr*1lvbmi&;28RdllqNhC>tgCx%Fvy_p*nG)g9O)&r%wdl%(Hp0p+cvVfx#L8`j$#l literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tree/elbow-minus.gif b/docs/extjs/resources/themes/images/default/tree/elbow-minus.gif new file mode 100755 index 0000000000000000000000000000000000000000..a7287961bd3f1eb0269c1ac04f18176dc92e9722 GIT binary patch literal 159 zcmZ?wbhEHb6krfxc+AIO=#}jB-)YLyy>ozQ?Xjg>udUpBYwxjRJ5N111_ak$-+1`( z`TOs$KmUgS#h)yU3=I4XIt)MnGJ}D|=fg=&;k_2G)3^V>tM0{}$k(hOBl&Po{$U2) zHzzoHcN%V%*me2<qlQ@HobCtDqBXc2yBxL^C@qj=bZ#^d*>~~eL65Xvw}qcA*DiBm HV6X-N=kiOC literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tree/elbow-plus-nl.gif b/docs/extjs/resources/themes/images/default/tree/elbow-plus-nl.gif new file mode 100755 index 0000000000000000000000000000000000000000..96f8d723942d4f0c5e23e2fdf9f64d5d414870f7 GIT binary patch literal 152 zcmZ?wbhEHb6krfxc+AIO=#}jB-)YLyy>ozQ?Xjg>udUpBYwxjRTTeVb1_YO$U%B`3 z`TOs$KmUgS#h)yU3=I4XIt)MnGJ}D|^}|We)q5>opRJB_vEXSch-q28ikEqT_64o= zQ&%x;mMAr~Xh@h)E@%<e(7NctVvZ>82Bw2LM$6iowpm(o>{suv@X_;DVz34Pv!F%; literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tree/elbow-plus.gif b/docs/extjs/resources/themes/images/default/tree/elbow-plus.gif new file mode 100755 index 0000000000000000000000000000000000000000..ae41983cca2f762abffb8638a43869859a276e44 GIT binary patch literal 160 zcmZ?wbhEHb6krfxc+AIO=#}jB-)YLyy>ozQ?Xjg>udUpBYwxjRTTeVb1_YO$U%B`3 z`TOs$KmUgS#h)yU3=I4XIt)MnGJ}D|_rpm|;k_2G)3^V>tM0{}$k(hOBl&Po{$U1P zo)cWXJM|Cfu-#34z#!4<c+T~~1V*v0rU^<DbQ!o>Oq3H+cw0Y|6j{uQTpXw|H*T}0 HAcHjk$M;B$ literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tree/elbow.gif b/docs/extjs/resources/themes/images/default/tree/elbow.gif new file mode 100755 index 0000000000000000000000000000000000000000..201c413e388369bf82b1a1289baf47fa3cc06f40 GIT binary patch literal 73 zcmZ?wbhEHb6krfxSjfcS^xx^&v19+iK=CIFBLfiVfC!L01Cvxse&gx43+Bx!j0#)d UwtMyYQa?4X6w5`|G{qRK0oEWJ9RL6T literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tree/folder-open.gif b/docs/extjs/resources/themes/images/default/tree/folder-open.gif new file mode 100755 index 0000000000000000000000000000000000000000..361e1be3e4b28bf8fc4e39b60f66dc805c5b7835 GIT binary patch literal 356 zcmV-q0h|6uNk%w1VGsZi0Hr+uF-l`X|3aB(0h(w6oN5G~YzCli2%>Nbqj3wQatx(& z4X1Svta=o%ei*ZX8?}NRw}c<Mha$a-CB~W=#+n+!k1EKOFv*rN%a}9FnKa3uA<v>F z*SJ91zii^OL*l_u{nc>)+ja2ddjI5ql%>6#rM<Vex16oUrM1?nz1qFT#<|Mm|JQ{7 z>xBRBiTCh{|M-*t|C#^)od5r&#KgqK#l_9d&C$`(#@6fD;qmA1_v`cj`uqI<|NsC0 z|NsC0A^8LW002J#EC2ui01yBW000Joz@KnPED|#r%*A3n_MSXmrTNSBWLRuZ5`jD% z4I$>5%|4%u+wanYx!-WvqBg19@AXd$L7T+NWicHSECzjlaBng%6CedNKYlKgl#??W z9t4nnG9#X!BQqQu1CWt1A*rgVA`}8OLK6zJvk3<V1q1^oHbXWvz`?@3RK><cK>#~t CowKL_ literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tree/folder.gif b/docs/extjs/resources/themes/images/default/tree/folder.gif new file mode 100755 index 0000000000000000000000000000000000000000..b2fd81a12d520bb45ce681ad14801a3e9d2ffedb GIT binary patch literal 351 zcmZ?wbhEHb6krfwSZc;#=#}jB-)Uw#<E#v(Iaw_8a@ZE+aV#$6URun%yp(@MnZW8w z;Wbqv>uSU{)Jbe^l-}ATyS+tzSG&^QF4Y6Q8i)F|j!x1&K1Kh;RD+Y#3{TH6J~Pwg z_V%FL+YA3+$^U=5^#7CkDNFax0iw0XmTtYaa__CZ$Bykh_2mEi&i_9q|NlSp|NlAv z|L;0*;K1qAr_Y=@bNTY+YuBzFyY~9V!;jD3e}Db?KYpP2lZBCi!Ja{f0SG{TVqmK| zFu%Y<N61{-mo3@m);yiCr9W?%SVZKcD|I@^@hyDjsW(}2W4znetljrl9eG_Ic=LV5 z?}J}AuLx>rY|>(@5!KS@?CREHtr5{um^68c7E6t=mi+8FbG4XjgtX+AEM2C>RBRv5 f$IH#d!Oq6Y!lY~9Y@oM$&)yv&2M)SAGFSru#-z0M literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tree/leaf.gif b/docs/extjs/resources/themes/images/default/tree/leaf.gif new file mode 100755 index 0000000000000000000000000000000000000000..445769d3f863fff85bf8dae9e50ca2fbdd2d580f GIT binary patch literal 945 zcmZ?wbhEHb6krfwXlDQcQ_o~GuN3{H6Nag0EsGx6l|6PSd+b*I#H;qP!+!_A#wTHI zPb1o&CiOkbneseu`t#JOpR;CuEt~zKYW~Z@xnJuSzARt#t#<j3hK7d8i?&Z&x@*?T zee>2GZdv-WZP}~tRj*oB|LorIYr@vw({}!uwfFDhO(&LbJ2U^lzeR`sUwH800T8|T z00#d*{P_PLi2nZvyK9sf4FQ^mfZ|UUW(Ec>1|5)1pgh6A(Z?XlA>*-O!NF!$M-7&b z2M@Kd^GWGABrIrf5YP;mqG0Ic!oef1<<a5rV38BQh=N7Jga;0d)0tW3bvSNLJ1edq z!y%BN#MUt1KJ!t@L8XQRd}jI2QUXI1+Gj~F^6K4nXhjpRXD;8?RR`4r7@VdTos~+~ jxV+J1x!+o?4Xb@6ETcC>ENsed*j@4Yk?RR_1qN#Xfm)wA literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tree/loading.gif b/docs/extjs/resources/themes/images/default/tree/loading.gif new file mode 100755 index 0000000000000000000000000000000000000000..e846e1d6c58796558015ffee1fdec546bc207ee8 GIT binary patch literal 771 zcmZ?wbhEHb6krfw*v!MQYQ=(yeQk4RPu{+D?cCXuwr^cCp}%d_ius2R?!0jBXnAQ) zOH<|l|Nj|aK=D7fpKD04vtxj(k)8oFBT!uNCkrbB0}q1^NDatX1{VJbCr|b)oWWMT zS%hVC<e5zgOcIlpc`kLa*!o;M_#F$wy(Jnw%^xoO{@do#FR1axvu?^Eg~=WXT$f%h ziRw+0<X~ye?)5wTu<&NHn6>	~NwO_yO%;SvZ5MdNYf|QNy-I*%yJaj+uTdt+qbZ z4E`Fzb8m}I&!N8OKmWEcCmrLs^Hs&3i)mt@hQVdcqghkaBs*D}tG_lKew4?rTjzIZ z9tSone1TS+TR7tu^CunG)Y7Jg#sw#)sG9C!c0I%LEzP)9;hqRf&)s$D8d5Db{TBs% zgl0~5QQ91luq4Q9tJgt4QLbaxZvAaKeCM9!oy85dg4k>TdBSVqjHub_PG=PO&J-rx z7oYTuF+kH|tG-UK+EkUhDjYx?zW?T|lx><M;PP#XNUM@C2hfJD#O#hF$!^x>+aOQm zzL$v$zBLo4Cj=G&tw{H}dW?tlTkS)SY4<#NS92z*EY-MMB6Ftp`R=*=*Ev7cS+X%W zMCur^FdlokL}1Y+&aasU2J4#EOuNlnb9CmqgLCGTSY!1BD42pkHY^XidQ5=>YQx%` z*%Pm9D!CkBu&tMWm(%-ejACVWGS2RX5=QOJ$1*tr7F}F+*-OA+Ly&Isg|AEuUYicA z#%IG6kPXkHt{zk2M6zK@Vu^4Q(1zE$?yY6M!^&jQ+2^E?!p7{g*|X6}vuRC3p@jk0 W117c83?+LXEZI4G$p&LV25SKE>nb+@ literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/tree/s.gif b/docs/extjs/resources/themes/images/default/tree/s.gif new file mode 100755 index 0000000000000000000000000000000000000000..1d11fa9ada9e93505b3d736acb204083f45d5fbf GIT binary patch literal 43 scmZ?wbhEHbWMp7uX!y@?;J^U}1_s5SEQ~;kK?g*DWEhy3To@Uw0n;G|I{*Lx literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/util/splitter/mini-bottom.gif b/docs/extjs/resources/themes/images/default/util/splitter/mini-bottom.gif new file mode 100755 index 0000000000000000000000000000000000000000..c18f9e34ac1f4d06525592c5ec25783921e7ab1c GIT binary patch literal 856 zcmZ?wbhEHbRAyjhXlGz>c6N36?{M+r#W!!>FpPrH5Ex-0p!k!8nSp_kK?me-P@Z7m zFlAunknz~C;9xU5Gl#^14GRyqF(|p!cuZW_z#t(WR-;k)_;9y`aa9RNLW=VQMPsFy Kokpn+4AubBJRUOu literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/util/splitter/mini-left.gif b/docs/extjs/resources/themes/images/default/util/splitter/mini-left.gif new file mode 100755 index 0000000000000000000000000000000000000000..99f7993f260b374440c5c8baa41a600eca99d74d GIT binary patch literal 871 zcmZ?wbhEHbWMxohXlGz>c6N36?{M+r#W!!>FpPrH5Ex-0p!k!8nSp_kK?me-P@Z7m zaA9EP;893e(9p!fE+S&!pm?~AUD|4jgy5sYono4CYdSV2yD|teHi#$`Jz<zAZ@KEu aiJ--&dkk#zd{zV~IJdAA3h{6-SOWlJm?6yo literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/util/splitter/mini-right.gif b/docs/extjs/resources/themes/images/default/util/splitter/mini-right.gif new file mode 100755 index 0000000000000000000000000000000000000000..5b13c5a8b91b86e33d5def2ed29b4e348a5795a2 GIT binary patch literal 872 zcmZ?wbhEHbWMxohXlGz>c6N36?{M+r#W!!>FpPrH5Ex-0p!k!8nSp_kK?me-P@Z7m zaAja+k&tj`IMB$%CgZbW!-Ix)HhHZSi@+q84iWvZBN>K^-5Dep8%#8W7*0-Pa>$EW bxpC?7J_E~BDJKIG4z;p#3-JgDFjxZsq+}v; literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/util/splitter/mini-top.gif b/docs/extjs/resources/themes/images/default/util/splitter/mini-top.gif new file mode 100755 index 0000000000000000000000000000000000000000..a4ca2bb20aad89264b9022fee88ee29154dfb192 GIT binary patch literal 856 zcmZ?wbhEHbRAyjhXlGz>c6N36?{M+r#W!!>FpPrH5Ex-0p!k!8nSp_kK?me-P@Z7m zFlAuo;89qx;9xU{u$s(?fCCNf0?JM-3L76eGxBgot>IYk*sW87)#{JM#>MWF#5uKM LPHswdV6X-Nu*4oA literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/window-header/window-header-default-bottom-corners.gif b/docs/extjs/resources/themes/images/default/window-header/window-header-default-bottom-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..5daef146a980bce2254ac6cabf837233a67c1911 GIT binary patch literal 1664 zcmZ?wbhEHbWMz<J`2L?^(S{@EZah15?%twJ$Ijh)@$cWiH=lkzdhzAPgLenc-C4Kq z+>%Yl4xGEU<-ny)`z~xcaAC`#OB?oGdiCMgjYscx9lN&c#EmDfzC3#M<<+NO|3|@S z2n@9lQ2fcl$iN`Upu+$Jpghq&nj?l<9FDq|njydu%fQGXBC%k>!DbF&t&ofbiH92n z6r~I}5|R#fiRiL*WL#iq=#%HJVzE5H(AdPKqoAR|(8S2XVib^(aL}QRhe<|9!{fk# ea}2_KE(!(*9he!}_)JzzNOWXjG-qaFum%88(Ez&u literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/window-header/window-header-default-bottom-sides.gif b/docs/extjs/resources/themes/images/default/window-header/window-header-default-bottom-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..5188482551e034a7ac068cd4346c1c4c6e47c11e GIT binary patch literal 1624 zcmZ?wbhEHb<YEwH`2L?^(S{@EZajPQ>DT{JFd70QF9Z~SvM@3*Ff-^d00AgZw2$V9 zk(UZaeT)bJ4pRn34i1M63m6!fxTRby0umdVIc1%4Run8c+|HvPHD$)c<Re|Oj&(5> TlODKD6!BbUB3YE^z+epkDl89i literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/window-header/window-header-default-collapsed-bottom-corners.gif b/docs/extjs/resources/themes/images/default/window-header/window-header-default-collapsed-bottom-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..99eeb6d09dcb919f19af410dadfcc86ec07f676d GIT binary patch literal 213 zcmZ?wbhEHbWMz<JXc1>vwBg9P8_y1%ySHf5v2(Xx{QLLs&8J_FUVORn;N5|9ch>DY zw`9|?1Ly8-IdEyyz6+ZUT-b8x(uRGPUVZp=<I%fa$FA)<apTFWFaL1^#h)yU3=HxN zIt)MnvXg-|NI{{?F>_wVs#R{c`yPEaJoO>)LZZQhMgcDFMJ5IU9bAoP5*h>SSXvmB wG<^B`gbr@dkYhfW=y2ipT`93<p9c{cJFhvn7#Nzcv^g*S6zMWWUXj5X0Cxj<K>z>% literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/window-header/window-header-default-collapsed-bottom-sides.gif b/docs/extjs/resources/themes/images/default/window-header/window-header-default-collapsed-bottom-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..5188482551e034a7ac068cd4346c1c4c6e47c11e GIT binary patch literal 1624 zcmZ?wbhEHb<YEwH`2L?^(S{@EZajPQ>DT{JFd70QF9Z~SvM@3*Ff-^d00AgZw2$V9 zk(UZaeT)bJ4pRn34i1M63m6!fxTRby0umdVIc1%4Run8c+|HvPHD$)c<Re|Oj&(5> TlODKD6!BbUB3YE^z+epkDl89i literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/window-header/window-header-default-collapsed-left-corners.gif b/docs/extjs/resources/themes/images/default/window-header/window-header-default-collapsed-left-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..3b81c20367d57dd5d8016763bbf32aa9ee7ab92a GIT binary patch literal 211 zcmZ?wbhEHbWMz<JXpvx8wBg9P8_y1%ySHf5v2(Xxy!rI&6%c*+b>qRiYY*NXICXE+ zz6(n>9XoLD&Xz-0*6lmD<<O-q2QKY8cJ1H4e{Vkgdi3hcj$=2Ty!!GV2T=UU!pOiN z&!EEq1Ry&ZSOXLkx?CgKGFGk2>7Mmeqi+5up7~EhS|5pU9D3a3z{|z**x5llMqv^^ vV_*kIK*uR2R}F){lLt0P2>fZ1Ke^69SVtm8Kg@b97uQseDH{{&oEWSDl3;g# literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/window-header/window-header-default-collapsed-left-sides.gif b/docs/extjs/resources/themes/images/default/window-header/window-header-default-collapsed-left-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..931428d5531ff2cc1a2a3942d105843588d9643e GIT binary patch literal 70 zcmZ?wbhEHbWM>d!Sjfz<Xv2|nH=e!u^y~ls|B63Z7#SFt8FUzc03^@AB;L}*IPKI< Yz8VcP>(r%w-%lsbR<D!v5M!_g0DEH?4FCWD literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/window-header/window-header-default-collapsed-right-corners.gif b/docs/extjs/resources/themes/images/default/window-header/window-header-default-collapsed-right-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..66e8a9e60aced9f7e80663359b5c3f8f2ce12f50 GIT binary patch literal 213 zcmZ?wbhEHbWMz<JXpv%AwBg9P8_y1%ySHf5v2(Xxy!rI&6%c*+_2|Wy8xP(cICp2= zzH>`99XoLD-j)NGHtoBx>A;08hc0c{cj@21e{Vkgdh+VajYscx9lN&c#EnO<zWm1k zia%Kx85ralbQpjDWG4e_kb**&Yb0C7s&zTtvz}_y#c$@hFPiEqEXsLk(If|6E|$km z4%#6~)A<zx3pfI%ondy>Fz7pZV1tCfpQfF$jcOGJJK}VloHm58vbHdPPV|@|ugG8x E0FjAxP5=M^ literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/window-header/window-header-default-collapsed-right-sides.gif b/docs/extjs/resources/themes/images/default/window-header/window-header-default-collapsed-right-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..b2b6b79db4b3b9b27c8e9c931a81dfb21962e63e GIT binary patch literal 70 zcmZ?wbhEHbWM>d!Sjfz<Xv2|nH=e!u^y~ls|B63Z7#SFt8FUzc03^@AB<>=|)OPB5 XK$MYL)%`1CN#|>$Rm+my#2Bmrbw?NL literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/window-header/window-header-default-collapsed-top-corners.gif b/docs/extjs/resources/themes/images/default/window-header/window-header-default-collapsed-top-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..8886bde6e34411760067ded4e416c94c87fd390f GIT binary patch literal 215 zcmZ?wbhEHbWMz<JXpv-KaqBsE<JqBe_ZDq9a_-iPfB*iy`t<A3t1s6cyj!&C*sf#O z*6lmDV$ZcDn~ohgb#K$Y3vWLCdiCMgjR)_x9J;jSz@;sRuIxB=<Hn<RPhNfbj}0jP zWMO1rkY~_g00NMm46Gp!6uJT;*)mqG%eme6=)0x&r^u^}mQxi4xp|nTHVAZZH}W*i z)UadeOjL4+<>MDQctJys*^$%Bpz)6#7Z;n7u#Hp{hfP7PfSy1XL(u{oX?`zxMFwjC DF=22W literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/window-header/window-header-default-collapsed-top-sides.gif b/docs/extjs/resources/themes/images/default/window-header/window-header-default-collapsed-top-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..5188482551e034a7ac068cd4346c1c4c6e47c11e GIT binary patch literal 1624 zcmZ?wbhEHb<YEwH`2L?^(S{@EZajPQ>DT{JFd70QF9Z~SvM@3*Ff-^d00AgZw2$V9 zk(UZaeT)bJ4pRn34i1M63m6!fxTRby0umdVIc1%4Run8c+|HvPHD$)c<Re|Oj&(5> TlODKD6!BbUB3YE^z+epkDl89i literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/window-header/window-header-default-left-corners.gif b/docs/extjs/resources/themes/images/default/window-header/window-header-default-left-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..3c5f24235d9504f739fb96552f783848c43556ff GIT binary patch literal 1655 zcmZ?wbhEHbWMz<J`2L?^(S{@EZah15?%twJ$Ijh)@#fR7S3vaP*Nq47u042n;MBcM z`z|cmbnL*nJ6jH2S-0=pmP41e9JsXW*tLKE{=NC|>(Q$(JC5CW^6Ja~Q7{?;Lofss zf3h$#Fi0@yFaQB4PqdHbh#?q_qfVw;2ylcjFmi}QEJ!%Wz#*&^b7F&{Q!^_&*O3Ot zgUyT*Iu<Je92%RMI5=!}G%!4DU}6#QVqp+$aGK7UxXNax(SZ|_7+Gp~Ivo!kV-jK2 QN%*iS<IFT|W+nz}00-y;u>b%7 literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/window-header/window-header-default-left-sides.gif b/docs/extjs/resources/themes/images/default/window-header/window-header-default-left-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..8c0c187a97dd03b5c2a342ecfa8747351936d79b GIT binary patch literal 1610 zcmZ?wbhEHbWMdFw`2L?^(S{@EZajPQ>DT{JFd70QF9Z~SvM@3*Ff-^d00AgZw2$V9 zk(UZaeT)bJ4s`}b4h{!_28Sj_9zLCl2@emo@G9DcbWB)uxJyvi>xhNn;^Te7%uEc{ E0ACOa6951J literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/window-header/window-header-default-right-corners.gif b/docs/extjs/resources/themes/images/default/window-header/window-header-default-right-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..853c3134ff52baf893227d1e8f67dee127111070 GIT binary patch literal 1656 zcmZ?wbhEHbWMz<J`2L?^(S{@EZah15?%twJ$Ijh)@#fR7S3vaP*P|C-ZajE*;M|>c z`_3)dbnL*nds_}%+O+S&rUMtY9J;h&-=%;5{=NC|>&dGxHy*v)b?n-%6E_~c`tpAi zjE2CF3IWBREQ|~cQVco_Kmf`U?V~wjNJZeNW2qbh9H9)193l}55)LwO2y4Zh*r4dt z%*yUHg+s8xshiVKNoIpX0~;@^mdlO>jSfvrd@KrECOl+xVq%rZ;4#>o=Gv*Byv{|T Xv4M386PH3kgCjFDr<^GZ3xhQP)CK*u literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/window-header/window-header-default-right-sides.gif b/docs/extjs/resources/themes/images/default/window-header/window-header-default-right-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..0a31ccd83678ba6fd18ed3b02c3f4fa3a1540311 GIT binary patch literal 1610 zcmZ?wbhEHbWMdFw`2L?^(S{@EZajPQ>DT{JFd70QF9Z~SvM@3*Ff-^d00AgZw2$V9 zk(UZaeT)bJ4s`}b76}c828Sj#b~cTQf<&hlUP-Mf9EFdZ+XeN5j${}vKHewB%*0>~ E05VqyN&o-= literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/window-header/window-header-default-top-corners.gif b/docs/extjs/resources/themes/images/default/window-header/window-header-default-top-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..0f634a6c2883627e8d19606dda6e075b78a96670 GIT binary patch literal 199 zcmZ?wbhEHbWMz<JXpv-KaqBsE<JqBe_ZDq9a_-iPfB*iy`t<A3t1s6cyj!&C*sf#O z*6lmDV$ZcDn~ohgb#K$Y3vWLCdiCMgjR)_x9J;jSz@;sRuIxB=<Hn<RPhNfbj}0jP zWMO1rkY~_g00NMm46H5>6uJT;*)mqG%eme6=)0x&r^u^}mQxi4xp|nTHVAZZH}W*i n)UadeOjL4+<>MDQctOG;DDH!}sM_J635-#_Uh5N^1sJRWU+`}K literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/window-header/window-header-default-top-sides.gif b/docs/extjs/resources/themes/images/default/window-header/window-header-default-top-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..5188482551e034a7ac068cd4346c1c4c6e47c11e GIT binary patch literal 1624 zcmZ?wbhEHb<YEwH`2L?^(S{@EZajPQ>DT{JFd70QF9Z~SvM@3*Ff-^d00AgZw2$V9 zk(UZaeT)bJ4pRn34i1M63m6!fxTRby0umdVIc1%4Run8c+|HvPHD$)c<Re|Oj&(5> TlODKD6!BbUB3YE^z+epkDl89i literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/window/window-default-corners.gif b/docs/extjs/resources/themes/images/default/window/window-default-corners.gif new file mode 100755 index 0000000000000000000000000000000000000000..efae7da9c1ddc8cc43f3fb86aa8f5f51c6555384 GIT binary patch literal 1686 zcmZ?wbhEHbWMz<J`2L?^(S{@EZah11?%tLIm(JaK@#NK)8xP)Hd+=`2rejMs9XoXH z-hos1*6lmD?Zk~OhpueebK$_bI~(?0*mdH@t|Qkr?7Ot<*tItwe%*NV?$L`cuRi>G z_3786S6|+I`t|SMzfA`&Y&mr4|0oy@fk7Msia%Kx85k58bQpjDlqcFpbHpHyu2HAa zJOnt385lW4PAp6~$iN}26?0;PqEj;~I~NOM5+gH<f|P|uLSiE`Hyek6MgoH(6E};G zQGmlmCq{N*2LXeG#0G{IaWfYO4+rO_$(qbPI+6|tk55q0;?Y>pxTt}hvm&ZP>H!lQ X7mMB%kp+y088{V$0t6fk6&S1m4nO=6 literal 0 HcmV?d00001 diff --git a/docs/extjs/resources/themes/images/default/window/window-default-sides.gif b/docs/extjs/resources/themes/images/default/window/window-default-sides.gif new file mode 100755 index 0000000000000000000000000000000000000000..39edc88d118607eca8e572dc8af68748af6979e5 GIT binary patch literal 1776 zcmZ?wbhEHb<YL&z@clo-q76sR-FWuq)35)dU^E0qUI-}uWMO1rU}n%^00K~+XdlfH zBQF(<`WO)c9A_CAIXE0PEMQ<@;+Ar;2uN&b=9G2HSy8a)a66BF)RY+$laF-CI@ZNl zOnTrpQN(kZiDb~yW7BlJlcrQ&T6%n{apAR|mBMM~rkm8h`%@{LaejeEzn1B#Eh~bj z_%5{Ds<~C`>S~+CNvc_<uS3?y?#z?*3R`h=Nz}nU+udJQM{F&)e@eIen(p0giSL)q zJzcgwZg(x?^|R75K0Mgk{`jA1k9cA7(N@{ty*!qN@u$00x$A0X7C$>RPqTbpPvn>9 Y7iW96>z%FIntgRc@aZ%gO9cjN0I9%XwEzGB literal 0 HcmV?d00001 diff --git a/docs/favicon.ico b/docs/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..ea8c545bb1d618bee4f8a29cea87fcc19b43101f GIT binary patch literal 1150 zcmbV~-%C?r7{?zam=)1+?#FqL#!e2!kS&R%A2{1pT|_w%!XRN8(W0m>YV?D0{S-4D z-Go#y+RYH68T8x8GdJgiXb@PpL4Uxhi+L4%dyd;+;8{xV;d7q%ectEuocF*>RKt%X z5x-Rmts`;}Q5(Z4&J^<;$j^HX8;cn0(x~OgJ5<MPV(J+?BQrwYO}kvZH0kK3K3*#& zoE(kz8<<r`^Re21>j+^>4+U2(HYsQcS^e(gby)7vOMa7*s;TxNztk4?<Xg`O7(LYf znwhG_6&v1(Q<CT5K*Te0SZ|N`u`TRD>sbZv!S$#pTQQXq-KzAcIp&yf!}in-d%P2l zL>C&LbwM5XqUAzkRbP4?3|glS>DKrj*b@8TczyuRsUA3A^+A3cfb-pcIA88G_3Kkt zI~ufeuul)dp6q8Q$j(WK=@7)H(-1Q!I39)k@nCGlp*dk&xS5nc--0}QnZI+M>%tJ) z6^Pku5E+h{i#!kMLK{%c{H<S~z`Ynp)518r*CA53*|`UiW#;d2yrGM^OC4sek@J0< zgKsg7&dem#55o}Y`%toDP;w7+B{vcgxx2=Ft2%t&=VA2N`{g~n$x$?=#&jhcjVQV3 zKfQ88_VeW)JKj9bZ+|hmCa=N|Ec?ZCRQ=C#y;)>GR_gIzzR{C?;~Yt5jpr{E5M3%@ kc!^*s6#iI<elb57%|g&DfVP=&F+)I#Z(o}E$^2&i0-t;JJOBUy literal 0 HcmV?d00001 diff --git a/docs/frame.html b/docs/frame.html deleted file mode 100644 index 4d5473b..0000000 --- a/docs/frame.html +++ /dev/null @@ -1,82 +0,0 @@ -<!DOCTYPE html> <html> <head> <title>frame.js</title> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <link rel="stylesheet" media="all" href="rocco.css" /> </head> <body> <div id="navbar"> <h3>stomp-js - Implementation of the STOMP protocol in node.js<em></em></h3> </div> <div id="container"> <div id="background"></div> <div id="jump_to"> Jump To … <div id="jump_wrapper"> <div id="jump_page"> <a class="source" href="index.html">Index</a> <a class="source" href="frame.html"> frame.js </a> <a class="source" href="index.html"> index.js </a> <a class="source" href="stomp.html"> stomp.js </a> <a class="source" href="stomp-utils.html"> stomp-utils.js </a> <a class="source" href="stomp-exceptions.html"> stomp-exceptions.js </a> </div> </div> </div> <table cellpadding="0" cellspacing="0"> <thead> <tr> <th class="docs"> <h1> frame.js </h1> </th> <th class="code"> </th> </tr> </thead> <tbody> <tr id="section-1"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-1">¶</a> </div> <h2>frame</h2> - -<p>The <code>Frame</code> module provides an object representation of a <code>Stomp</code> frame.</p> - -<h3>frame.Frame</h3> - -<p>An instance of the <code>Frame</code> object.</p> - -<pre><code>var frame = new frame.Frame();</code></pre> - -<h3>frame.Frame.build_frame()</h3> - -<p>Build a frame object from an object of arguments.</p> - -<pre><code>var args = { - command: '', - headers: {}, - body: '' -}; - -this_frame = frame.build_frame(args);</code></pre> </td> <td class="code"> <div class="highlight"><pre></pre></div> </td> </tr> <tr id="section-2"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-2">¶</a> </div> <h2>Frame - Object representation of a STOMP frame</h2> </td> <td class="code"> <div class="highlight"><pre><span class="kd">function</span> <span class="nx">Frame</span><span class="p">()</span> <span class="p">{</span> - <span class="k">this</span><span class="p">.</span><span class="nx">command</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span> - <span class="k">this</span><span class="p">.</span><span class="nx">headers</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span> - <span class="k">this</span><span class="p">.</span><span class="nx">body</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span> -<span class="p">};</span></pre></div> </td> </tr> <tr id="section-3"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-3">¶</a> </div> <h2>Frame.build<em>frame(args, want</em>receipt)</h2> - -<p><strong>Build frame based on arguments provided</strong></p> - -<p>Takes arguments object needed to build frame (command, headers, body?)</p> - -<p>Takes boolean to indicate that you wish to get a receipt (set receipt header)</p> - -<p>Returns an object representing a frame</p> </td> <td class="code"> <div class="highlight"><pre><span class="nx">Frame</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">build_frame</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">args</span><span class="p">,</span> <span class="nx">want_receipt</span><span class="p">)</span> <span class="p">{</span> - <span class="kd">var</span> <span class="nx">receipt_stamp</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span> - - <span class="k">this</span><span class="p">.</span><span class="nx">command</span> <span class="o">=</span> <span class="nx">args</span><span class="p">[</span><span class="s1">'command'</span><span class="p">];</span> - <span class="k">this</span><span class="p">.</span><span class="nx">headers</span> <span class="o">=</span> <span class="nx">args</span><span class="p">[</span><span class="s1">'headers'</span><span class="p">];</span> - <span class="k">this</span><span class="p">.</span><span class="nx">body</span> <span class="o">=</span> <span class="nx">args</span><span class="p">[</span><span class="s1">'body'</span><span class="p">];</span> - - <span class="k">if</span> <span class="p">(</span><span class="nx">want_receipt</span><span class="p">)</span> <span class="p">{</span> - <span class="kd">var</span> <span class="nx">_receipt</span> <span class="o">=</span> <span class="s1">''</span><span class="p">;</span> - <span class="nx">receipt_stamp</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">floor</span><span class="p">(</span><span class="nb">Math</span><span class="p">.</span><span class="nx">random</span><span class="p">()</span><span class="o">*</span><span class="mi">99999999999</span><span class="p">).</span><span class="nx">toString</span><span class="p">();</span> - <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">headers</span><span class="p">[</span><span class="s1">'session'</span><span class="p">]</span> <span class="o">!=</span> <span class="kc">undefined</span><span class="p">)</span> <span class="p">{</span> - <span class="nx">_receipt</span> <span class="o">=</span> <span class="nx">receipt_stamp</span> <span class="o">+</span> <span class="s2">"-"</span> <span class="o">+</span> <span class="k">this</span><span class="p">.</span><span class="nx">headers</span><span class="p">[</span><span class="s1">'session'</span><span class="p">];</span> - <span class="p">}</span> - <span class="k">else</span> <span class="p">{</span> - <span class="nx">_receipt</span> <span class="o">=</span> <span class="nx">receipt_stamp</span><span class="p">;</span> - <span class="p">}</span> - <span class="k">this</span><span class="p">.</span><span class="nx">headers</span><span class="p">[</span><span class="s1">'receipt'</span><span class="p">]</span> <span class="o">=</span> <span class="nx">_receipt</span><span class="p">;</span> - <span class="p">}</span> - <span class="k">return</span> <span class="k">this</span><span class="p">;</span> -<span class="p">};</span></pre></div> </td> </tr> <tr id="section-4"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-4">¶</a> </div> <h2>Frame.as_string()</h2> - -<p><strong>String representation of Frame object</strong></p> - -<p>Returns <code>Frame</code> as string</p> </td> <td class="code"> <div class="highlight"><pre><span class="nx">Frame</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">as_string</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span> - <span class="kd">var</span> <span class="nx">header_strs</span> <span class="o">=</span> <span class="p">[],</span> - <span class="nx">frame</span> <span class="o">=</span> <span class="s2">""</span><span class="p">,</span> - <span class="nx">command</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">command</span><span class="p">,</span> - <span class="nx">headers</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">headers</span><span class="p">,</span> - <span class="nx">body</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">body</span><span class="p">;</span> - - <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">header</span> <span class="k">in</span> <span class="nx">headers</span><span class="p">)</span> <span class="p">{</span> - <span class="nx">header_strs</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">header</span> <span class="o">+</span> <span class="s1">':'</span> <span class="o">+</span> <span class="nx">headers</span><span class="p">[</span><span class="nx">header</span><span class="p">]);</span> - <span class="p">}</span> - - <span class="nx">frame</span> <span class="o">+=</span> <span class="nx">command</span> <span class="o">+</span> <span class="s2">"\n"</span><span class="p">;</span> - <span class="nx">frame</span> <span class="o">+=</span> <span class="nx">header_strs</span><span class="p">.</span><span class="nx">join</span><span class="p">(</span><span class="s2">"\n"</span><span class="p">);</span> - <span class="nx">frame</span> <span class="o">+=</span> <span class="s2">"\n\n"</span><span class="p">;</span> - - <span class="k">if</span><span class="p">(</span><span class="nx">body</span><span class="p">)</span> <span class="p">{</span> - <span class="nx">frame</span> <span class="o">+=</span> <span class="nx">body</span><span class="p">;</span> - <span class="p">}</span> - - <span class="nx">frame</span> <span class="o">+=</span> <span class="s1">'\x00'</span><span class="p">;</span> - - <span class="k">return</span> <span class="nx">frame</span><span class="p">;</span> -<span class="p">};</span> - -<span class="nx">module</span><span class="p">.</span><span class="nx">exports</span><span class="p">.</span><span class="nx">Frame</span> <span class="o">=</span> <span class="nx">Frame</span><span class="p">;</span> - -</pre></div> </td> </tr> </tbody> </table> </div> </body> </html> \ No newline at end of file diff --git a/docs/index.html b/docs/index.html index b86d9b1..420ba51 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1,29 +1,64 @@ -<!DOCTYPE html> <html> <head> <title>index.js</title> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <link rel="stylesheet" media="all" href="rocco.css" /> </head> <body> <div id="navbar"> <h3>stomp-js - Implementation of the STOMP protocol in node.js<em></em></h3> </div> <div id="container"> <div id="background"></div> <div id="jump_to"> Jump To … <div id="jump_wrapper"> <div id="jump_page"> <a class="source" href="index.html">Index</a> <a class="source" href="frame.html"> frame.js </a> <a class="source" href="index.html"> index.js </a> <a class="source" href="stomp.html"> stomp.js </a> <a class="source" href="stomp-utils.html"> stomp-utils.js </a> <a class="source" href="stomp-exceptions.html"> stomp-exceptions.js </a> </div> </div> </div> <table cellpadding="0" cellspacing="0"> <thead> <tr> <th class="docs"> <h1> index.js </h1> </th> <th class="code"> </th> </tr> </thead> <tbody> <tr id="section-1"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-1">¶</a> </div> <h1>stomp-js</h1> +<!DOCTYPE html> +<html> +<head> + <title>Documentation - JSDuck</title> + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <meta http-equiv="X-UA-Compatible" content="chrome=1"> + <meta name="fragment" content="!"> -<h2>Overview</h2> + -<p>An exercise with node.js to implement the STOMP protocol.</p> + <link rel="shortcut icon" type="image/ico" href="favicon.ico" /> + <link rel="stylesheet" href="resources/css/app-851b66f18114a2a31d488e9c8d7cb964.css" type="text/css" /> -<p>For documentation see doc/stomp.md and doc/frame.md</p> + <script type="text/javascript" src="extjs/ext-all.js"></script> + <script type="text/javascript" src="data-7123939d7aa281aafe53073d4dfed19f.js"></script> -<h2>Installation</h2> + <script type="text/javascript" src="app-20ea5717ade2476617d0305b69058533.js"></script> -<p><code>npm install stomp</code></p> + -<p><code>git clone https://benjaminws@github.com/benjaminws/stomp-js.git</code></p> +</head> +<body id="ext-body"> -<h2>Examples</h2> + <div id="loading"><span class="title">Documentation - JSDuck</span><span class="logo"></span></div> -<h3>Consumer</h3> + <div id="header-content"><strong>Documentation</strong> JSDuck</div> + + <div id='categories-content' style='display:none'> + <div class='section'> +<h1>StompJS</h1> +<div class='left-column'> +<h3>Classes</h3> +<ul class='links'> +<li><a href="#!/api/Frame" rel="Frame" class="docClass">Frame</a></li> +<li><a href="#!/api/Stomp" rel="Stomp" class="docClass">Stomp</a></li> +</ul> +</div> +<div class='middle-column'> +<h3>Utilities</h3> +<ul class='links'> +<li><a href="#!/api/StompUtils" rel="StompUtils" class="docClass">StompUtils</a></li> +<li><a href="#!/api/StompLogger" rel="StompLogger" class="docClass">StompLogger</a></li> +</ul> +</div> +<div class='right-column'> +</div> +<div style='clear:both'></div> +</div> + </div> -<p>See examples/stomp-consumer.js</p> + + <div id='footer-content' style='display: none'>Generated with <a href='https://github.com/senchalabs/jsduck'>JSDuck</a> 4.6.2.</div> -<h3>Producer</h3> + -<p>See examples/stomp-producer.js</p> + <script type="text/javascript"> + (function(){ + var protocol = (document.location.protocol === "https:") ? "https:" : "http:"; + document.write("<link href='"+protocol+"//fonts.googleapis.com/css?family=Exo' rel='stylesheet' type='text/css' />"); + })(); + </script> -<h3>Producer with Transaction Support</h3> - -<p>See examples/stomp-producer-txn.js</p> </td> <td class="code"> <div class="highlight"><pre> - -</pre></div> </td> </tr> </tbody> </table> </div> </body> </html> \ No newline at end of file +</body> +</html> diff --git a/docs/output/Frame.js b/docs/output/Frame.js new file mode 100644 index 0000000..2437ca2 --- /dev/null +++ b/docs/output/Frame.js @@ -0,0 +1 @@ +Ext.data.JsonP.Frame({"parentMixins":[],"statics":{"css_var":[],"event":[],"css_mixin":[],"method":[],"cfg":[],"property":[]},"html":"<div><pre class=\"hierarchy\"><h4>Files</h4><div class='dependency'><a href='source/frame.html#Frame' target='_blank'>frame.js</a></div></pre><div class='doc-contents'><p>The <code>Frame</code> module provides an object representation of a <a href=\"http://stomp.github.io/stomp-specification-1.0.html\">STOMP frame</a></p>\n</div><div class='members'><div class='members-section'><div class='definedBy'>Defined By</div><h3 class='members-title icon-method'>Methods</h3><div class='subsection'><div id='method-asString' class='member first-child not-inherited'><a href='#' class='side expandable'><span> </span></a><div class='title'><div class='meta'><span class='defined-in' rel='Frame'>Frame</span><br/><a href='source/frame.html#Frame-method-asString' target='_blank' class='view-source'>view source</a></div><a href='#!/api/Frame-method-asString' class='name expandable'>asString</a>( <span class='pre'></span> ) : String</div><div class='description'><div class='short'>String representation of Frame object ...</div><div class='long'><p>String representation of Frame object</p>\n<h3 class='pa'>Returns</h3><ul><li><span class='pre'>String</span><div class='sub-desc'><p>returns StompJS.Frame as string</p>\n</div></li></ul></div></div></div><div id='method-buildFrame' class='member not-inherited'><a href='#' class='side expandable'><span> </span></a><div class='title'><div class='meta'><span class='defined-in' rel='Frame'>Frame</span><br/><a href='source/frame.html#Frame-method-buildFrame' target='_blank' class='view-source'>view source</a></div><a href='#!/api/Frame-method-buildFrame' class='name expandable'>buildFrame</a>( <span class='pre'>args, wantReceipt</span> ) : Object<strong class='chainable signature' >chainable</strong></div><div class='description'><div class='short'>Build frame based on arguments provided ...</div><div class='long'><p>Build frame based on arguments provided</p>\n<h3 class=\"pa\">Parameters</h3><ul><li><span class='pre'>args</span> : Object<div class='sub-desc'><p>arguments object needed to build frame (command, headers, body?)</p>\n\n<p><strong><em>Example:</em></strong></p>\n\n<pre><code> args = {\n command: '',\n headers: {},\n body: ''\n }\n</code></pre>\n</div></li><li><span class='pre'>wantReceipt</span> : Boolean<div class='sub-desc'><p>boolean to indicate that you wish to get a receipt (set receipt header)</p>\n</div></li></ul><h3 class='pa'>Returns</h3><ul><li><span class='pre'>Object</span><div class='sub-desc'><p>returns StompJS.Frame</p>\n</div></li></ul></div></div></div></div></div></div></div>","tagname":"class","inheritable":null,"singleton":false,"override":null,"html_meta":{},"mixins":[],"files":[{"href":"frame.html#Frame","filename":"frame.js"}],"linenr":1,"members":{"css_var":[],"event":[],"css_mixin":[],"method":[{"tagname":"method","owner":"Frame","name":"asString","id":"method-asString","meta":{}},{"tagname":"method","owner":"Frame","name":"buildFrame","id":"method-buildFrame","meta":{"chainable":true}}],"cfg":[],"property":[]},"alternateClassNames":[],"aliases":{},"inheritdoc":null,"component":false,"private":null,"subclasses":[],"name":"Frame","extends":null,"uses":[],"mixedInto":[],"superclasses":[],"id":"class-Frame","enum":null,"meta":{},"requires":[]}); \ No newline at end of file diff --git a/docs/output/Stomp.js b/docs/output/Stomp.js new file mode 100644 index 0000000..1045423 --- /dev/null +++ b/docs/output/Stomp.js @@ -0,0 +1 @@ +Ext.data.JsonP.Stomp({"parentMixins":[],"statics":{"css_var":[],"event":[],"css_mixin":[],"method":[],"cfg":[],"property":[]},"html":"<div><pre class=\"hierarchy\"><h4>Files</h4><div class='dependency'><a href='source/stomp.html#Stomp' target='_blank'>stomp.js</a></div></pre><div class='doc-contents'><p>An instance of the Stomp object for interacting with STOMP messaging brokers</p>\n</div><div class='members'><div class='members-section'><div class='definedBy'>Defined By</div><h3 class='members-title icon-method'>Methods</h3><div class='subsection'><div id='method-Client' class='member first-child not-inherited'><a href='#' class='side expandable'><span> </span></a><div class='title'><div class='meta'><span class='defined-in' rel='Stomp'>Stomp</span><br/><a href='source/stomp.html#Stomp-method-Client' target='_blank' class='view-source'>view source</a></div><a href='#!/api/Stomp-method-Client' class='name expandable'>Client</a>( <span class='pre'>args</span> ) : Object</div><div class='description'><div class='short'>Creates a client for the StompJS.Stomp object. ...</div><div class='long'><p>Creates a client for the StompJS.Stomp object.</p>\n<h3 class=\"pa\">Parameters</h3><ul><li><span class='pre'>args</span> : Object<div class='sub-desc'><p>arguments needed to create the client</p>\n\n<p><strong><em>Example:</em></strong></p>\n\n<pre><code> args = {\n port: 61613,\n host: 'localhost',\n debug: false,\n login: 'guest',\n passcode: 'guest'\n }\n\n If debug is set to true, extra output will be printed to the console.\n\n var client = new Stomp().Client(args);\n</code></pre>\n</div></li></ul><h3 class='pa'>Returns</h3><ul><li><span class='pre'>Object</span><div class='sub-desc'><p>returns StompClient</p>\n</div></li></ul></div></div></div><div id='method-abort' class='member not-inherited'><a href='#' class='side expandable'><span> </span></a><div class='title'><div class='meta'><span class='defined-in' rel='Stomp'>Stomp</span><br/><a href='source/stomp.html#Stomp-method-abort' target='_blank' class='view-source'>view source</a></div><a href='#!/api/Stomp-method-abort' class='name expandable'>abort</a>( <span class='pre'>transactionId</span> ) : void</div><div class='description'><div class='short'>Aborts a transaction. ...</div><div class='long'><p>Aborts a transaction.</p>\n<h3 class=\"pa\">Parameters</h3><ul><li><span class='pre'>transactionId</span> : String<div class='sub-desc'><p>the transaction id from <a href=\"#!/api/Stomp-method-begin\" rel=\"Stomp-method-begin\" class=\"docClass\">begin</a> to abort</p>\n</div></li></ul><h3 class='pa'>Returns</h3><ul><li><span class='pre'>void</span><div class='sub-desc'>\n</div></li></ul></div></div></div><div id='method-ack' class='member not-inherited'><a href='#' class='side expandable'><span> </span></a><div class='title'><div class='meta'><span class='defined-in' rel='Stomp'>Stomp</span><br/><a href='source/stomp.html#Stomp-method-ack' target='_blank' class='view-source'>view source</a></div><a href='#!/api/Stomp-method-ack' class='name expandable'>ack</a>( <span class='pre'>messageId</span> ) : void</div><div class='description'><div class='short'>Acknowledges a received message. ...</div><div class='long'><p>Acknowledges a received message.</p>\n<h3 class=\"pa\">Parameters</h3><ul><li><span class='pre'>messageId</span> : String<div class='sub-desc'><p>the message id to ack</p>\n</div></li></ul><h3 class='pa'>Returns</h3><ul><li><span class='pre'>void</span><div class='sub-desc'>\n</div></li></ul></div></div></div><div id='method-begin' class='member not-inherited'><a href='#' class='side expandable'><span> </span></a><div class='title'><div class='meta'><span class='defined-in' rel='Stomp'>Stomp</span><br/><a href='source/stomp.html#Stomp-method-begin' target='_blank' class='view-source'>view source</a></div><a href='#!/api/Stomp-method-begin' class='name expandable'>begin</a>( <span class='pre'></span> ) : String</div><div class='description'><div class='short'>Begins a transaction. ...</div><div class='long'><p>Begins a transaction.</p>\n<h3 class='pa'>Returns</h3><ul><li><span class='pre'>String</span><div class='sub-desc'><p>returns a string representing the generated transaction id</p>\n</div></li></ul></div></div></div><div id='method-buildHeaders' class='member not-inherited'><a href='#' class='side expandable'><span> </span></a><div class='title'><div class='meta'><span class='defined-in' rel='Stomp'>Stomp</span><br/><a href='source/stomp.html#Stomp-method-buildHeaders' target='_blank' class='view-source'>view source</a></div><a href='#!/api/Stomp-method-buildHeaders' class='name expandable'>buildHeaders</a>( <span class='pre'>options</span> ) : Object<strong class='private signature' >private</strong></div><div class='description'><div class='short'>Helper to build the headers from the client args/options ...</div><div class='long'><p>Helper to build the headers from the client args/options</p>\n<h3 class=\"pa\">Parameters</h3><ul><li><span class='pre'>options</span> : Object<div class='sub-desc'><p>the client args/options</p>\n</div></li></ul><h3 class='pa'>Returns</h3><ul><li><span class='pre'>Object</span><div class='sub-desc'><p>returns the headers</p>\n</div></li></ul></div></div></div><div id='method-commit' class='member not-inherited'><a href='#' class='side expandable'><span> </span></a><div class='title'><div class='meta'><span class='defined-in' rel='Stomp'>Stomp</span><br/><a href='source/stomp.html#Stomp-method-commit' target='_blank' class='view-source'>view source</a></div><a href='#!/api/Stomp-method-commit' class='name expandable'>commit</a>( <span class='pre'>transactionId</span> ) : void</div><div class='description'><div class='short'>Commits a transaction. ...</div><div class='long'><p>Commits a transaction.</p>\n<h3 class=\"pa\">Parameters</h3><ul><li><span class='pre'>transactionId</span> : String<div class='sub-desc'><p>the transaction id from <a href=\"#!/api/Stomp-method-begin\" rel=\"Stomp-method-begin\" class=\"docClass\">begin</a> to commit</p>\n</div></li></ul><h3 class='pa'>Returns</h3><ul><li><span class='pre'>void</span><div class='sub-desc'>\n</div></li></ul></div></div></div><div id='method-connect' class='member not-inherited'><a href='#' class='side expandable'><span> </span></a><div class='title'><div class='meta'><span class='defined-in' rel='Stomp'>Stomp</span><br/><a href='source/stomp.html#Stomp-method-connect' target='_blank' class='view-source'>view source</a></div><a href='#!/api/Stomp-method-connect' class='name expandable'>connect</a>( <span class='pre'></span> ) : void</div><div class='description'><div class='short'>Creates sockets used to connect to STOMP broker. ...</div><div class='long'><p>Creates sockets used to connect to STOMP broker. Sets the connected flag to <em>true</em> upon completion.\nEmits \"connected\" upon completion.</p>\n<h3 class='pa'>Returns</h3><ul><li><span class='pre'>void</span><div class='sub-desc'>\n</div></li></ul></div></div></div><div id='method-disconnect' class='member not-inherited'><a href='#' class='side expandable'><span> </span></a><div class='title'><div class='meta'><span class='defined-in' rel='Stomp'>Stomp</span><br/><a href='source/stomp.html#Stomp-method-disconnect' target='_blank' class='view-source'>view source</a></div><a href='#!/api/Stomp-method-disconnect' class='name expandable'>disconnect</a>( <span class='pre'></span> ) : void</div><div class='description'><div class='short'>Removes sockets used to connects STOMP broker. ...</div><div class='long'><p>Removes sockets used to connects STOMP broker. Sets the connected flag to <em>false</em> upon completion.\nEmits \"disconnected\" upon completion.</p>\n<h3 class='pa'>Returns</h3><ul><li><span class='pre'>void</span><div class='sub-desc'>\n</div></li></ul></div></div></div><div id='method-emitWrapper' class='member not-inherited'><a href='#' class='side expandable'><span> </span></a><div class='title'><div class='meta'><span class='defined-in' rel='Stomp'>Stomp</span><br/><a href='source/stomp.html#Stomp-method-emitWrapper' target='_blank' class='view-source'>view source</a></div><a href='#!/api/Stomp-method-emitWrapper' class='name expandable'>emitWrapper</a>( <span class='pre'>str, obj</span> ) : void<strong class='private signature' >private</strong></div><div class='description'><div class='short'>Wrapper to emit the events for the STOMP object ...</div><div class='long'><p>Wrapper to emit the events for the STOMP object</p>\n<h3 class=\"pa\">Parameters</h3><ul><li><span class='pre'>str</span> : Object<div class='sub-desc'>\n</div></li><li><span class='pre'>obj</span> : Object<div class='sub-desc'>\n</div></li></ul><h3 class='pa'>Returns</h3><ul><li><span class='pre'>void</span><div class='sub-desc'>\n</div></li></ul></div></div></div><div id='method-getOptions' class='member not-inherited'><a href='#' class='side expandable'><span> </span></a><div class='title'><div class='meta'><span class='defined-in' rel='Stomp'>Stomp</span><br/><a href='source/stomp.html#Stomp-method-getOptions' target='_blank' class='view-source'>view source</a></div><a href='#!/api/Stomp-method-getOptions' class='name expandable'>getOptions</a>( <span class='pre'></span> ) : Object<strong class='private signature' >private</strong></div><div class='description'><div class='short'>Returns the process args/options passed into the Client. ...</div><div class='long'><p>Returns the process args/options passed into the Client.\nThis is only used for testing purposes which is why this public function is marked private.</p>\n<h3 class='pa'>Returns</h3><ul><li><span class='pre'>Object</span><div class='sub-desc'><p>returns the process args/options passed into the Client</p>\n</div></li></ul></div></div></div><div id='method-handleNewFrame' class='member not-inherited'><a href='#' class='side expandable'><span> </span></a><div class='title'><div class='meta'><span class='defined-in' rel='Stomp'>Stomp</span><br/><a href='source/stomp.html#Stomp-method-handleNewFrame' target='_blank' class='view-source'>view source</a></div><a href='#!/api/Stomp-method-handleNewFrame' class='name expandable'>handleNewFrame</a>( <span class='pre'>frame</span> ) : void<strong class='private signature' >private</strong></div><div class='description'><div class='short'>Handles frame based on type. ...</div><div class='long'><p>Handles frame based on type. Emits events when needed.\nEmits \"message\" upon message processed\nEmits \"connected\" upon connecting\nEmits \"receipt\" upon message receipt\nEmits \"error\" upon errors</p>\n<h3 class=\"pa\">Parameters</h3><ul><li><span class='pre'>frame</span> : String<div class='sub-desc'><p>the frame to handle</p>\n</div></li></ul><h3 class='pa'>Returns</h3><ul><li><span class='pre'>void</span><div class='sub-desc'>\n</div></li></ul></div></div></div><div id='method-isConnected' class='member not-inherited'><a href='#' class='side expandable'><span> </span></a><div class='title'><div class='meta'><span class='defined-in' rel='Stomp'>Stomp</span><br/><a href='source/stomp.html#Stomp-method-isConnected' target='_blank' class='view-source'>view source</a></div><a href='#!/api/Stomp-method-isConnected' class='name expandable'>isConnected</a>( <span class='pre'></span> ) : Boolean</div><div class='description'><div class='short'>Returns if the object has been connected ...</div><div class='long'><p>Returns if the object has been connected</p>\n<h3 class='pa'>Returns</h3><ul><li><span class='pre'>Boolean</span><div class='sub-desc'><p>returns <em>true</em> if connected; otherwise, <em>false</em></p>\n</div></li></ul></div></div></div><div id='method-isInitialized' class='member not-inherited'><a href='#' class='side expandable'><span> </span></a><div class='title'><div class='meta'><span class='defined-in' rel='Stomp'>Stomp</span><br/><a href='source/stomp.html#Stomp-method-isInitialized' target='_blank' class='view-source'>view source</a></div><a href='#!/api/Stomp-method-isInitialized' class='name expandable'>isInitialized</a>( <span class='pre'></span> ) : Boolean</div><div class='description'><div class='short'>Returns if the object has been initialized ...</div><div class='long'><p>Returns if the object has been initialized</p>\n<h3 class='pa'>Returns</h3><ul><li><span class='pre'>Boolean</span><div class='sub-desc'><p>returns <em>true</em> if initialized; otherwise, <em>false</em></p>\n</div></li></ul></div></div></div><div id='method-isMessage' class='member not-inherited'><a href='#' class='side expandable'><span> </span></a><div class='title'><div class='meta'><span class='defined-in' rel='Stomp'>Stomp</span><br/><a href='source/stomp.html#Stomp-method-isMessage' target='_blank' class='view-source'>view source</a></div><a href='#!/api/Stomp-method-isMessage' class='name expandable'>isMessage</a>( <span class='pre'>frame</span> ) : Boolean<strong class='private signature' >private</strong></div><div class='description'><div class='short'>Determines if the frame headers have a message id which is assigned only if its a message ...</div><div class='long'><p>Determines if the frame headers have a message id which is assigned only if its a message</p>\n<h3 class=\"pa\">Parameters</h3><ul><li><span class='pre'>frame</span> : String<div class='sub-desc'><p>the <a href=\"#!/api/Frame\">StompJS.Frame</a></p>\n</div></li></ul><h3 class='pa'>Returns</h3><ul><li><span class='pre'>Boolean</span><div class='sub-desc'><p>return <em>true</em> if the frame is a message; otherwise, <em>false</em></p>\n</div></li></ul></div></div></div><div id='method-parseCommand' class='member not-inherited'><a href='#' class='side expandable'><span> </span></a><div class='title'><div class='meta'><span class='defined-in' rel='Stomp'>Stomp</span><br/><a href='source/stomp.html#Stomp-method-parseCommand' target='_blank' class='view-source'>view source</a></div><a href='#!/api/Stomp-method-parseCommand' class='name expandable'>parseCommand</a>( <span class='pre'>data</span> ) : String<strong class='private signature' >private</strong></div><div class='description'><div class='short'>Helper to parse the command from frame ...</div><div class='long'><p>Helper to parse the command from frame</p>\n<h3 class=\"pa\">Parameters</h3><ul><li><span class='pre'>data</span> : Object<div class='sub-desc'><p>the frame as a buffer</p>\n</div></li></ul><h3 class='pa'>Returns</h3><ul><li><span class='pre'>String</span><div class='sub-desc'><p>returns the command from the frame</p>\n</div></li></ul></div></div></div><div id='method-parseFrame' class='member not-inherited'><a href='#' class='side expandable'><span> </span></a><div class='title'><div class='meta'><span class='defined-in' rel='Stomp'>Stomp</span><br/><a href='source/stomp.html#Stomp-method-parseFrame' target='_blank' class='view-source'>view source</a></div><a href='#!/api/Stomp-method-parseFrame' class='name expandable'>parseFrame</a>( <span class='pre'>chunk</span> ) : Object<strong class='private signature' >private</strong></div><div class='description'><div class='short'>Helper to parse the key data pieces (headers, command, body) from frame ...</div><div class='long'><p>Helper to parse the key data pieces (headers, command, body) from frame</p>\n<h3 class=\"pa\">Parameters</h3><ul><li><span class='pre'>chunk</span> : Object<div class='sub-desc'><p>the frame as a buffer</p>\n</div></li></ul><h3 class='pa'>Returns</h3><ul><li><span class='pre'>Object</span><div class='sub-desc'><p>returns the frame as a <a href=\"#!/api/Frame\">StompJS.Frame</a></p>\n</div></li></ul></div></div></div><div id='method-parseHeaders' class='member not-inherited'><a href='#' class='side expandable'><span> </span></a><div class='title'><div class='meta'><span class='defined-in' rel='Stomp'>Stomp</span><br/><a href='source/stomp.html#Stomp-method-parseHeaders' target='_blank' class='view-source'>view source</a></div><a href='#!/api/Stomp-method-parseHeaders' class='name expandable'>parseHeaders</a>( <span class='pre'>rawHeaders</span> ) : Object<strong class='private signature' >private</strong></div><div class='description'><div class='short'>Helper to parse the headers from frame ...</div><div class='long'><p>Helper to parse the headers from frame</p>\n<h3 class=\"pa\">Parameters</h3><ul><li><span class='pre'>rawHeaders</span> : Object<div class='sub-desc'><p>the raw headers from the frame</p>\n</div></li></ul><h3 class='pa'>Returns</h3><ul><li><span class='pre'>Object</span><div class='sub-desc'><p>returns the headers from the frame</p>\n</div></li></ul></div></div></div><div id='method-send' class='member not-inherited'><a href='#' class='side expandable'><span> </span></a><div class='title'><div class='meta'><span class='defined-in' rel='Stomp'>Stomp</span><br/><a href='source/stomp.html#Stomp-method-send' target='_blank' class='view-source'>view source</a></div><a href='#!/api/Stomp-method-send' class='name expandable'>send</a>( <span class='pre'>headers, wantReceipt</span> ) : Object</div><div class='description'><div class='short'>Sends a message to the STOMP broker. ...</div><div class='long'><p>Sends a message to the STOMP broker.</p>\n<h3 class=\"pa\">Parameters</h3><ul><li><span class='pre'>headers</span> : Object<div class='sub-desc'><p>a header object</p>\n</div></li><li><span class='pre'>wantReceipt</span> : Boolean<div class='sub-desc'><p>boolean to indicate that you wish to get a receipt (set receipt header)</p>\n</div></li></ul><h3 class='pa'>Returns</h3><ul><li><span class='pre'>Object</span><div class='sub-desc'><p>returns a <code>Frame</code> object representing the message sent</p>\n</div></li></ul></div></div></div><div id='method-sendCommand' class='member not-inherited'><a href='#' class='side expandable'><span> </span></a><div class='title'><div class='meta'><span class='defined-in' rel='Stomp'>Stomp</span><br/><a href='source/stomp.html#Stomp-method-sendCommand' target='_blank' class='view-source'>view source</a></div><a href='#!/api/Stomp-method-sendCommand' class='name expandable'>sendCommand</a>( <span class='pre'>command, headers, body, wantReceipt</span> ) : Object<strong class='private signature' >private</strong></div><div class='description'><div class='short'>Create the STOMP Frame and send the command to the STOMP broker ...</div><div class='long'><p>Create the STOMP Frame and send the command to the STOMP broker</p>\n<h3 class=\"pa\">Parameters</h3><ul><li><span class='pre'>command</span> : String<div class='sub-desc'><p>the command to send</p>\n</div></li><li><span class='pre'>headers</span> : Object<div class='sub-desc'><p>the headers to send</p>\n</div></li><li><span class='pre'>body</span> : Object<div class='sub-desc'><p>the body to send</p>\n</div></li><li><span class='pre'>wantReceipt</span> : Boolean<div class='sub-desc'><p>boolean to indicate that you wish to get a receipt</p>\n</div></li></ul><h3 class='pa'>Returns</h3><ul><li><span class='pre'>Object</span><div class='sub-desc'><p>returns a <a href=\"#!/api/Frame\">StompJS.Frame</a></p>\n</div></li></ul></div></div></div><div id='method-sendFrame' class='member not-inherited'><a href='#' class='side expandable'><span> </span></a><div class='title'><div class='meta'><span class='defined-in' rel='Stomp'>Stomp</span><br/><a href='source/stomp.html#Stomp-method-sendFrame' target='_blank' class='view-source'>view source</a></div><a href='#!/api/Stomp-method-sendFrame' class='name expandable'>sendFrame</a>( <span class='pre'>frame</span> ) : void<strong class='private signature' >private</strong></div><div class='description'><div class='short'>Sends the STOMP frame to the message broker ...</div><div class='long'><p>Sends the STOMP frame to the message broker</p>\n<h3 class=\"pa\">Parameters</h3><ul><li><span class='pre'>frame</span> : String<div class='sub-desc'><p>the <a href=\"#!/api/Frame\">StompJS.Frame</a></p>\n</div></li></ul><h3 class='pa'>Returns</h3><ul><li><span class='pre'>void</span><div class='sub-desc'>\n</div></li></ul></div></div></div><div id='method-setupListeners' class='member not-inherited'><a href='#' class='side expandable'><span> </span></a><div class='title'><div class='meta'><span class='defined-in' rel='Stomp'>Stomp</span><br/><a href='source/stomp.html#Stomp-method-setupListeners' target='_blank' class='view-source'>view source</a></div><a href='#!/api/Stomp-method-setupListeners' class='name expandable'>setupListeners</a>( <span class='pre'>frame</span> ) : void<strong class='private signature' >private</strong></div><div class='description'><div class='short'>Sets up the listeners for the socket events\nEmits \"error\" upon errors\nEmits \"disconnected\" upon socket close ...</div><div class='long'><p>Sets up the listeners for the socket events\nEmits \"error\" upon errors\nEmits \"disconnected\" upon socket close</p>\n<h3 class=\"pa\">Parameters</h3><ul><li><span class='pre'>frame</span> : String<div class='sub-desc'><p>the frame to handle</p>\n</div></li></ul><h3 class='pa'>Returns</h3><ul><li><span class='pre'>void</span><div class='sub-desc'>\n</div></li></ul></div></div></div><div id='method-shouldRunMessageCallback' class='member not-inherited'><a href='#' class='side expandable'><span> </span></a><div class='title'><div class='meta'><span class='defined-in' rel='Stomp'>Stomp</span><br/><a href='source/stomp.html#Stomp-method-shouldRunMessageCallback' target='_blank' class='view-source'>view source</a></div><a href='#!/api/Stomp-method-shouldRunMessageCallback' class='name expandable'>shouldRunMessageCallback</a>( <span class='pre'>frame</span> ) : Boolean<strong class='private signature' >private</strong></div><div class='description'><div class='short'>Determines if the message callback function should be ran and runs it if it should ...</div><div class='long'><p>Determines if the message callback function should be ran and runs it if it should</p>\n<h3 class=\"pa\">Parameters</h3><ul><li><span class='pre'>frame</span> : String<div class='sub-desc'><p>the <a href=\"#!/api/Frame\">StompJS.Frame</a></p>\n</div></li></ul><h3 class='pa'>Returns</h3><ul><li><span class='pre'>Boolean</span><div class='sub-desc'><p>return <em>true</em> if the frame is a message; otherwise, <em>false</em></p>\n</div></li></ul></div></div></div><div id='method-stompConnect' class='member not-inherited'><a href='#' class='side expandable'><span> </span></a><div class='title'><div class='meta'><span class='defined-in' rel='Stomp'>Stomp</span><br/><a href='source/stomp.html#Stomp-method-stompConnect' target='_blank' class='view-source'>view source</a></div><a href='#!/api/Stomp-method-stompConnect' class='name expandable'>stompConnect</a>( <span class='pre'></span> ) : void<strong class='private signature' >private</strong></div><div class='description'><div class='short'>Preps for and starts the STOMP connection ...</div><div class='long'><p>Preps for and starts the STOMP connection</p>\n<h3 class='pa'>Returns</h3><ul><li><span class='pre'>void</span><div class='sub-desc'>\n</div></li></ul></div></div></div><div id='method-subscribe' class='member not-inherited'><a href='#' class='side expandable'><span> </span></a><div class='title'><div class='meta'><span class='defined-in' rel='Stomp'>Stomp</span><br/><a href='source/stomp.html#Stomp-method-subscribe' target='_blank' class='view-source'>view source</a></div><a href='#!/api/Stomp-method-subscribe' class='name expandable'>subscribe</a>( <span class='pre'>headers, callback</span> ) : void</div><div class='description'><div class='short'>Subscribes to destination (queue or topic). ...</div><div class='long'><p>Subscribes to destination (queue or topic).\nEmits \"subscribed\" upon completion.</p>\n<h3 class=\"pa\">Parameters</h3><ul><li><span class='pre'>headers</span> : Object<div class='sub-desc'><p>a header object</p>\n</div></li><li><span class='pre'>callback</span> : Function<div class='sub-desc'><p>a function to call and pass it the message that is dequeued</p>\n</div></li></ul><h3 class='pa'>Returns</h3><ul><li><span class='pre'>void</span><div class='sub-desc'>\n</div></li></ul></div></div></div><div id='method-unsubscribe' class='member not-inherited'><a href='#' class='side expandable'><span> </span></a><div class='title'><div class='meta'><span class='defined-in' rel='Stomp'>Stomp</span><br/><a href='source/stomp.html#Stomp-method-unsubscribe' target='_blank' class='view-source'>view source</a></div><a href='#!/api/Stomp-method-unsubscribe' class='name expandable'>unsubscribe</a>( <span class='pre'>headers</span> ) : void</div><div class='description'><div class='short'>Unsubscribes from destination (queue or topic). ...</div><div class='long'><p>Unsubscribes from destination (queue or topic).\nEmits \"unsubscribed\" upon completion.</p>\n<h3 class=\"pa\">Parameters</h3><ul><li><span class='pre'>headers</span> : Object<div class='sub-desc'><p>a header object</p>\n</div></li></ul><h3 class='pa'>Returns</h3><ul><li><span class='pre'>void</span><div class='sub-desc'>\n</div></li></ul></div></div></div></div></div></div></div>","tagname":"class","inheritable":null,"singleton":false,"override":null,"html_meta":{},"mixins":[],"files":[{"href":"stomp.html#Stomp","filename":"stomp.js"}],"linenr":1,"members":{"css_var":[],"event":[],"css_mixin":[],"method":[{"tagname":"method","owner":"Stomp","name":"Client","id":"method-Client","meta":{}},{"tagname":"method","owner":"Stomp","name":"abort","id":"method-abort","meta":{}},{"tagname":"method","owner":"Stomp","name":"ack","id":"method-ack","meta":{}},{"tagname":"method","owner":"Stomp","name":"begin","id":"method-begin","meta":{}},{"tagname":"method","owner":"Stomp","name":"buildHeaders","id":"method-buildHeaders","meta":{"private":true}},{"tagname":"method","owner":"Stomp","name":"commit","id":"method-commit","meta":{}},{"tagname":"method","owner":"Stomp","name":"connect","id":"method-connect","meta":{}},{"tagname":"method","owner":"Stomp","name":"disconnect","id":"method-disconnect","meta":{}},{"tagname":"method","owner":"Stomp","name":"emitWrapper","id":"method-emitWrapper","meta":{"private":true}},{"tagname":"method","owner":"Stomp","name":"getOptions","id":"method-getOptions","meta":{"private":true}},{"tagname":"method","owner":"Stomp","name":"handleNewFrame","id":"method-handleNewFrame","meta":{"private":true}},{"tagname":"method","owner":"Stomp","name":"isConnected","id":"method-isConnected","meta":{}},{"tagname":"method","owner":"Stomp","name":"isInitialized","id":"method-isInitialized","meta":{}},{"tagname":"method","owner":"Stomp","name":"isMessage","id":"method-isMessage","meta":{"private":true}},{"tagname":"method","owner":"Stomp","name":"parseCommand","id":"method-parseCommand","meta":{"private":true}},{"tagname":"method","owner":"Stomp","name":"parseFrame","id":"method-parseFrame","meta":{"private":true}},{"tagname":"method","owner":"Stomp","name":"parseHeaders","id":"method-parseHeaders","meta":{"private":true}},{"tagname":"method","owner":"Stomp","name":"send","id":"method-send","meta":{}},{"tagname":"method","owner":"Stomp","name":"sendCommand","id":"method-sendCommand","meta":{"private":true}},{"tagname":"method","owner":"Stomp","name":"sendFrame","id":"method-sendFrame","meta":{"private":true}},{"tagname":"method","owner":"Stomp","name":"setupListeners","id":"method-setupListeners","meta":{"private":true}},{"tagname":"method","owner":"Stomp","name":"shouldRunMessageCallback","id":"method-shouldRunMessageCallback","meta":{"private":true}},{"tagname":"method","owner":"Stomp","name":"stompConnect","id":"method-stompConnect","meta":{"private":true}},{"tagname":"method","owner":"Stomp","name":"subscribe","id":"method-subscribe","meta":{}},{"tagname":"method","owner":"Stomp","name":"unsubscribe","id":"method-unsubscribe","meta":{}}],"cfg":[],"property":[]},"alternateClassNames":[],"aliases":{},"inheritdoc":null,"component":false,"private":null,"subclasses":[],"name":"Stomp","extends":null,"uses":[],"mixedInto":[],"superclasses":[],"id":"class-Stomp","enum":null,"meta":{},"requires":[]}); \ No newline at end of file diff --git a/docs/output/StompLogger.js b/docs/output/StompLogger.js new file mode 100644 index 0000000..97e22b2 --- /dev/null +++ b/docs/output/StompLogger.js @@ -0,0 +1 @@ +Ext.data.JsonP.StompLogger({"parentMixins":[],"statics":{"css_var":[],"event":[],"css_mixin":[],"method":[],"cfg":[],"property":[]},"html":"<div><pre class=\"hierarchy\"><h4>Files</h4><div class='dependency'><a href='source/stomp.logger.html#StompLogger' target='_blank'>stomp.logger.js</a></div></pre><div class='doc-contents'><p>An instance of the StompJS logger</p>\n</div><div class='members'><div class='members-section'><div class='definedBy'>Defined By</div><h3 class='members-title icon-method'>Methods</h3><div class='subsection'><div id='method-debug' class='member first-child not-inherited'><a href='#' class='side expandable'><span> </span></a><div class='title'><div class='meta'><span class='defined-in' rel='StompLogger'>StompLogger</span><br/><a href='source/stomp.logger.html#StompLogger-method-debug' target='_blank' class='view-source'>view source</a></div><a href='#!/api/StompLogger-method-debug' class='name expandable'>debug</a>( <span class='pre'>message</span> ) : void</div><div class='description'><div class='short'>Writes a debug message to the console only if the outputDebug flag was also set to true ...</div><div class='long'><p>Writes a debug message to the console only if the outputDebug flag was also set to true</p>\n<h3 class=\"pa\">Parameters</h3><ul><li><span class='pre'>message</span> : String<div class='sub-desc'><p>the message to write to the console</p>\n</div></li></ul><h3 class='pa'>Returns</h3><ul><li><span class='pre'>void</span><div class='sub-desc'>\n</div></li></ul></div></div></div><div id='method-die' class='member not-inherited'><a href='#' class='side expandable'><span> </span></a><div class='title'><div class='meta'><span class='defined-in' rel='StompLogger'>StompLogger</span><br/><a href='source/stomp.logger.html#StompLogger-method-die' target='_blank' class='view-source'>view source</a></div><a href='#!/api/StompLogger-method-die' class='name expandable'>die</a>( <span class='pre'>message</span> ) : void</div><div class='description'><div class='short'>Writes a error message to the console and then kills the process ...</div><div class='long'><p>Writes a error message to the console and then kills the process</p>\n<h3 class=\"pa\">Parameters</h3><ul><li><span class='pre'>message</span> : String<div class='sub-desc'><p>the message to write to the console</p>\n</div></li></ul><h3 class='pa'>Returns</h3><ul><li><span class='pre'>void</span><div class='sub-desc'>\n</div></li></ul></div></div></div><div id='method-error' class='member not-inherited'><a href='#' class='side expandable'><span> </span></a><div class='title'><div class='meta'><span class='defined-in' rel='StompLogger'>StompLogger</span><br/><a href='source/stomp.logger.html#StompLogger-method-error' target='_blank' class='view-source'>view source</a></div><a href='#!/api/StompLogger-method-error' class='name expandable'>error</a>( <span class='pre'>message, die</span> ) : void</div><div class='description'><div class='short'>Writes a error message to the console and kills the process based on die input ...</div><div class='long'><p>Writes a error message to the console and kills the process based on die input</p>\n<h3 class=\"pa\">Parameters</h3><ul><li><span class='pre'>message</span> : String<div class='sub-desc'><p>the message to write to the console</p>\n</div></li><li><span class='pre'>die</span> : Boolean<div class='sub-desc'><p>if <em>true</em>, then kill the process after writing the message</p>\n</div></li></ul><h3 class='pa'>Returns</h3><ul><li><span class='pre'>void</span><div class='sub-desc'>\n</div></li></ul></div></div></div><div id='method-info' class='member not-inherited'><a href='#' class='side expandable'><span> </span></a><div class='title'><div class='meta'><span class='defined-in' rel='StompLogger'>StompLogger</span><br/><a href='source/stomp.logger.html#StompLogger-method-info' target='_blank' class='view-source'>view source</a></div><a href='#!/api/StompLogger-method-info' class='name expandable'>info</a>( <span class='pre'>message</span> ) : void</div><div class='description'><div class='short'>Writes a info message to the console ...</div><div class='long'><p>Writes a info message to the console</p>\n<h3 class=\"pa\">Parameters</h3><ul><li><span class='pre'>message</span> : String<div class='sub-desc'><p>the message to write to the console</p>\n</div></li></ul><h3 class='pa'>Returns</h3><ul><li><span class='pre'>void</span><div class='sub-desc'>\n</div></li></ul></div></div></div><div id='method-warn' class='member not-inherited'><a href='#' class='side expandable'><span> </span></a><div class='title'><div class='meta'><span class='defined-in' rel='StompLogger'>StompLogger</span><br/><a href='source/stomp.logger.html#StompLogger-method-warn' target='_blank' class='view-source'>view source</a></div><a href='#!/api/StompLogger-method-warn' class='name expandable'>warn</a>( <span class='pre'>message</span> ) : void</div><div class='description'><div class='short'>Writes a warn message to the console ...</div><div class='long'><p>Writes a warn message to the console</p>\n<h3 class=\"pa\">Parameters</h3><ul><li><span class='pre'>message</span> : String<div class='sub-desc'><p>the message to write to the console</p>\n</div></li></ul><h3 class='pa'>Returns</h3><ul><li><span class='pre'>void</span><div class='sub-desc'>\n</div></li></ul></div></div></div></div></div></div></div>","tagname":"class","inheritable":null,"singleton":false,"override":null,"html_meta":{},"mixins":[],"files":[{"href":"stomp.logger.html#StompLogger","filename":"stomp.logger.js"}],"linenr":1,"members":{"css_var":[],"event":[],"css_mixin":[],"method":[{"tagname":"method","owner":"StompLogger","name":"debug","id":"method-debug","meta":{}},{"tagname":"method","owner":"StompLogger","name":"die","id":"method-die","meta":{}},{"tagname":"method","owner":"StompLogger","name":"error","id":"method-error","meta":{}},{"tagname":"method","owner":"StompLogger","name":"info","id":"method-info","meta":{}},{"tagname":"method","owner":"StompLogger","name":"warn","id":"method-warn","meta":{}}],"cfg":[],"property":[]},"alternateClassNames":[],"aliases":{},"inheritdoc":null,"component":false,"private":null,"subclasses":[],"name":"StompLogger","extends":null,"uses":[],"mixedInto":[],"superclasses":[],"id":"class-StompLogger","enum":null,"meta":{},"requires":[]}); \ No newline at end of file diff --git a/docs/output/StompUtils.js b/docs/output/StompUtils.js new file mode 100644 index 0000000..2d2b25d --- /dev/null +++ b/docs/output/StompUtils.js @@ -0,0 +1 @@ +Ext.data.JsonP.StompUtils({"parentMixins":[],"statics":{"css_var":[],"event":[],"css_mixin":[],"method":[],"cfg":[],"property":[]},"html":"<div><pre class=\"hierarchy\"><h4>Files</h4><div class='dependency'><a href='source/stomp.utils.html#StompUtils' target='_blank'>stomp.utils.js</a></div></pre><div class='doc-contents'><p>An instance of the StompJS helper utilities</p>\n</div><div class='members'><div class='members-section'><div class='definedBy'>Defined By</div><h3 class='members-title icon-method'>Methods</h3><div class='subsection'><div id='method-extend' class='member first-child not-inherited'><a href='#' class='side expandable'><span> </span></a><div class='title'><div class='meta'><span class='defined-in' rel='StompUtils'>StompUtils</span><br/><a href='source/stomp.utils.html#StompUtils-method-extend' target='_blank' class='view-source'>view source</a></div><a href='#!/api/StompUtils-method-extend' class='name expandable'>extend</a>( <span class='pre'>destination, source</span> ) : Object</div><div class='description'><div class='short'>Extends the destination by adding any source properties ...</div><div class='long'><p>Extends the destination by adding any source properties</p>\n<h3 class=\"pa\">Parameters</h3><ul><li><span class='pre'>destination</span> : Object<div class='sub-desc'><p>the object to extend</p>\n</div></li><li><span class='pre'>source</span> : Object<div class='sub-desc'><p>the object to extend from</p>\n</div></li></ul><h3 class='pa'>Returns</h3><ul><li><span class='pre'>Object</span><div class='sub-desc'><p>returns the extended object</p>\n</div></li></ul></div></div></div><div id='method-isDefined' class='member not-inherited'><a href='#' class='side expandable'><span> </span></a><div class='title'><div class='meta'><span class='defined-in' rel='StompUtils'>StompUtils</span><br/><a href='source/stomp.utils.html#StompUtils-method-isDefined' target='_blank' class='view-source'>view source</a></div><a href='#!/api/StompUtils-method-isDefined' class='name expandable'>isDefined</a>( <span class='pre'>varToTest</span> ) : Boolean</div><div class='description'><div class='short'>Returns if the input is defined (not null or undefined) ...</div><div class='long'><p>Returns if the input is defined (not null or undefined)</p>\n<h3 class=\"pa\">Parameters</h3><ul><li><span class='pre'>varToTest</span> : Object<div class='sub-desc'><p>the variable to test</p>\n</div></li></ul><h3 class='pa'>Returns</h3><ul><li><span class='pre'>Boolean</span><div class='sub-desc'><p>returns <em>true</em> if the input is defined; otherwise, <em>false</em></p>\n</div></li></ul></div></div></div></div></div></div></div>","tagname":"class","inheritable":null,"singleton":false,"override":null,"html_meta":{},"mixins":[],"files":[{"href":"stomp.utils.html#StompUtils","filename":"stomp.utils.js"}],"linenr":1,"members":{"css_var":[],"event":[],"css_mixin":[],"method":[{"tagname":"method","owner":"StompUtils","name":"extend","id":"method-extend","meta":{}},{"tagname":"method","owner":"StompUtils","name":"isDefined","id":"method-isDefined","meta":{}}],"cfg":[],"property":[]},"alternateClassNames":[],"aliases":{},"inheritdoc":null,"component":false,"private":null,"subclasses":[],"name":"StompUtils","extends":null,"uses":[],"mixedInto":[],"superclasses":[],"id":"class-StompUtils","enum":null,"meta":{},"requires":[]}); \ No newline at end of file diff --git a/docs/resources/css/app-851b66f18114a2a31d488e9c8d7cb964.css b/docs/resources/css/app-851b66f18114a2a31d488e9c8d7cb964.css new file mode 100644 index 0000000..9217fbf --- /dev/null +++ b/docs/resources/css/app-851b66f18114a2a31d488e9c8d7cb964.css @@ -0,0 +1 @@ +html,body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td{margin:0;padding:0}table{border-collapse:collapse;border-spacing:0}fieldset,img{border:0}address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:normal}li{list-style:none}caption,th{text-align:left}h1,h2,h3,h4,h5,h6{font-size:100%}q:before,q:after{content:""}abbr,acronym{border:0;font-variant:normal}sup{vertical-align:text-top}sub{vertical-align:text-bottom}input,textarea,select{font-family:inherit;font-size:inherit;font-weight:inherit}*:focus{outline:0}.x-border-box,.x-border-box *{box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;-webkit-box-sizing:border-box}.x-body{color:black;font-size:12px;font-family:Helvetica Neue,Arial,sans-serif}.x-rtl{direction:rtl}.x-ltr{direction:ltr}.x-clear{overflow:hidden;clear:both;font-size:0;line-height:0;display:table}.x-strict .x-ie7 .x-clear{height:0;width:0}.x-layer{position:absolute!important;overflow:hidden;zoom:1}.x-shim{position:absolute;left:0;top:0;overflow:hidden;filter:alpha(opacity=0);opacity:0}.x-hide-display{display:none!important}.x-hide-visibility{visibility:hidden!important}.x-item-disabled .x-form-item-label,.x-item-disabled .x-form-field,.x-item-disabled .x-form-cb-label,.x-item-disabled .x-form-trigger{filter:alpha(opacity=30);opacity:.3}.x-ie6 .x-item-disabled{filter:none}.x-hidden,.x-hide-offsets{display:block!important;visibility:hidden!important;position:absolute!important;left:-10000px!important;top:-10000px!important}.x-hide-nosize{height:0!important;width:0!important}.x-masked-relative{position:relative}.x-ie6 .x-masked select,.x-ie6.x-body-masked select{visibility:hidden!important}.x-css-shadow{position:absolute;-webkit-border-radius:5px 5px;-moz-border-radius:5px 5px;-ms-border-radius:5px 5px;-o-border-radius:5px 5px;border-radius:5px 5px}.x-ie-shadow{background-color:#777;display:none;position:absolute;overflow:hidden;zoom:1}.x-box-tl{background:transparent no-repeat 0 0;zoom:1}.x-box-tc{height:8px;background:transparent repeat-x 0 0;overflow:hidden}.x-box-tr{background:transparent no-repeat right -8px}.x-box-ml{background:transparent repeat-y 0;padding-left:4px;overflow:hidden;zoom:1}.x-box-mc{background:repeat-x 0 -16px;padding:4px 10px}.x-box-mc h3{margin:0 0 4px 0;zoom:1}.x-box-mr{background:transparent repeat-y right;padding-right:4px;overflow:hidden}.x-box-bl{background:transparent no-repeat 0 -16px;zoom:1}.x-box-bc{background:transparent repeat-x 0 -8px;height:8px;overflow:hidden}.x-box-br{background:transparent no-repeat right -24px}.x-box-tl,.x-box-bl{padding-left:8px;overflow:hidden}.x-box-tr,.x-box-br{padding-right:8px;overflow:hidden}.x-box-tl{background-image:url('../../extjs/resources/themes/images/default/box/corners.gif')}.x-box-tc{background-image:url('../../extjs/resources/themes/images/default/box/tb.gif')}.x-box-tr{background-image:url('../../extjs/resources/themes/images/default/box/corners.gif')}.x-box-ml{background-image:url('../../extjs/resources/themes/images/default/box/l.gif')}.x-box-mc{background-color:#eee;background-image:url('../../extjs/resources/themes/images/default/box/tb.gif');font-family:"Myriad Pro","Myriad Web","Tahoma","Helvetica","Arial",sans-serif;color:#393939;font-size:15px}.x-box-mc h3{font-size:18px;font-weight:bold}.x-box-mr{background-image:url('../../extjs/resources/themes/images/default/box/r.gif')}.x-box-bl{background-image:url('../../extjs/resources/themes/images/default/box/corners.gif')}.x-box-bc{background-image:url('../../extjs/resources/themes/images/default/box/tb.gif')}.x-box-br{background-image:url('../../extjs/resources/themes/images/default/box/corners.gif')}.x-box-blue .x-box-bl,.x-box-blue .x-box-br,.x-box-blue .x-box-tl,.x-box-blue .x-box-tr{background-image:url('../../extjs/resources/themes/images/default/box/corners-blue.gif')}.x-box-blue .x-box-bc,.x-box-blue .x-box-mc,.x-box-blue .x-box-tc{background-image:url('../../extjs/resources/themes/images/default/box/tb-blue.gif')}.x-box-blue .x-box-mc{background-color:#c3daf9}.x-box-blue .x-box-mc h3{color:#17385b}.x-box-blue .x-box-ml{background-image:url('../../extjs/resources/themes/images/default/box/l-blue.gif')}.x-box-blue .x-box-mr{background-image:url('../../extjs/resources/themes/images/default/box/r-blue.gif')}.x-container{zoom:1}.x-container:before{content:"";clear:both;display:table}table.x-container:before,tbody.x-container:before,tr.x-container:before{display:none}.x-focus-element{position:absolute;top:-10px;left:-10px;width:0;height:0}.x-focus-frame{position:absolute;left:0;top:0;z-index:100000000;width:0;height:0}.x-focus-frame-top,.x-focus-frame-bottom,.x-focus-frame-left,.x-focus-frame-right{position:absolute;top:0;left:0}.x-focus-frame-top,.x-focus-frame-bottom{border-top:solid 2px #15428b;height:2px}.x-focus-frame-left,.x-focus-frame-right{border-left:solid 2px #15428b;width:2px}.x-mask{z-index:100;position:absolute;top:0;left:0;filter:alpha(opacity=50);opacity:.5;width:100%;height:100%;zoom:1;background:#ccc}.x-mask-msg{z-index:20001;position:absolute;top:0;left:0;padding:2px;border:1px solid;border-color:#bfbfbf;background:#fdfdfd}.x-mask-msg div{padding:5px 10px 5px 25px;background-image:url('../../extjs/resources/themes/images/default/grid/loading.gif');background-repeat:no-repeat;background-position:5px center;cursor:wait;border:1px solid #d0d0d0;background-color:#eee;color:#222;font:normal 11px Helvetica Neue,Arial,sans-serif}.x-boundlist{border-width:1px;border-style:solid;border-color:#e2cfcf;background:white}.x-boundlist .x-toolbar{border-width:1px 0 0 0}.x-strict .x-ie6 .x-boundlist-list-ct,.x-strict .x-ie7 .x-boundlist-list-ct{position:relative}.x-boundlist-item{padding:2px;user-select:none;-o-user-select:none;-ms-user-select:none;-moz-user-select:-moz-none;-webkit-user-select:none;cursor:default;cursor:pointer;cursor:hand;position:relative;border-width:1px;border-style:dotted;border-color:white}.x-boundlist-selected{background:#f0f0f0;border-color:#cfc9c9}.x-boundlist-item-over{background:#fdfdfd;border-color:#dbd7d6}.x-boundlist-floating{border-top-width:0}.x-boundlist-above{border-top-width:1px;border-bottom-width:1px}.x-btn{display:inline-block;zoom:1;*display:inline;position:relative;cursor:pointer;cursor:hand;white-space:nowrap;vertical-align:middle;background-repeat:no-repeat}.x-btn *{cursor:pointer;cursor:hand}.x-btn em{background-repeat:no-repeat}.x-btn em a{text-decoration:none;display:block;color:inherit;width:100%;zoom:1}.x-btn button{width:100%;display:block;margin:0;padding:0;border:0;background:0;outline:0 none;overflow:hidden;vertical-align:bottom;-webkit-appearance:none}.x-btn button::-moz-focus-inner{border:0;padding:0}.x-btn .x-btn-inner{display:block;white-space:nowrap;background-color:transparent;background-repeat:no-repeat;background-position:left center;overflow:hidden}.x-btn .x-btn-left .x-btn-inner{text-align:left}.x-btn .x-btn-center .x-btn-inner{text-align:center}.x-btn .x-btn-right .x-btn-inner{text-align:right}.x-btn-disabled span{filter:alpha(opacity=50);opacity:.5}.x-ie6 .x-btn-disabled span,.x-ie7 .x-btn-disabled span{filter:none}.x-ie7 .x-btn-disabled,.x-ie8 .x-btn-disabled{filter:none}.x-ie6 .x-btn-disabled .x-btn-icon,.x-ie7 .x-btn-disabled .x-btn-icon,.x-ie8 .x-btn-disabled .x-btn-icon{filter:alpha(opacity=60);opacity:.6}.x-ie9 .x-btn button{overflow:visible!important}* html .x-ie .x-btn button{width:1px}.x-ie .x-btn button{overflow-x:visible;vertical-align:baseline}.x-strict .x-ie6 .x-btn .x-frame-mc,.x-strict .x-ie7 .x-btn .x-frame-mc{height:100%}.x-btn .x-frame-mc{vertical-align:middle;white-space:nowrap;cursor:pointer}.x-btn-noicon .x-frame-mc{text-align:center}.x-btn-icon-text-left .x-btn-icon{background-position:left center}.x-btn-icon-text-right .x-btn-icon{background-position:right center}.x-btn-icon-text-top .x-btn-icon{background-position:center top}.x-btn-icon-text-bottom .x-btn-icon{background-position:center bottom}.x-btn button,.x-btn a{position:relative}.x-btn button .x-btn-icon,.x-btn a .x-btn-icon{position:absolute;background-repeat:no-repeat}.x-btn-arrow-right{background:transparent no-repeat right center;padding-right:12px}.x-btn-arrow-right .x-btn-inner{padding-right:0!important}.x-toolbar .x-btn-arrow-right{padding-right:12px}.x-btn-arrow-bottom{background:transparent no-repeat center bottom;padding-bottom:12px}.x-btn-arrow{background-image:url('../../extjs/resources/themes/images/default/button/arrow.gif');display:block}.x-btn-split-right,.x-btn-over .x-btn-split-right{background:transparent no-repeat right center;background-image:url('../../extjs/resources/themes/images/default/button/s-arrow.gif');padding-right:14px!important}.x-btn-split-bottom,.x-btn-over .x-btn-split-bottom{background:transparent no-repeat center bottom;background-image:url('../../extjs/resources/themes/images/default/button/s-arrow-b.gif');padding-bottom:14px}.x-toolbar .x-btn-split-right{background-image:url('../../extjs/resources/themes/images/default/button/s-arrow-noline.gif');padding-right:12px!important}.x-toolbar .x-btn-split-bottom{background-image:url('../../extjs/resources/themes/images/default/button/s-arrow-b-noline.gif')}.x-btn-split{display:block}.x-item-disabled,.x-item-disabled *{cursor:default}.x-cycle-fixed-width .x-btn-inner{text-align:inherit}.x-btn-over .x-btn-split-right{background-image:url('../../extjs/resources/themes/images/default/button/s-arrow-o.gif')}.x-btn-over .x-btn-split-bottom{background-image:url('../../extjs/resources/themes/images/default/button/s-arrow-bo.gif')}.x-btn-default-small{border-color:#d1d1d1}.x-btn-default-small{-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px;padding:2px 2px 2px 2px;border-width:1px;border-style:solid;background-image:none;background-color:white;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#fff),color-stop(48%,#f9f9f9),color-stop(52%,#e2e2e2),color-stop(100%,#e7e7e7));background-image:-webkit-linear-gradient(top,#fff,#f9f9f9 48%,#e2e2e2 52%,#e7e7e7);background-image:-moz-linear-gradient(top,#fff,#f9f9f9 48%,#e2e2e2 52%,#e7e7e7);background-image:-o-linear-gradient(top,#fff,#f9f9f9 48%,#e2e2e2 52%,#e7e7e7);background-image:linear-gradient(top,#fff,#f9f9f9 48%,#e2e2e2 52%,#e7e7e7)}.x-nlg .x-btn-default-small-mc{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-small-bg.gif');background-color:white}.x-nbr .x-btn-default-small{padding:0!important;border-width:0!important;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0;background-color:transparent;background-position:1100303px 1000303px}.x-nbr .x-btn-default-small-tl,.x-nbr .x-btn-default-small-bl,.x-nbr .x-btn-default-small-tr,.x-nbr .x-btn-default-small-br,.x-nbr .x-btn-default-small-tc,.x-nbr .x-btn-default-small-bc,.x-nbr .x-btn-default-small-ml,.x-nbr .x-btn-default-small-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-small-corners.gif')}.x-nbr .x-btn-default-small-ml,.x-nbr .x-btn-default-small-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-small-sides.gif');background-position:0 0}.x-nbr .x-btn-default-small-mc{padding:0}.x-strict .x-ie7 .x-btn-default-small-tl,.x-strict .x-ie7 .x-btn-default-small-bl{position:relative;right:0}.x-btn-default-small .x-btn-inner{font-size:11px;font-weight:normal;font-family:Helvetica Neue,Arial,sans-serif;color:#333;background-repeat:no-repeat;padding:0 4px}.x-btn-default-small-icon button,.x-btn-default-small-icon a,.x-btn-default-small-icon .x-btn-inner,.x-btn-default-small-noicon button,.x-btn-default-small-noicon a,.x-btn-default-small-noicon .x-btn-inner{height:16px;line-height:16px}.x-btn-default-small-icon button,.x-btn-default-small-icon a{padding:0}.x-btn-default-small-icon .x-btn-inner{width:16px;padding:0}.x-btn-default-small-icon .x-btn-icon{width:16px;height:16px;top:0;left:0;bottom:0;right:0}.x-btn-default-small-icon-text-left button,.x-btn-default-small-icon-text-left a{height:16px}.x-btn-default-small-icon-text-left .x-btn-inner{height:16px;line-height:16px;padding-left:20px}.x-btn-default-small-icon-text-left .x-btn-icon{width:16px;height:auto;top:0;left:0;bottom:0;right:auto}.x-ie6 .x-btn-default-small-icon-text-left .x-btn-icon,.x-quirks .x-btn-default-small-icon-text-left .x-btn-icon{height:16px}.x-btn-default-small-icon-text-right button,.x-btn-default-small-icon-text-right a{height:16px}.x-btn-default-small-icon-text-right .x-btn-inner{height:16px;line-height:16px;padding-right:20px!important}.x-btn-default-small-icon-text-right .x-btn-icon{width:16px;height:auto;top:0;left:auto;bottom:0;right:0}.x-ie6 .x-btn-default-small-icon-text-right .x-btn-icon,.x-quirks .x-btn-default-small-icon-text-right .x-btn-icon{height:16px}.x-btn-default-small-icon-text-top .x-btn-inner{padding-top:20px}.x-btn-default-small-icon-text-top .x-btn-icon{width:auto;height:16px;top:0;left:0;bottom:auto;right:0}.x-ie6 .x-btn-default-small-icon-text-top .x-btn-icon,.x-quirks .x-ie .x-btn-default-small-icon-text-top .x-btn-icon{width:16px}.x-btn-default-small-icon-text-bottom .x-btn-inner{padding-bottom:20px}.x-btn-default-small-icon-text-bottom .x-btn-icon{width:auto;height:16px;top:auto;left:0;bottom:0;right:0}.x-ie6 .x-btn-default-small-icon-text-bottom .x-btn-icon,.x-quirks .x-ie .x-btn-default-small-icon-text-bottom .x-btn-icon{width:16px}.x-btn-default-small-over{border-color:#e4dad9;background-image:none;background-color:white;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#fff),color-stop(48%,#fcf7f7),color-stop(52%,#eae5e5),color-stop(100%,#efe8e8));background-image:-webkit-linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8);background-image:-moz-linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8);background-image:-o-linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8);background-image:linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8)}.x-btn-default-small-focus{border-color:#e4dad9;background-image:none;background-color:white;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#fff),color-stop(48%,#fcf7f7),color-stop(52%,#eae5e5),color-stop(100%,#efe8e8));background-image:-webkit-linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8);background-image:-moz-linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8);background-image:-o-linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8);background-image:linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8)}.x-btn-default-small-menu-active,.x-btn-default-small-pressed{border-color:#d5cfcf;background-image:none;background-color:#e0e0e0;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#e0e0e0),color-stop(48%,#e5e5e5),color-stop(52%,#e4c3c5),color-stop(100%,#e7cbcc));background-image:-webkit-linear-gradient(top,#e0e0e0,#e5e5e5 48%,#e4c3c5 52%,#e7cbcc);background-image:-moz-linear-gradient(top,#e0e0e0,#e5e5e5 48%,#e4c3c5 52%,#e7cbcc);background-image:-o-linear-gradient(top,#e0e0e0,#e5e5e5 48%,#e4c3c5 52%,#e7cbcc);background-image:linear-gradient(top,#e0e0e0,#e5e5e5 48%,#e4c3c5 52%,#e7cbcc)}.x-btn-default-small-disabled{border-color:#e9e9e9;background-image:none;background-color:white;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#fff),color-stop(48%,#f9f9f9),color-stop(52%,#e2e2e2),color-stop(100%,#e7e7e7));background-image:-webkit-linear-gradient(top,#fff,#f9f9f9 48%,#e2e2e2 52%,#e7e7e7);background-image:-moz-linear-gradient(top,#fff,#f9f9f9 48%,#e2e2e2 52%,#e7e7e7);background-image:-o-linear-gradient(top,#fff,#f9f9f9 48%,#e2e2e2 52%,#e7e7e7);background-image:linear-gradient(top,#fff,#f9f9f9 48%,#e2e2e2 52%,#e7e7e7)}.x-btn-default-small-disabled .x-btn-inner{color:#333!important}.x-ie .x-btn-default-small-disabled .x-btn-inner{color:#595959!important}.x-ie6 .x-btn-default-small-disabled .x-btn-inner{color:#8c8c8c!important}.x-nbr .x-btn-default-small-over .x-frame-tl,.x-nbr .x-btn-default-small-over .x-frame-bl,.x-nbr .x-btn-default-small-over .x-frame-tr,.x-nbr .x-btn-default-small-over .x-frame-br,.x-nbr .x-btn-default-small-over .x-frame-tc,.x-nbr .x-btn-default-small-over .x-frame-bc{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-small-over-corners.gif')}.x-nbr .x-btn-default-small-over .x-frame-ml,.x-nbr .x-btn-default-small-over .x-frame-mr{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-small-over-sides.gif')}.x-nbr .x-btn-default-small-over .x-frame-mc{background-color:white;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-small-over-bg.gif')}.x-nbr .x-btn-default-small-focus .x-frame-tl,.x-nbr .x-btn-default-small-focus .x-frame-bl,.x-nbr .x-btn-default-small-focus .x-frame-tr,.x-nbr .x-btn-default-small-focus .x-frame-br,.x-nbr .x-btn-default-small-focus .x-frame-tc,.x-nbr .x-btn-default-small-focus .x-frame-bc{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-small-focus-corners.gif')}.x-nbr .x-btn-default-small-focus .x-frame-ml,.x-nbr .x-btn-default-small-focus .x-frame-mr{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-small-focus-sides.gif')}.x-nbr .x-btn-default-small-focus .x-frame-mc{background-color:white;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-small-focus-bg.gif')}.x-nbr .x-btn-default-small-menu-active .x-frame-tl,.x-nbr .x-btn-default-small-menu-active .x-frame-bl,.x-nbr .x-btn-default-small-menu-active .x-frame-tr,.x-nbr .x-btn-default-small-menu-active .x-frame-br,.x-nbr .x-btn-default-small-menu-active .x-frame-tc,.x-nbr .x-btn-default-small-menu-active .x-frame-bc,.x-nbr .x-btn-default-small-pressed .x-frame-tl,.x-nbr .x-btn-default-small-pressed .x-frame-bl,.x-nbr .x-btn-default-small-pressed .x-frame-tr,.x-nbr .x-btn-default-small-pressed .x-frame-br,.x-nbr .x-btn-default-small-pressed .x-frame-tc,.x-nbr .x-btn-default-small-pressed .x-frame-bc{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-small-pressed-corners.gif')}.x-nbr .x-btn-default-small-menu-active .x-frame-ml,.x-nbr .x-btn-default-small-menu-active .x-frame-mr,.x-nbr .x-btn-default-small-pressed .x-frame-ml,.x-nbr .x-btn-default-small-pressed .x-frame-mr{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-small-pressed-sides.gif')}.x-nbr .x-btn-default-small-menu-active .x-frame-mc,.x-nbr .x-btn-default-small-pressed .x-frame-mc{background-color:#e0e0e0;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-small-pressed-bg.gif')}.x-nbr .x-btn-default-small-disabled .x-frame-tl,.x-nbr .x-btn-default-small-disabled .x-frame-bl,.x-nbr .x-btn-default-small-disabled .x-frame-tr,.x-nbr .x-btn-default-small-disabled .x-frame-br,.x-nbr .x-btn-default-small-disabled .x-frame-tc,.x-nbr .x-btn-default-small-disabled .x-frame-bc{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-small-disabled-corners.gif')}.x-nbr .x-btn-default-small-disabled .x-frame-ml,.x-nbr .x-btn-default-small-disabled .x-frame-mr{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-small-disabled-sides.gif')}.x-nbr .x-btn-default-small-disabled .x-frame-mc{background-color:white;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-small-disabled-bg.gif')}.x-nlg .x-btn-default-small{background-repeat:repeat-x;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-small-bg.gif')}.x-nlg .x-btn-default-small-over{background-repeat:repeat-x;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-small-over-bg.gif')}.x-nlg .x-btn-default-small-focus{background-repeat:repeat-x;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-small-focus-bg.gif')}.x-nlg .x-btn-default-small-menu-active,.x-nlg .x-btn-default-small-pressed{background-repeat:repeat-x;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-small-pressed-bg.gif')}.x-nlg .x-btn-default-small-disabled{background-repeat:repeat-x;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-small-disabled-bg.gif')}.x-btn-default-medium{border-color:#d1d1d1}.x-btn-default-medium{-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px;padding:3px 3px 3px 3px;border-width:1px;border-style:solid;background-image:none;background-color:white;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#fff),color-stop(48%,#f9f9f9),color-stop(52%,#e2e2e2),color-stop(100%,#e7e7e7));background-image:-webkit-linear-gradient(top,#fff,#f9f9f9 48%,#e2e2e2 52%,#e7e7e7);background-image:-moz-linear-gradient(top,#fff,#f9f9f9 48%,#e2e2e2 52%,#e7e7e7);background-image:-o-linear-gradient(top,#fff,#f9f9f9 48%,#e2e2e2 52%,#e7e7e7);background-image:linear-gradient(top,#fff,#f9f9f9 48%,#e2e2e2 52%,#e7e7e7)}.x-nlg .x-btn-default-medium-mc{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-medium-bg.gif');background-color:white}.x-nbr .x-btn-default-medium{padding:0!important;border-width:0!important;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0;background-color:transparent;background-position:1100303px 1000303px}.x-nbr .x-btn-default-medium-tl,.x-nbr .x-btn-default-medium-bl,.x-nbr .x-btn-default-medium-tr,.x-nbr .x-btn-default-medium-br,.x-nbr .x-btn-default-medium-tc,.x-nbr .x-btn-default-medium-bc,.x-nbr .x-btn-default-medium-ml,.x-nbr .x-btn-default-medium-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-medium-corners.gif')}.x-nbr .x-btn-default-medium-ml,.x-nbr .x-btn-default-medium-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-medium-sides.gif');background-position:0 0}.x-nbr .x-btn-default-medium-mc{padding:1px 1px 1px 1px}.x-strict .x-ie7 .x-btn-default-medium-tl,.x-strict .x-ie7 .x-btn-default-medium-bl{position:relative;right:0}.x-btn-default-medium .x-btn-inner{font-size:11px;font-weight:normal;font-family:Helvetica Neue,Arial,sans-serif;color:#333;background-repeat:no-repeat;padding:0 3px}.x-btn-default-medium-icon button,.x-btn-default-medium-icon a,.x-btn-default-medium-icon .x-btn-inner,.x-btn-default-medium-noicon button,.x-btn-default-medium-noicon a,.x-btn-default-medium-noicon .x-btn-inner{height:24px;line-height:24px}.x-btn-default-medium-icon button,.x-btn-default-medium-icon a{padding:0}.x-btn-default-medium-icon .x-btn-inner{width:24px;padding:0}.x-btn-default-medium-icon .x-btn-icon{width:24px;height:24px;top:0;left:0;bottom:0;right:0}.x-btn-default-medium-icon-text-left button,.x-btn-default-medium-icon-text-left a{height:24px}.x-btn-default-medium-icon-text-left .x-btn-inner{height:24px;line-height:24px;padding-left:28px}.x-btn-default-medium-icon-text-left .x-btn-icon{width:24px;height:auto;top:0;left:0;bottom:0;right:auto}.x-ie6 .x-btn-default-medium-icon-text-left .x-btn-icon,.x-quirks .x-btn-default-medium-icon-text-left .x-btn-icon{height:24px}.x-btn-default-medium-icon-text-right button,.x-btn-default-medium-icon-text-right a{height:24px}.x-btn-default-medium-icon-text-right .x-btn-inner{height:24px;line-height:24px;padding-right:28px!important}.x-btn-default-medium-icon-text-right .x-btn-icon{width:24px;height:auto;top:0;left:auto;bottom:0;right:0}.x-ie6 .x-btn-default-medium-icon-text-right .x-btn-icon,.x-quirks .x-btn-default-medium-icon-text-right .x-btn-icon{height:24px}.x-btn-default-medium-icon-text-top .x-btn-inner{padding-top:28px}.x-btn-default-medium-icon-text-top .x-btn-icon{width:auto;height:24px;top:0;left:0;bottom:auto;right:0}.x-ie6 .x-btn-default-medium-icon-text-top .x-btn-icon,.x-quirks .x-ie .x-btn-default-medium-icon-text-top .x-btn-icon{width:24px}.x-btn-default-medium-icon-text-bottom .x-btn-inner{padding-bottom:28px}.x-btn-default-medium-icon-text-bottom .x-btn-icon{width:auto;height:24px;top:auto;left:0;bottom:0;right:0}.x-ie6 .x-btn-default-medium-icon-text-bottom .x-btn-icon,.x-quirks .x-ie .x-btn-default-medium-icon-text-bottom .x-btn-icon{width:24px}.x-btn-default-medium-over{border-color:#e4dad9;background-image:none;background-color:white;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#fff),color-stop(48%,#fcf7f7),color-stop(52%,#eae5e5),color-stop(100%,#efe8e8));background-image:-webkit-linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8);background-image:-moz-linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8);background-image:-o-linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8);background-image:linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8)}.x-btn-default-medium-focus{border-color:#e4dad9;background-image:none;background-color:white;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#fff),color-stop(48%,#fcf7f7),color-stop(52%,#eae5e5),color-stop(100%,#efe8e8));background-image:-webkit-linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8);background-image:-moz-linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8);background-image:-o-linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8);background-image:linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8)}.x-btn-default-medium-menu-active,.x-btn-default-medium-pressed{border-color:#d5cfcf;background-image:none;background-color:#e0e0e0;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#e0e0e0),color-stop(48%,#e5e5e5),color-stop(52%,#e4c3c5),color-stop(100%,#e7cbcc));background-image:-webkit-linear-gradient(top,#e0e0e0,#e5e5e5 48%,#e4c3c5 52%,#e7cbcc);background-image:-moz-linear-gradient(top,#e0e0e0,#e5e5e5 48%,#e4c3c5 52%,#e7cbcc);background-image:-o-linear-gradient(top,#e0e0e0,#e5e5e5 48%,#e4c3c5 52%,#e7cbcc);background-image:linear-gradient(top,#e0e0e0,#e5e5e5 48%,#e4c3c5 52%,#e7cbcc)}.x-btn-default-medium-disabled{border-color:#e9e9e9;background-image:none;background-color:white;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#fff),color-stop(48%,#f9f9f9),color-stop(52%,#e2e2e2),color-stop(100%,#e7e7e7));background-image:-webkit-linear-gradient(top,#fff,#f9f9f9 48%,#e2e2e2 52%,#e7e7e7);background-image:-moz-linear-gradient(top,#fff,#f9f9f9 48%,#e2e2e2 52%,#e7e7e7);background-image:-o-linear-gradient(top,#fff,#f9f9f9 48%,#e2e2e2 52%,#e7e7e7);background-image:linear-gradient(top,#fff,#f9f9f9 48%,#e2e2e2 52%,#e7e7e7)}.x-btn-default-medium-disabled .x-btn-inner{color:#333!important}.x-ie .x-btn-default-medium-disabled .x-btn-inner{color:#595959!important}.x-ie6 .x-btn-default-medium-disabled .x-btn-inner{color:#8c8c8c!important}.x-nbr .x-btn-default-medium-over .x-frame-tl,.x-nbr .x-btn-default-medium-over .x-frame-bl,.x-nbr .x-btn-default-medium-over .x-frame-tr,.x-nbr .x-btn-default-medium-over .x-frame-br,.x-nbr .x-btn-default-medium-over .x-frame-tc,.x-nbr .x-btn-default-medium-over .x-frame-bc{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-medium-over-corners.gif')}.x-nbr .x-btn-default-medium-over .x-frame-ml,.x-nbr .x-btn-default-medium-over .x-frame-mr{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-medium-over-sides.gif')}.x-nbr .x-btn-default-medium-over .x-frame-mc{background-color:white;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-medium-over-bg.gif')}.x-nbr .x-btn-default-medium-focus .x-frame-tl,.x-nbr .x-btn-default-medium-focus .x-frame-bl,.x-nbr .x-btn-default-medium-focus .x-frame-tr,.x-nbr .x-btn-default-medium-focus .x-frame-br,.x-nbr .x-btn-default-medium-focus .x-frame-tc,.x-nbr .x-btn-default-medium-focus .x-frame-bc{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-medium-focus-corners.gif')}.x-nbr .x-btn-default-medium-focus .x-frame-ml,.x-nbr .x-btn-default-medium-focus .x-frame-mr{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-medium-focus-sides.gif')}.x-nbr .x-btn-default-medium-focus .x-frame-mc{background-color:white;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-medium-focus-bg.gif')}.x-nbr .x-btn-default-medium-menu-active .x-frame-tl,.x-nbr .x-btn-default-medium-menu-active .x-frame-bl,.x-nbr .x-btn-default-medium-menu-active .x-frame-tr,.x-nbr .x-btn-default-medium-menu-active .x-frame-br,.x-nbr .x-btn-default-medium-menu-active .x-frame-tc,.x-nbr .x-btn-default-medium-menu-active .x-frame-bc,.x-nbr .x-btn-default-medium-pressed .x-frame-tl,.x-nbr .x-btn-default-medium-pressed .x-frame-bl,.x-nbr .x-btn-default-medium-pressed .x-frame-tr,.x-nbr .x-btn-default-medium-pressed .x-frame-br,.x-nbr .x-btn-default-medium-pressed .x-frame-tc,.x-nbr .x-btn-default-medium-pressed .x-frame-bc{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-medium-pressed-corners.gif')}.x-nbr .x-btn-default-medium-menu-active .x-frame-ml,.x-nbr .x-btn-default-medium-menu-active .x-frame-mr,.x-nbr .x-btn-default-medium-pressed .x-frame-ml,.x-nbr .x-btn-default-medium-pressed .x-frame-mr{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-medium-pressed-sides.gif')}.x-nbr .x-btn-default-medium-menu-active .x-frame-mc,.x-nbr .x-btn-default-medium-pressed .x-frame-mc{background-color:#e0e0e0;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-medium-pressed-bg.gif')}.x-nbr .x-btn-default-medium-disabled .x-frame-tl,.x-nbr .x-btn-default-medium-disabled .x-frame-bl,.x-nbr .x-btn-default-medium-disabled .x-frame-tr,.x-nbr .x-btn-default-medium-disabled .x-frame-br,.x-nbr .x-btn-default-medium-disabled .x-frame-tc,.x-nbr .x-btn-default-medium-disabled .x-frame-bc{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-medium-disabled-corners.gif')}.x-nbr .x-btn-default-medium-disabled .x-frame-ml,.x-nbr .x-btn-default-medium-disabled .x-frame-mr{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-medium-disabled-sides.gif')}.x-nbr .x-btn-default-medium-disabled .x-frame-mc{background-color:white;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-medium-disabled-bg.gif')}.x-nlg .x-btn-default-medium{background-repeat:repeat-x;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-medium-bg.gif')}.x-nlg .x-btn-default-medium-over{background-repeat:repeat-x;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-medium-over-bg.gif')}.x-nlg .x-btn-default-medium-focus{background-repeat:repeat-x;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-medium-focus-bg.gif')}.x-nlg .x-btn-default-medium-menu-active,.x-nlg .x-btn-default-medium-pressed{background-repeat:repeat-x;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-medium-pressed-bg.gif')}.x-nlg .x-btn-default-medium-disabled{background-repeat:repeat-x;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-medium-disabled-bg.gif')}.x-btn-default-large{border-color:#d1d1d1}.x-btn-default-large{-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px;padding:3px 3px 3px 3px;border-width:1px;border-style:solid;background-image:none;background-color:white;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#fff),color-stop(48%,#f9f9f9),color-stop(52%,#e2e2e2),color-stop(100%,#e7e7e7));background-image:-webkit-linear-gradient(top,#fff,#f9f9f9 48%,#e2e2e2 52%,#e7e7e7);background-image:-moz-linear-gradient(top,#fff,#f9f9f9 48%,#e2e2e2 52%,#e7e7e7);background-image:-o-linear-gradient(top,#fff,#f9f9f9 48%,#e2e2e2 52%,#e7e7e7);background-image:linear-gradient(top,#fff,#f9f9f9 48%,#e2e2e2 52%,#e7e7e7)}.x-nlg .x-btn-default-large-mc{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-large-bg.gif');background-color:white}.x-nbr .x-btn-default-large{padding:0!important;border-width:0!important;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0;background-color:transparent;background-position:1100303px 1000303px}.x-nbr .x-btn-default-large-tl,.x-nbr .x-btn-default-large-bl,.x-nbr .x-btn-default-large-tr,.x-nbr .x-btn-default-large-br,.x-nbr .x-btn-default-large-tc,.x-nbr .x-btn-default-large-bc,.x-nbr .x-btn-default-large-ml,.x-nbr .x-btn-default-large-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-large-corners.gif')}.x-nbr .x-btn-default-large-ml,.x-nbr .x-btn-default-large-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-large-sides.gif');background-position:0 0}.x-nbr .x-btn-default-large-mc{padding:1px 1px 1px 1px}.x-strict .x-ie7 .x-btn-default-large-tl,.x-strict .x-ie7 .x-btn-default-large-bl{position:relative;right:0}.x-btn-default-large .x-btn-inner{font-size:11px;font-weight:normal;font-family:Helvetica Neue,Arial,sans-serif;color:#333;background-repeat:no-repeat;padding:0 3px}.x-btn-default-large-icon button,.x-btn-default-large-icon a,.x-btn-default-large-icon .x-btn-inner,.x-btn-default-large-noicon button,.x-btn-default-large-noicon a,.x-btn-default-large-noicon .x-btn-inner{height:32px;line-height:32px}.x-btn-default-large-icon button,.x-btn-default-large-icon a{padding:0}.x-btn-default-large-icon .x-btn-inner{width:32px;padding:0}.x-btn-default-large-icon .x-btn-icon{width:32px;height:32px;top:0;left:0;bottom:0;right:0}.x-btn-default-large-icon-text-left button,.x-btn-default-large-icon-text-left a{height:32px}.x-btn-default-large-icon-text-left .x-btn-inner{height:32px;line-height:32px;padding-left:36px}.x-btn-default-large-icon-text-left .x-btn-icon{width:32px;height:auto;top:0;left:0;bottom:0;right:auto}.x-ie6 .x-btn-default-large-icon-text-left .x-btn-icon,.x-quirks .x-btn-default-large-icon-text-left .x-btn-icon{height:32px}.x-btn-default-large-icon-text-right button,.x-btn-default-large-icon-text-right a{height:32px}.x-btn-default-large-icon-text-right .x-btn-inner{height:32px;line-height:32px;padding-right:36px!important}.x-btn-default-large-icon-text-right .x-btn-icon{width:32px;height:auto;top:0;left:auto;bottom:0;right:0}.x-ie6 .x-btn-default-large-icon-text-right .x-btn-icon,.x-quirks .x-btn-default-large-icon-text-right .x-btn-icon{height:32px}.x-btn-default-large-icon-text-top .x-btn-inner{padding-top:36px}.x-btn-default-large-icon-text-top .x-btn-icon{width:auto;height:32px;top:0;left:0;bottom:auto;right:0}.x-ie6 .x-btn-default-large-icon-text-top .x-btn-icon,.x-quirks .x-ie .x-btn-default-large-icon-text-top .x-btn-icon{width:32px}.x-btn-default-large-icon-text-bottom .x-btn-inner{padding-bottom:36px}.x-btn-default-large-icon-text-bottom .x-btn-icon{width:auto;height:32px;top:auto;left:0;bottom:0;right:0}.x-ie6 .x-btn-default-large-icon-text-bottom .x-btn-icon,.x-quirks .x-ie .x-btn-default-large-icon-text-bottom .x-btn-icon{width:32px}.x-btn-default-large-over{border-color:#e4dad9;background-image:none;background-color:white;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#fff),color-stop(48%,#fcf7f7),color-stop(52%,#eae5e5),color-stop(100%,#efe8e8));background-image:-webkit-linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8);background-image:-moz-linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8);background-image:-o-linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8);background-image:linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8)}.x-btn-default-large-focus{border-color:#e4dad9;background-image:none;background-color:white;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#fff),color-stop(48%,#fcf7f7),color-stop(52%,#eae5e5),color-stop(100%,#efe8e8));background-image:-webkit-linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8);background-image:-moz-linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8);background-image:-o-linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8);background-image:linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8)}.x-btn-default-large-menu-active,.x-btn-default-large-pressed{border-color:#d5cfcf;background-image:none;background-color:#e0e0e0;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#e0e0e0),color-stop(48%,#e5e5e5),color-stop(52%,#e4c3c5),color-stop(100%,#e7cbcc));background-image:-webkit-linear-gradient(top,#e0e0e0,#e5e5e5 48%,#e4c3c5 52%,#e7cbcc);background-image:-moz-linear-gradient(top,#e0e0e0,#e5e5e5 48%,#e4c3c5 52%,#e7cbcc);background-image:-o-linear-gradient(top,#e0e0e0,#e5e5e5 48%,#e4c3c5 52%,#e7cbcc);background-image:linear-gradient(top,#e0e0e0,#e5e5e5 48%,#e4c3c5 52%,#e7cbcc)}.x-btn-default-large-disabled{border-color:#e9e9e9;background-image:none;background-color:white;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#fff),color-stop(48%,#f9f9f9),color-stop(52%,#e2e2e2),color-stop(100%,#e7e7e7));background-image:-webkit-linear-gradient(top,#fff,#f9f9f9 48%,#e2e2e2 52%,#e7e7e7);background-image:-moz-linear-gradient(top,#fff,#f9f9f9 48%,#e2e2e2 52%,#e7e7e7);background-image:-o-linear-gradient(top,#fff,#f9f9f9 48%,#e2e2e2 52%,#e7e7e7);background-image:linear-gradient(top,#fff,#f9f9f9 48%,#e2e2e2 52%,#e7e7e7)}.x-btn-default-large-disabled .x-btn-inner{color:#333!important}.x-ie .x-btn-default-large-disabled .x-btn-inner{color:#595959!important}.x-ie6 .x-btn-default-large-disabled .x-btn-inner{color:#8c8c8c!important}.x-nbr .x-btn-default-large-over .x-frame-tl,.x-nbr .x-btn-default-large-over .x-frame-bl,.x-nbr .x-btn-default-large-over .x-frame-tr,.x-nbr .x-btn-default-large-over .x-frame-br,.x-nbr .x-btn-default-large-over .x-frame-tc,.x-nbr .x-btn-default-large-over .x-frame-bc{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-large-over-corners.gif')}.x-nbr .x-btn-default-large-over .x-frame-ml,.x-nbr .x-btn-default-large-over .x-frame-mr{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-large-over-sides.gif')}.x-nbr .x-btn-default-large-over .x-frame-mc{background-color:white;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-large-over-bg.gif')}.x-nbr .x-btn-default-large-focus .x-frame-tl,.x-nbr .x-btn-default-large-focus .x-frame-bl,.x-nbr .x-btn-default-large-focus .x-frame-tr,.x-nbr .x-btn-default-large-focus .x-frame-br,.x-nbr .x-btn-default-large-focus .x-frame-tc,.x-nbr .x-btn-default-large-focus .x-frame-bc{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-large-focus-corners.gif')}.x-nbr .x-btn-default-large-focus .x-frame-ml,.x-nbr .x-btn-default-large-focus .x-frame-mr{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-large-focus-sides.gif')}.x-nbr .x-btn-default-large-focus .x-frame-mc{background-color:white;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-large-focus-bg.gif')}.x-nbr .x-btn-default-large-menu-active .x-frame-tl,.x-nbr .x-btn-default-large-menu-active .x-frame-bl,.x-nbr .x-btn-default-large-menu-active .x-frame-tr,.x-nbr .x-btn-default-large-menu-active .x-frame-br,.x-nbr .x-btn-default-large-menu-active .x-frame-tc,.x-nbr .x-btn-default-large-menu-active .x-frame-bc,.x-nbr .x-btn-default-large-pressed .x-frame-tl,.x-nbr .x-btn-default-large-pressed .x-frame-bl,.x-nbr .x-btn-default-large-pressed .x-frame-tr,.x-nbr .x-btn-default-large-pressed .x-frame-br,.x-nbr .x-btn-default-large-pressed .x-frame-tc,.x-nbr .x-btn-default-large-pressed .x-frame-bc{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-large-pressed-corners.gif')}.x-nbr .x-btn-default-large-menu-active .x-frame-ml,.x-nbr .x-btn-default-large-menu-active .x-frame-mr,.x-nbr .x-btn-default-large-pressed .x-frame-ml,.x-nbr .x-btn-default-large-pressed .x-frame-mr{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-large-pressed-sides.gif')}.x-nbr .x-btn-default-large-menu-active .x-frame-mc,.x-nbr .x-btn-default-large-pressed .x-frame-mc{background-color:#e0e0e0;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-large-pressed-bg.gif')}.x-nbr .x-btn-default-large-disabled .x-frame-tl,.x-nbr .x-btn-default-large-disabled .x-frame-bl,.x-nbr .x-btn-default-large-disabled .x-frame-tr,.x-nbr .x-btn-default-large-disabled .x-frame-br,.x-nbr .x-btn-default-large-disabled .x-frame-tc,.x-nbr .x-btn-default-large-disabled .x-frame-bc{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-large-disabled-corners.gif')}.x-nbr .x-btn-default-large-disabled .x-frame-ml,.x-nbr .x-btn-default-large-disabled .x-frame-mr{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-large-disabled-sides.gif')}.x-nbr .x-btn-default-large-disabled .x-frame-mc{background-color:white;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-large-disabled-bg.gif')}.x-nlg .x-btn-default-large{background-repeat:repeat-x;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-large-bg.gif')}.x-nlg .x-btn-default-large-over{background-repeat:repeat-x;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-large-over-bg.gif')}.x-nlg .x-btn-default-large-focus{background-repeat:repeat-x;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-large-focus-bg.gif')}.x-nlg .x-btn-default-large-menu-active,.x-nlg .x-btn-default-large-pressed{background-repeat:repeat-x;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-large-pressed-bg.gif')}.x-nlg .x-btn-default-large-disabled{background-repeat:repeat-x;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-large-disabled-bg.gif')}.x-btn-default-toolbar-small{border-color:transparent}.x-btn-default-toolbar-small{-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px;padding:2px 2px 2px 2px;border-width:1px;border-style:solid;background-color:transparent}.x-nlg .x-btn-default-toolbar-small-mc{background-color:transparent}.x-nbr .x-btn-default-toolbar-small{padding:0!important;border-width:0!important;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0;background-color:transparent;background-position:1100303px 1000303px}.x-nbr .x-btn-default-toolbar-small-tl,.x-nbr .x-btn-default-toolbar-small-bl,.x-nbr .x-btn-default-toolbar-small-tr,.x-nbr .x-btn-default-toolbar-small-br,.x-nbr .x-btn-default-toolbar-small-tc,.x-nbr .x-btn-default-toolbar-small-bc,.x-nbr .x-btn-default-toolbar-small-ml,.x-nbr .x-btn-default-toolbar-small-mr{zoom:1}.x-nbr .x-btn-default-toolbar-small-ml,.x-nbr .x-btn-default-toolbar-small-mr{zoom:1}.x-nbr .x-btn-default-toolbar-small-mc{padding:0}.x-strict .x-ie7 .x-btn-default-toolbar-small-tl,.x-strict .x-ie7 .x-btn-default-toolbar-small-bl{position:relative;right:0}.x-btn-default-toolbar-small .x-btn-inner{font-size:11px;font-weight:normal;font-family:Helvetica Neue,Arial,sans-serif;color:#333;background-repeat:no-repeat;padding:0 4px}.x-btn-default-toolbar-small-icon button,.x-btn-default-toolbar-small-icon a,.x-btn-default-toolbar-small-icon .x-btn-inner,.x-btn-default-toolbar-small-noicon button,.x-btn-default-toolbar-small-noicon a,.x-btn-default-toolbar-small-noicon .x-btn-inner{height:16px;line-height:16px}.x-btn-default-toolbar-small-icon button,.x-btn-default-toolbar-small-icon a{padding:0}.x-btn-default-toolbar-small-icon .x-btn-inner{width:16px;padding:0}.x-btn-default-toolbar-small-icon .x-btn-icon{width:16px;height:16px;top:0;left:0;bottom:0;right:0}.x-btn-default-toolbar-small-icon-text-left button,.x-btn-default-toolbar-small-icon-text-left a{height:16px}.x-btn-default-toolbar-small-icon-text-left .x-btn-inner{height:16px;line-height:16px;padding-left:20px}.x-btn-default-toolbar-small-icon-text-left .x-btn-icon{width:16px;height:auto;top:0;left:0;bottom:0;right:auto}.x-ie6 .x-btn-default-toolbar-small-icon-text-left .x-btn-icon,.x-quirks .x-btn-default-toolbar-small-icon-text-left .x-btn-icon{height:16px}.x-btn-default-toolbar-small-icon-text-right button,.x-btn-default-toolbar-small-icon-text-right a{height:16px}.x-btn-default-toolbar-small-icon-text-right .x-btn-inner{height:16px;line-height:16px;padding-right:20px!important}.x-btn-default-toolbar-small-icon-text-right .x-btn-icon{width:16px;height:auto;top:0;left:auto;bottom:0;right:0}.x-ie6 .x-btn-default-toolbar-small-icon-text-right .x-btn-icon,.x-quirks .x-btn-default-toolbar-small-icon-text-right .x-btn-icon{height:16px}.x-btn-default-toolbar-small-icon-text-top .x-btn-inner{padding-top:20px}.x-btn-default-toolbar-small-icon-text-top .x-btn-icon{width:auto;height:16px;top:0;left:0;bottom:auto;right:0}.x-ie6 .x-btn-default-toolbar-small-icon-text-top .x-btn-icon,.x-quirks .x-ie .x-btn-default-toolbar-small-icon-text-top .x-btn-icon{width:16px}.x-btn-default-toolbar-small-icon-text-bottom .x-btn-inner{padding-bottom:20px}.x-btn-default-toolbar-small-icon-text-bottom .x-btn-icon{width:auto;height:16px;top:auto;left:0;bottom:0;right:0}.x-ie6 .x-btn-default-toolbar-small-icon-text-bottom .x-btn-icon,.x-quirks .x-ie .x-btn-default-toolbar-small-icon-text-bottom .x-btn-icon{width:16px}.x-btn-default-toolbar-small-over{border-color:#bbb;background-image:none;background-color:white;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#fff),color-stop(48%,#fcf7f7),color-stop(52%,#eae5e5),color-stop(100%,#efe8e8));background-image:-webkit-linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8);background-image:-moz-linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8);background-image:-o-linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8);background-image:linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8)}.x-btn-default-toolbar-small-focus{border-color:#bbb;background-image:none;background-color:white;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#fff),color-stop(48%,#fcf7f7),color-stop(52%,#eae5e5),color-stop(100%,#efe8e8));background-image:-webkit-linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8);background-image:-moz-linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8);background-image:-o-linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8);background-image:linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8)}.x-btn-default-toolbar-small-menu-active,.x-btn-default-toolbar-small-pressed{border-color:#b1b1b1;background-image:none;background-color:#e3e3e3;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#e3e3e3),color-stop(48%,#e9e9e9),color-stop(52%,#e6c8c9),color-stop(100%,#e9d0d1));background-image:-webkit-linear-gradient(top,#e3e3e3,#e9e9e9 48%,#e6c8c9 52%,#e9d0d1);background-image:-moz-linear-gradient(top,#e3e3e3,#e9e9e9 48%,#e6c8c9 52%,#e9d0d1);background-image:-o-linear-gradient(top,#e3e3e3,#e9e9e9 48%,#e6c8c9 52%,#e9d0d1);background-image:linear-gradient(top,#e3e3e3,#e9e9e9 48%,#e6c8c9 52%,#e9d0d1)}.x-btn-default-toolbar-small-disabled{background-image:none;background-color:transparent}.x-btn-default-toolbar-small-disabled .x-btn-inner{color:#333!important}.x-ie .x-btn-default-toolbar-small-disabled .x-btn-inner{color:#595959!important}.x-ie6 .x-btn-default-toolbar-small-disabled .x-btn-inner{color:#8c8c8c!important}.x-nbr .x-btn-default-toolbar-small-over .x-frame-tl,.x-nbr .x-btn-default-toolbar-small-over .x-frame-bl,.x-nbr .x-btn-default-toolbar-small-over .x-frame-tr,.x-nbr .x-btn-default-toolbar-small-over .x-frame-br,.x-nbr .x-btn-default-toolbar-small-over .x-frame-tc,.x-nbr .x-btn-default-toolbar-small-over .x-frame-bc{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-small-over-corners.gif')}.x-nbr .x-btn-default-toolbar-small-over .x-frame-ml,.x-nbr .x-btn-default-toolbar-small-over .x-frame-mr{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-small-over-sides.gif')}.x-nbr .x-btn-default-toolbar-small-over .x-frame-mc{background-color:white;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-small-over-bg.gif')}.x-nbr .x-btn-default-toolbar-small-focus .x-frame-tl,.x-nbr .x-btn-default-toolbar-small-focus .x-frame-bl,.x-nbr .x-btn-default-toolbar-small-focus .x-frame-tr,.x-nbr .x-btn-default-toolbar-small-focus .x-frame-br,.x-nbr .x-btn-default-toolbar-small-focus .x-frame-tc,.x-nbr .x-btn-default-toolbar-small-focus .x-frame-bc{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-small-focus-corners.gif')}.x-nbr .x-btn-default-toolbar-small-focus .x-frame-ml,.x-nbr .x-btn-default-toolbar-small-focus .x-frame-mr{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-small-focus-sides.gif')}.x-nbr .x-btn-default-toolbar-small-focus .x-frame-mc{background-color:white;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-small-focus-bg.gif')}.x-nbr .x-btn-default-toolbar-small-menu-active .x-frame-tl,.x-nbr .x-btn-default-toolbar-small-menu-active .x-frame-bl,.x-nbr .x-btn-default-toolbar-small-menu-active .x-frame-tr,.x-nbr .x-btn-default-toolbar-small-menu-active .x-frame-br,.x-nbr .x-btn-default-toolbar-small-menu-active .x-frame-tc,.x-nbr .x-btn-default-toolbar-small-menu-active .x-frame-bc,.x-nbr .x-btn-default-toolbar-small-pressed .x-frame-tl,.x-nbr .x-btn-default-toolbar-small-pressed .x-frame-bl,.x-nbr .x-btn-default-toolbar-small-pressed .x-frame-tr,.x-nbr .x-btn-default-toolbar-small-pressed .x-frame-br,.x-nbr .x-btn-default-toolbar-small-pressed .x-frame-tc,.x-nbr .x-btn-default-toolbar-small-pressed .x-frame-bc{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-small-pressed-corners.gif')}.x-nbr .x-btn-default-toolbar-small-menu-active .x-frame-ml,.x-nbr .x-btn-default-toolbar-small-menu-active .x-frame-mr,.x-nbr .x-btn-default-toolbar-small-pressed .x-frame-ml,.x-nbr .x-btn-default-toolbar-small-pressed .x-frame-mr{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-small-pressed-sides.gif')}.x-nbr .x-btn-default-toolbar-small-menu-active .x-frame-mc,.x-nbr .x-btn-default-toolbar-small-pressed .x-frame-mc{background-color:#e3e3e3;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-small-pressed-bg.gif')}.x-nbr .x-btn-default-toolbar-small-disabled .x-frame-tl,.x-nbr .x-btn-default-toolbar-small-disabled .x-frame-bl,.x-nbr .x-btn-default-toolbar-small-disabled .x-frame-tr,.x-nbr .x-btn-default-toolbar-small-disabled .x-frame-br,.x-nbr .x-btn-default-toolbar-small-disabled .x-frame-tc,.x-nbr .x-btn-default-toolbar-small-disabled .x-frame-bc{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-small-disabled-corners.gif')}.x-nbr .x-btn-default-toolbar-small-disabled .x-frame-ml,.x-nbr .x-btn-default-toolbar-small-disabled .x-frame-mr{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-small-disabled-sides.gif')}.x-nbr .x-btn-default-toolbar-small-disabled .x-frame-mc{background-color:transparent}.x-nlg .x-btn-default-toolbar-small-over{background-repeat:repeat-x;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-small-over-bg.gif')}.x-nlg .x-btn-default-toolbar-small-focus{background-repeat:repeat-x;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-small-focus-bg.gif')}.x-nlg .x-btn-default-toolbar-small-menu-active,.x-nlg .x-btn-default-toolbar-small-pressed{background-repeat:repeat-x;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-small-pressed-bg.gif')}.x-btn-default-toolbar-medium{border-color:transparent}.x-btn-default-toolbar-medium{-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px;padding:3px 3px 3px 3px;border-width:1px;border-style:solid;background-color:transparent}.x-nlg .x-btn-default-toolbar-medium-mc{background-color:transparent}.x-nbr .x-btn-default-toolbar-medium{padding:0!important;border-width:0!important;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0;background-color:transparent;background-position:1100303px 1000303px}.x-nbr .x-btn-default-toolbar-medium-tl,.x-nbr .x-btn-default-toolbar-medium-bl,.x-nbr .x-btn-default-toolbar-medium-tr,.x-nbr .x-btn-default-toolbar-medium-br,.x-nbr .x-btn-default-toolbar-medium-tc,.x-nbr .x-btn-default-toolbar-medium-bc,.x-nbr .x-btn-default-toolbar-medium-ml,.x-nbr .x-btn-default-toolbar-medium-mr{zoom:1}.x-nbr .x-btn-default-toolbar-medium-ml,.x-nbr .x-btn-default-toolbar-medium-mr{zoom:1}.x-nbr .x-btn-default-toolbar-medium-mc{padding:1px 1px 1px 1px}.x-strict .x-ie7 .x-btn-default-toolbar-medium-tl,.x-strict .x-ie7 .x-btn-default-toolbar-medium-bl{position:relative;right:0}.x-btn-default-toolbar-medium .x-btn-inner{font-size:11px;font-weight:normal;font-family:Helvetica Neue,Arial,sans-serif;color:#333;background-repeat:no-repeat;padding:0 3px}.x-btn-default-toolbar-medium-icon button,.x-btn-default-toolbar-medium-icon a,.x-btn-default-toolbar-medium-icon .x-btn-inner,.x-btn-default-toolbar-medium-noicon button,.x-btn-default-toolbar-medium-noicon a,.x-btn-default-toolbar-medium-noicon .x-btn-inner{height:24px;line-height:24px}.x-btn-default-toolbar-medium-icon button,.x-btn-default-toolbar-medium-icon a{padding:0}.x-btn-default-toolbar-medium-icon .x-btn-inner{width:24px;padding:0}.x-btn-default-toolbar-medium-icon .x-btn-icon{width:24px;height:24px;top:0;left:0;bottom:0;right:0}.x-btn-default-toolbar-medium-icon-text-left button,.x-btn-default-toolbar-medium-icon-text-left a{height:24px}.x-btn-default-toolbar-medium-icon-text-left .x-btn-inner{height:24px;line-height:24px;padding-left:28px}.x-btn-default-toolbar-medium-icon-text-left .x-btn-icon{width:24px;height:auto;top:0;left:0;bottom:0;right:auto}.x-ie6 .x-btn-default-toolbar-medium-icon-text-left .x-btn-icon,.x-quirks .x-btn-default-toolbar-medium-icon-text-left .x-btn-icon{height:24px}.x-btn-default-toolbar-medium-icon-text-right button,.x-btn-default-toolbar-medium-icon-text-right a{height:24px}.x-btn-default-toolbar-medium-icon-text-right .x-btn-inner{height:24px;line-height:24px;padding-right:28px!important}.x-btn-default-toolbar-medium-icon-text-right .x-btn-icon{width:24px;height:auto;top:0;left:auto;bottom:0;right:0}.x-ie6 .x-btn-default-toolbar-medium-icon-text-right .x-btn-icon,.x-quirks .x-btn-default-toolbar-medium-icon-text-right .x-btn-icon{height:24px}.x-btn-default-toolbar-medium-icon-text-top .x-btn-inner{padding-top:28px}.x-btn-default-toolbar-medium-icon-text-top .x-btn-icon{width:auto;height:24px;top:0;left:0;bottom:auto;right:0}.x-ie6 .x-btn-default-toolbar-medium-icon-text-top .x-btn-icon,.x-quirks .x-ie .x-btn-default-toolbar-medium-icon-text-top .x-btn-icon{width:24px}.x-btn-default-toolbar-medium-icon-text-bottom .x-btn-inner{padding-bottom:28px}.x-btn-default-toolbar-medium-icon-text-bottom .x-btn-icon{width:auto;height:24px;top:auto;left:0;bottom:0;right:0}.x-ie6 .x-btn-default-toolbar-medium-icon-text-bottom .x-btn-icon,.x-quirks .x-ie .x-btn-default-toolbar-medium-icon-text-bottom .x-btn-icon{width:24px}.x-btn-default-toolbar-medium-over{border-color:#bbb;background-image:none;background-color:white;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#fff),color-stop(48%,#fcf7f7),color-stop(52%,#eae5e5),color-stop(100%,#efe8e8));background-image:-webkit-linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8);background-image:-moz-linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8);background-image:-o-linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8);background-image:linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8)}.x-btn-default-toolbar-medium-focus{border-color:#bbb;background-image:none;background-color:white;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#fff),color-stop(48%,#fcf7f7),color-stop(52%,#eae5e5),color-stop(100%,#efe8e8));background-image:-webkit-linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8);background-image:-moz-linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8);background-image:-o-linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8);background-image:linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8)}.x-btn-default-toolbar-medium-menu-active,.x-btn-default-toolbar-medium-pressed{border-color:#b1b1b1;background-image:none;background-color:#e3e3e3;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#e3e3e3),color-stop(48%,#e9e9e9),color-stop(52%,#e6c8c9),color-stop(100%,#e9d0d1));background-image:-webkit-linear-gradient(top,#e3e3e3,#e9e9e9 48%,#e6c8c9 52%,#e9d0d1);background-image:-moz-linear-gradient(top,#e3e3e3,#e9e9e9 48%,#e6c8c9 52%,#e9d0d1);background-image:-o-linear-gradient(top,#e3e3e3,#e9e9e9 48%,#e6c8c9 52%,#e9d0d1);background-image:linear-gradient(top,#e3e3e3,#e9e9e9 48%,#e6c8c9 52%,#e9d0d1)}.x-btn-default-toolbar-medium-disabled{background-image:none;background-color:transparent}.x-btn-default-toolbar-medium-disabled .x-btn-inner{color:#333!important}.x-ie .x-btn-default-toolbar-medium-disabled .x-btn-inner{color:#595959!important}.x-ie6 .x-btn-default-toolbar-medium-disabled .x-btn-inner{color:#8c8c8c!important}.x-nbr .x-btn-default-toolbar-medium-over .x-frame-tl,.x-nbr .x-btn-default-toolbar-medium-over .x-frame-bl,.x-nbr .x-btn-default-toolbar-medium-over .x-frame-tr,.x-nbr .x-btn-default-toolbar-medium-over .x-frame-br,.x-nbr .x-btn-default-toolbar-medium-over .x-frame-tc,.x-nbr .x-btn-default-toolbar-medium-over .x-frame-bc{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-over-corners.gif')}.x-nbr .x-btn-default-toolbar-medium-over .x-frame-ml,.x-nbr .x-btn-default-toolbar-medium-over .x-frame-mr{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-over-sides.gif')}.x-nbr .x-btn-default-toolbar-medium-over .x-frame-mc{background-color:white;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-over-bg.gif')}.x-nbr .x-btn-default-toolbar-medium-focus .x-frame-tl,.x-nbr .x-btn-default-toolbar-medium-focus .x-frame-bl,.x-nbr .x-btn-default-toolbar-medium-focus .x-frame-tr,.x-nbr .x-btn-default-toolbar-medium-focus .x-frame-br,.x-nbr .x-btn-default-toolbar-medium-focus .x-frame-tc,.x-nbr .x-btn-default-toolbar-medium-focus .x-frame-bc{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-focus-corners.gif')}.x-nbr .x-btn-default-toolbar-medium-focus .x-frame-ml,.x-nbr .x-btn-default-toolbar-medium-focus .x-frame-mr{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-focus-sides.gif')}.x-nbr .x-btn-default-toolbar-medium-focus .x-frame-mc{background-color:white;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-focus-bg.gif')}.x-nbr .x-btn-default-toolbar-medium-menu-active .x-frame-tl,.x-nbr .x-btn-default-toolbar-medium-menu-active .x-frame-bl,.x-nbr .x-btn-default-toolbar-medium-menu-active .x-frame-tr,.x-nbr .x-btn-default-toolbar-medium-menu-active .x-frame-br,.x-nbr .x-btn-default-toolbar-medium-menu-active .x-frame-tc,.x-nbr .x-btn-default-toolbar-medium-menu-active .x-frame-bc,.x-nbr .x-btn-default-toolbar-medium-pressed .x-frame-tl,.x-nbr .x-btn-default-toolbar-medium-pressed .x-frame-bl,.x-nbr .x-btn-default-toolbar-medium-pressed .x-frame-tr,.x-nbr .x-btn-default-toolbar-medium-pressed .x-frame-br,.x-nbr .x-btn-default-toolbar-medium-pressed .x-frame-tc,.x-nbr .x-btn-default-toolbar-medium-pressed .x-frame-bc{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-pressed-corners.gif')}.x-nbr .x-btn-default-toolbar-medium-menu-active .x-frame-ml,.x-nbr .x-btn-default-toolbar-medium-menu-active .x-frame-mr,.x-nbr .x-btn-default-toolbar-medium-pressed .x-frame-ml,.x-nbr .x-btn-default-toolbar-medium-pressed .x-frame-mr{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-pressed-sides.gif')}.x-nbr .x-btn-default-toolbar-medium-menu-active .x-frame-mc,.x-nbr .x-btn-default-toolbar-medium-pressed .x-frame-mc{background-color:#e3e3e3;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-pressed-bg.gif')}.x-nbr .x-btn-default-toolbar-medium-disabled .x-frame-tl,.x-nbr .x-btn-default-toolbar-medium-disabled .x-frame-bl,.x-nbr .x-btn-default-toolbar-medium-disabled .x-frame-tr,.x-nbr .x-btn-default-toolbar-medium-disabled .x-frame-br,.x-nbr .x-btn-default-toolbar-medium-disabled .x-frame-tc,.x-nbr .x-btn-default-toolbar-medium-disabled .x-frame-bc{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-disabled-corners.gif')}.x-nbr .x-btn-default-toolbar-medium-disabled .x-frame-ml,.x-nbr .x-btn-default-toolbar-medium-disabled .x-frame-mr{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-disabled-sides.gif')}.x-nbr .x-btn-default-toolbar-medium-disabled .x-frame-mc{background-color:transparent}.x-nlg .x-btn-default-toolbar-medium-over{background-repeat:repeat-x;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-over-bg.gif')}.x-nlg .x-btn-default-toolbar-medium-focus{background-repeat:repeat-x;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-focus-bg.gif')}.x-nlg .x-btn-default-toolbar-medium-menu-active,.x-nlg .x-btn-default-toolbar-medium-pressed{background-repeat:repeat-x;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-pressed-bg.gif')}.x-btn-default-toolbar-large{border-color:transparent}.x-btn-default-toolbar-large{-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px;padding:3px 3px 3px 3px;border-width:1px;border-style:solid;background-color:transparent}.x-nlg .x-btn-default-toolbar-large-mc{background-color:transparent}.x-nbr .x-btn-default-toolbar-large{padding:0!important;border-width:0!important;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0;background-color:transparent;background-position:1100303px 1000303px}.x-nbr .x-btn-default-toolbar-large-tl,.x-nbr .x-btn-default-toolbar-large-bl,.x-nbr .x-btn-default-toolbar-large-tr,.x-nbr .x-btn-default-toolbar-large-br,.x-nbr .x-btn-default-toolbar-large-tc,.x-nbr .x-btn-default-toolbar-large-bc,.x-nbr .x-btn-default-toolbar-large-ml,.x-nbr .x-btn-default-toolbar-large-mr{zoom:1}.x-nbr .x-btn-default-toolbar-large-ml,.x-nbr .x-btn-default-toolbar-large-mr{zoom:1}.x-nbr .x-btn-default-toolbar-large-mc{padding:1px 1px 1px 1px}.x-strict .x-ie7 .x-btn-default-toolbar-large-tl,.x-strict .x-ie7 .x-btn-default-toolbar-large-bl{position:relative;right:0}.x-btn-default-toolbar-large .x-btn-inner{font-size:11px;font-weight:normal;font-family:Helvetica Neue,Arial,sans-serif;color:#333;background-repeat:no-repeat;padding:0 3px}.x-btn-default-toolbar-large-icon button,.x-btn-default-toolbar-large-icon a,.x-btn-default-toolbar-large-icon .x-btn-inner,.x-btn-default-toolbar-large-noicon button,.x-btn-default-toolbar-large-noicon a,.x-btn-default-toolbar-large-noicon .x-btn-inner{height:32px;line-height:32px}.x-btn-default-toolbar-large-icon button,.x-btn-default-toolbar-large-icon a{padding:0}.x-btn-default-toolbar-large-icon .x-btn-inner{width:32px;padding:0}.x-btn-default-toolbar-large-icon .x-btn-icon{width:32px;height:32px;top:0;left:0;bottom:0;right:0}.x-btn-default-toolbar-large-icon-text-left button,.x-btn-default-toolbar-large-icon-text-left a{height:32px}.x-btn-default-toolbar-large-icon-text-left .x-btn-inner{height:32px;line-height:32px;padding-left:36px}.x-btn-default-toolbar-large-icon-text-left .x-btn-icon{width:32px;height:auto;top:0;left:0;bottom:0;right:auto}.x-ie6 .x-btn-default-toolbar-large-icon-text-left .x-btn-icon,.x-quirks .x-btn-default-toolbar-large-icon-text-left .x-btn-icon{height:32px}.x-btn-default-toolbar-large-icon-text-right button,.x-btn-default-toolbar-large-icon-text-right a{height:32px}.x-btn-default-toolbar-large-icon-text-right .x-btn-inner{height:32px;line-height:32px;padding-right:36px!important}.x-btn-default-toolbar-large-icon-text-right .x-btn-icon{width:32px;height:auto;top:0;left:auto;bottom:0;right:0}.x-ie6 .x-btn-default-toolbar-large-icon-text-right .x-btn-icon,.x-quirks .x-btn-default-toolbar-large-icon-text-right .x-btn-icon{height:32px}.x-btn-default-toolbar-large-icon-text-top .x-btn-inner{padding-top:36px}.x-btn-default-toolbar-large-icon-text-top .x-btn-icon{width:auto;height:32px;top:0;left:0;bottom:auto;right:0}.x-ie6 .x-btn-default-toolbar-large-icon-text-top .x-btn-icon,.x-quirks .x-ie .x-btn-default-toolbar-large-icon-text-top .x-btn-icon{width:32px}.x-btn-default-toolbar-large-icon-text-bottom .x-btn-inner{padding-bottom:36px}.x-btn-default-toolbar-large-icon-text-bottom .x-btn-icon{width:auto;height:32px;top:auto;left:0;bottom:0;right:0}.x-ie6 .x-btn-default-toolbar-large-icon-text-bottom .x-btn-icon,.x-quirks .x-ie .x-btn-default-toolbar-large-icon-text-bottom .x-btn-icon{width:32px}.x-btn-default-toolbar-large-over{border-color:#bbb;background-image:none;background-color:white;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#fff),color-stop(48%,#fcf7f7),color-stop(52%,#eae5e5),color-stop(100%,#efe8e8));background-image:-webkit-linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8);background-image:-moz-linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8);background-image:-o-linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8);background-image:linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8)}.x-btn-default-toolbar-large-focus{border-color:#bbb;background-image:none;background-color:white;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#fff),color-stop(48%,#fcf7f7),color-stop(52%,#eae5e5),color-stop(100%,#efe8e8));background-image:-webkit-linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8);background-image:-moz-linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8);background-image:-o-linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8);background-image:linear-gradient(top,#fff,#fcf7f7 48%,#eae5e5 52%,#efe8e8)}.x-btn-default-toolbar-large-menu-active,.x-btn-default-toolbar-large-pressed{border-color:#b1b1b1;background-image:none;background-color:#e3e3e3;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#e3e3e3),color-stop(48%,#e9e9e9),color-stop(52%,#e6c8c9),color-stop(100%,#e9d0d1));background-image:-webkit-linear-gradient(top,#e3e3e3,#e9e9e9 48%,#e6c8c9 52%,#e9d0d1);background-image:-moz-linear-gradient(top,#e3e3e3,#e9e9e9 48%,#e6c8c9 52%,#e9d0d1);background-image:-o-linear-gradient(top,#e3e3e3,#e9e9e9 48%,#e6c8c9 52%,#e9d0d1);background-image:linear-gradient(top,#e3e3e3,#e9e9e9 48%,#e6c8c9 52%,#e9d0d1)}.x-btn-default-toolbar-large-disabled{background-image:none;background-color:transparent}.x-btn-default-toolbar-large-disabled .x-btn-inner{color:#333!important}.x-ie .x-btn-default-toolbar-large-disabled .x-btn-inner{color:#595959!important}.x-ie6 .x-btn-default-toolbar-large-disabled .x-btn-inner{color:#8c8c8c!important}.x-nbr .x-btn-default-toolbar-large-over .x-frame-tl,.x-nbr .x-btn-default-toolbar-large-over .x-frame-bl,.x-nbr .x-btn-default-toolbar-large-over .x-frame-tr,.x-nbr .x-btn-default-toolbar-large-over .x-frame-br,.x-nbr .x-btn-default-toolbar-large-over .x-frame-tc,.x-nbr .x-btn-default-toolbar-large-over .x-frame-bc{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-large-over-corners.gif')}.x-nbr .x-btn-default-toolbar-large-over .x-frame-ml,.x-nbr .x-btn-default-toolbar-large-over .x-frame-mr{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-large-over-sides.gif')}.x-nbr .x-btn-default-toolbar-large-over .x-frame-mc{background-color:white;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-large-over-bg.gif')}.x-nbr .x-btn-default-toolbar-large-focus .x-frame-tl,.x-nbr .x-btn-default-toolbar-large-focus .x-frame-bl,.x-nbr .x-btn-default-toolbar-large-focus .x-frame-tr,.x-nbr .x-btn-default-toolbar-large-focus .x-frame-br,.x-nbr .x-btn-default-toolbar-large-focus .x-frame-tc,.x-nbr .x-btn-default-toolbar-large-focus .x-frame-bc{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-large-focus-corners.gif')}.x-nbr .x-btn-default-toolbar-large-focus .x-frame-ml,.x-nbr .x-btn-default-toolbar-large-focus .x-frame-mr{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-large-focus-sides.gif')}.x-nbr .x-btn-default-toolbar-large-focus .x-frame-mc{background-color:white;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-large-focus-bg.gif')}.x-nbr .x-btn-default-toolbar-large-menu-active .x-frame-tl,.x-nbr .x-btn-default-toolbar-large-menu-active .x-frame-bl,.x-nbr .x-btn-default-toolbar-large-menu-active .x-frame-tr,.x-nbr .x-btn-default-toolbar-large-menu-active .x-frame-br,.x-nbr .x-btn-default-toolbar-large-menu-active .x-frame-tc,.x-nbr .x-btn-default-toolbar-large-menu-active .x-frame-bc,.x-nbr .x-btn-default-toolbar-large-pressed .x-frame-tl,.x-nbr .x-btn-default-toolbar-large-pressed .x-frame-bl,.x-nbr .x-btn-default-toolbar-large-pressed .x-frame-tr,.x-nbr .x-btn-default-toolbar-large-pressed .x-frame-br,.x-nbr .x-btn-default-toolbar-large-pressed .x-frame-tc,.x-nbr .x-btn-default-toolbar-large-pressed .x-frame-bc{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-large-pressed-corners.gif')}.x-nbr .x-btn-default-toolbar-large-menu-active .x-frame-ml,.x-nbr .x-btn-default-toolbar-large-menu-active .x-frame-mr,.x-nbr .x-btn-default-toolbar-large-pressed .x-frame-ml,.x-nbr .x-btn-default-toolbar-large-pressed .x-frame-mr{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-large-pressed-sides.gif')}.x-nbr .x-btn-default-toolbar-large-menu-active .x-frame-mc,.x-nbr .x-btn-default-toolbar-large-pressed .x-frame-mc{background-color:#e3e3e3;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-large-pressed-bg.gif')}.x-nbr .x-btn-default-toolbar-large-disabled .x-frame-tl,.x-nbr .x-btn-default-toolbar-large-disabled .x-frame-bl,.x-nbr .x-btn-default-toolbar-large-disabled .x-frame-tr,.x-nbr .x-btn-default-toolbar-large-disabled .x-frame-br,.x-nbr .x-btn-default-toolbar-large-disabled .x-frame-tc,.x-nbr .x-btn-default-toolbar-large-disabled .x-frame-bc{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-large-disabled-corners.gif')}.x-nbr .x-btn-default-toolbar-large-disabled .x-frame-ml,.x-nbr .x-btn-default-toolbar-large-disabled .x-frame-mr{background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-large-disabled-sides.gif')}.x-nbr .x-btn-default-toolbar-large-disabled .x-frame-mc{background-color:transparent}.x-nlg .x-btn-default-toolbar-large-over{background-repeat:repeat-x;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-large-over-bg.gif')}.x-nlg .x-btn-default-toolbar-large-focus{background-repeat:repeat-x;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-large-focus-bg.gif')}.x-nlg .x-btn-default-toolbar-large-menu-active,.x-nlg .x-btn-default-toolbar-large-pressed{background-repeat:repeat-x;background-image:url('../../extjs/resources/themes/images/default/btn/btn-default-toolbar-large-pressed-bg.gif')}.x-btn-default-toolbar-small-disabled,.x-btn-default-toolbar-medium-disabled,.x-btn-default-toolbar-large-disabled{border-color:transparent;background-image:none;background:transparent}.x-btn-group{position:relative;overflow:hidden}.x-btn-group-body{position:relative;zoom:1;padding:0 1px}.x-btn-group-body .x-table-layout-cell{vertical-align:top}.x-btn-group-header-text{white-space:nowrap}.x-btn-group-default-framed{-webkit-border-radius:2px;-moz-border-radius:2px;-ms-border-radius:2px;-o-border-radius:2px;border-radius:2px;padding:1px 1px 1px 1px;border-width:1px;border-style:solid;background-color:#f3f3f3}.x-nlg .x-btn-group-default-framed-mc{background-color:#f3f3f3}.x-nbr .x-btn-group-default-framed{padding:0!important;border-width:0!important;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0;background-color:transparent;background-position:1000202px 1000202px}.x-nbr .x-btn-group-default-framed-tl,.x-nbr .x-btn-group-default-framed-bl,.x-nbr .x-btn-group-default-framed-tr,.x-nbr .x-btn-group-default-framed-br,.x-nbr .x-btn-group-default-framed-tc,.x-nbr .x-btn-group-default-framed-bc,.x-nbr .x-btn-group-default-framed-ml,.x-nbr .x-btn-group-default-framed-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/btn-group/btn-group-default-framed-corners.gif')}.x-nbr .x-btn-group-default-framed-ml,.x-nbr .x-btn-group-default-framed-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/btn-group/btn-group-default-framed-sides.gif');background-position:0 0;background-repeat:repeat-y}.x-nbr .x-btn-group-default-framed-mc{padding:0}.x-strict .x-ie7 .x-btn-group-default-framed-tl,.x-strict .x-ie7 .x-btn-group-default-framed-bl{position:relative;right:0}.x-btn-group-default-framed{border-color:#dadada;-webkit-box-shadow:white 0 1px 0 0 inset,white 0 -1px 0 0 inset,white -1px 0 0 0 inset,white 1px 0 0 0 inset;-moz-box-shadow:white 0 1px 0 0 inset,white 0 -1px 0 0 inset,white -1px 0 0 0 inset,white 1px 0 0 0 inset;box-shadow:white 0 1px 0 0 inset,white 0 -1px 0 0 inset,white -1px 0 0 0 inset,white 1px 0 0 0 inset}.x-btn-group-header-default-framed{margin:2px 2px 0 2px}.x-btn-group-header-body-default-framed{padding:1px 0;background:#edebeb;-moz-border-radius-topleft:2px;-webkit-border-top-left-radius:2px;border-top-left-radius:2px;-moz-border-radius-topright:2px;-webkit-border-top-right-radius:2px;border-top-right-radius:2px}.x-btn-group-header-text-default-framed{font:normal 11px Helvetica Neue,Arial,sans-serif;color:#878787}.x-datepicker{border:1px solid #5a5352;background-color:white;position:relative}.x-datepicker a{-moz-outline:0 none;outline:0 none;color:#745351;text-decoration:none;border-width:0}.x-datepicker-inner,.x-datepicker-inner td,.x-datepicker-inner th{border-collapse:separate}.x-datepicker-header{position:relative;height:26px;background-image:none;background-color:#626262;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#6a6969),color-stop(100%,#585857));background-image:-webkit-linear-gradient(top,#6a6969,#585857);background-image:-moz-linear-gradient(top,#6a6969,#585857);background-image:-o-linear-gradient(top,#6a6969,#585857);background-image:linear-gradient(top,#6a6969,#585857)}.x-datepicker-prev,.x-datepicker-next{position:absolute;top:5px;width:18px}.x-datepicker-prev a,.x-datepicker-next a{display:block;width:16px;height:16px;background-position:top;background-repeat:no-repeat;cursor:pointer;text-decoration:none!important;filter:alpha(opacity=70);opacity:.7}.x-datepicker-prev a:hover,.x-datepicker-next a:hover{filter:alpha(opacity=100);opacity:1}.x-datepicker-next{right:5px}.x-datepicker-next a{background-image:url('../../extjs/resources/themes/images/default/shared/right-btn.gif')}.x-datepicker-prev{left:5px}.x-datepicker-prev a{background-image:url('../../extjs/resources/themes/images/default/shared/left-btn.gif')}.x-item-disabled .x-datepicker-prev a:hover,.x-item-disabled .x-datepicker-next a:hover{filter:alpha(opacity=60);opacity:.6}.x-datepicker-month{padding-top:3px}.x-datepicker-month .x-btn,.x-datepicker-month button,.x-datepicker-month .x-btn-tc,.x-datepicker-month .x-btn-tl,.x-datepicker-month .x-btn-tr,.x-datepicker-month .x-btn-mc,.x-datepicker-month .x-btn-ml,.x-datepicker-month .x-btn-mr,.x-datepicker-month .x-btn-bc,.x-datepicker-month .x-btn-bl,.x-datepicker-month .x-btn-br{background:transparent!important;border-width:0!important}.x-datepicker-month span{color:#fff!important}.x-datepicker-month .x-btn-split-right{background-image:url('../../extjs/resources/themes/images/default/button/s-arrow-light.gif');padding-right:12px}.x-datepicker-next{text-align:right}.x-datepicker-month{text-align:center}.x-datepicker-month button{color:white!important}table.x-datepicker-inner{width:100%;table-layout:fixed}table.x-datepicker-inner th{width:25px;height:19px;padding:0;color:#5b5b5b;font:normal 10px Helvetica Neue,Arial,sans-serif;text-align:right;border-bottom:1px solid #ebe0e0;border-collapse:separate;background-image:none;background-color:white;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#fff),color-stop(100%,#f7f3f3));background-image:-webkit-linear-gradient(top,#fff,#f7f3f3);background-image:-moz-linear-gradient(top,#fff,#f7f3f3);background-image:-o-linear-gradient(top,#fff,#f7f3f3);background-image:linear-gradient(top,#fff,#f7f3f3);cursor:default}table.x-datepicker-inner th span{display:block;padding-right:7px}table.x-datepicker-inner tr{height:20px}table.x-datepicker-inner td{border:1px solid;height:17px;border-color:white;text-align:right;padding:0}table.x-datepicker-inner a{padding-right:4px;display:block;zoom:1;font:normal 11px Helvetica Neue,Arial,sans-serif;color:black;text-decoration:none;text-align:right}table.x-datepicker-inner .x-datepicker-active{cursor:pointer;color:black}table.x-datepicker-inner .x-datepicker-selected a{background:repeat-x left top;background-color:#f9f9f9;border:1px solid #cdc8c8}table.x-datepicker-inner .x-datepicker-selected span{font-weight:bold}table.x-datepicker-inner .x-datepicker-today a{border:1px solid;border-color:darkred}table.x-datepicker-inner .x-datepicker-prevday a,table.x-datepicker-inner .x-datepicker-nextday a{text-decoration:none!important;color:#aaa}table.x-datepicker-inner a:hover,table.x-datepicker-inner .x-datepicker-disabled a:hover{text-decoration:none!important;color:#000;background-color:white}table.x-datepicker-inner .x-datepicker-disabled a{cursor:default;background-color:#eee;color:#bbb}.x-datepicker-footer,.x-monthpicker-buttons{position:relative;border-top:1px solid #ebe0e0;background-image:none;background-color:white;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#fcfcfc),color-stop(49%,#f3f3f3),color-stop(51%,#ededed),color-stop(100%,#efefef));background-image:-webkit-linear-gradient(top,#fcfcfc,#f3f3f3 49%,#ededed 51%,#efefef);background-image:-moz-linear-gradient(top,#fcfcfc,#f3f3f3 49%,#ededed 51%,#efefef);background-image:-o-linear-gradient(top,#fcfcfc,#f3f3f3 49%,#ededed 51%,#efefef);background-image:linear-gradient(top,#fcfcfc,#f3f3f3 49%,#ededed 51%,#efefef);text-align:center}.x-datepicker-footer .x-btn,.x-monthpicker-buttons .x-btn{position:relative;margin:4px}.x-item-disabled .x-datepicker-inner a:hover{background:0}.x-datepicker .x-monthpicker{position:absolute;left:0;top:0}.x-monthpicker{border:1px solid #5a5352;background-color:white}.x-monthpicker-months,.x-monthpicker-years{float:left;height:167px;width:88px}.x-monthpicker-item{float:left;margin:4px 0 5px 0;font:normal 11px Helvetica Neue,Arial,sans-serif;text-align:center;vertical-align:middle;height:18px;width:43px;border:0 none}.x-monthpicker-item a{display:block;margin:0 5px;text-decoration:none;color:#745351;border:1px solid white;line-height:17px}.x-monthpicker-item a:hover{background-color:white}.x-monthpicker-item a.x-monthpicker-selected{background-color:white;border:1px solid #cdc8c8}.x-monthpicker-months{border-right:1px solid #5a5352;width:87px}.x-monthpicker-years .x-monthpicker-item{width:44px}.x-monthpicker-yearnav{height:28px}.x-monthpicker-yearnav button{background-image:url('../../extjs/resources/themes/images/default/tools/tool-sprites.gif');height:15px;width:15px;padding:0;margin:6px 12px 5px 15px;border:0;outline:0 none}.x-monthpicker-yearnav button::-moz-focus-inner{border:0;padding:0}.x-monthpicker-yearnav-next{background-position:0 -120px}.x-monthpicker-yearnav-next-over{cursor:pointer;cursor:hand;background-position:-15px -120px}.x-monthpicker-yearnav-prev{background-position:0 -105px}.x-monthpicker-yearnav-prev-over{cursor:pointer;cursor:hand;background-position:-15px -105px}.x-monthpicker-small .x-monthpicker-item{margin:2px 0 2px 0}.x-monthpicker-small .x-monthpicker-yearnav{height:23px}.x-monthpicker-small .x-monthpicker-months,.x-monthpicker-small .x-monthpicker-years{height:136px}.x-quirks .x-ie7 .x-monthpicker-buttons .x-btn,.x-quirks .x-ie8 .x-monthpicker-buttons .x-btn{margin-top:2px}.x-quirks .x-monthpicker-small .x-monthpicker-yearnav button{margin-top:3px;margin-bottom:3px}.x-ie6 .x-monthpicker-small .x-monthpicker-yearnav button{margin-top:3px;margin-bottom:3px}.x-nlg .x-datepicker-header{background-image:url('../../extjs/resources/themes/images/default/datepicker/datepicker-header-bg.gif');background-repeat:repeat-x;background-position:top left}.x-nlg .x-datepicker-footer,.x-nlg .x-monthpicker-buttons{background-image:url('../../extjs/resources/themes/images/default/datepicker/datepicker-footer-bg.gif');background-repeat:repeat-x;background-position:top left}.x-color-picker{width:144px;height:90px;cursor:pointer}.x-color-picker a{border:1px solid #fff;float:left;padding:2px;text-decoration:none;-moz-outline:0 none;outline:0 none;cursor:pointer}.x-color-picker a:hover,.x-color-picker a.x-color-picker-selected{border-color:#8bb8f3;background-color:#deecfd}.x-color-picker em{display:block;border:1px solid #aca899}.x-color-picker em span{cursor:pointer;display:block;height:10px;width:10px;line-height:10px}.x-menu-body{user-select:none;-o-user-select:none;-ms-user-select:none;-moz-user-select:-moz-none;-webkit-user-select:none;cursor:default;background:#f0f0f0!important;padding:2px}.x-menu-item .x-form-text{user-select:text;-webkit-user-select:text;-o-user-select:text;-ie-user-select:text;-moz-user-select:text;-ie-user-select:text}.x-menu-icon-separator{position:absolute;top:0;left:27px;z-index:0;border-left:solid 1px #e0e0e0;background-color:white;width:2px;overflow:hidden}.x-menu-plain .x-menu-icon-separator{display:none}.x-menu-focus{display:block;position:absolute;top:-10px;left:-10px;width:0;height:0}.x-menu-item{white-space:nowrap;overflow:hidden;z-index:1}.x-menu-item-cmp{margin-bottom:1px}.x-menu-item-link{display:block;margin:1px;padding:6px 2px 3px 32px;text-decoration:none!important;line-height:16px;cursor:default}.x-opera .x-menu-item-link{position:relative}.x-menu-item-icon{width:16px;height:16px;position:absolute;top:5px;left:4px;background:no-repeat center center}.x-menu-item-icon-right{width:16px;height:16px;position:absolute;top:6px;right:4px;background:no-repeat center center}.x-menu-item-text{font-size:11px;color:#222}.x-menu-item-checked .x-menu-item-icon{background-image:url('../../extjs/resources/themes/images/default/menu/checked.gif')}.x-menu-item-checked .x-menu-group-icon{background-image:url('../../extjs/resources/themes/images/default/menu/group-checked.gif')}.x-menu-item-unchecked .x-menu-item-icon{background-image:url('../../extjs/resources/themes/images/default/menu/unchecked.gif')}.x-menu-item-unchecked .x-menu-group-icon{background-image:none}.x-menu-item-separator{height:2px;border-top:solid 1px #e0e0e0;background-color:white;margin:2px 0;overflow:hidden}.x-menu-item-arrow{position:absolute;width:12px;height:9px;top:9px;right:0;background:no-repeat center center;background-image:url('../../extjs/resources/themes/images/default/menu/menu-parent.gif')}.x-menu-item-indent{margin-left:31px}.x-menu-item-active{cursor:pointer}.x-menu-item-active .x-menu-item-link{background-image:none;background-color:#fdfcfc;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#fff),color-stop(100%,#f6efef));background-image:-webkit-linear-gradient(top,#fff,#f6efef);background-image:-moz-linear-gradient(top,#fff,#f6efef);background-image:-o-linear-gradient(top,#fff,#f6efef);background-image:linear-gradient(top,#fff,#f6efef);margin:0;border:1px solid #e8dbdb;cursor:pointer;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px}.x-menu-item-disabled{filter:alpha(opacity=50);opacity:.5}.x-ie .x-menu-item-disabled .x-menu-item-icon{filter:alpha(opacity=50);opacity:.5}.x-ie .x-menu-item-disabled .x-menu-item-text{background-color:transparent}.x-strict .x-ie7m .x-ie .x-menu-icon-separator{width:1px}.x-strict .x-ie7m .x-ie .x-menu-item-separator{height:1px}.x-ie6 .x-menu-item-link,.x-ie7 .x-menu-item-link,.x-quirks .x-ie8 .x-menu-item-link{padding-bottom:2px}.x-nlg .x-menu-item-active .x-menu-item-link{background:#fdfcfc repeat-x left top;background-image:url('../../extjs/resources/themes/images/default/menu/menu-item-active-bg.gif')}.x-menu-date-item{border-color:#99bbe8}.x-panel .x-grid-body{background:white;border-color:#bfbfbf;border-style:solid;border-width:1px;border-top-color:#c5c5c5}.x-panel .x-grid-header-ct-hidden{visibility:hidden}.x-grid-empty{padding:10px;color:gray;font:normal 11px tahoma,arial,helvetica,sans-serif}.x-grid-header-hidden .x-grid-body{border-top-color:#bfbfbf!important}.x-grid-view{overflow:hidden;position:relative}.x-grid-table{table-layout:fixed;border-collapse:separate}.x-autowidth-table table.x-grid-table{table-layout:auto;width:auto!important}.x-grid-row .x-grid-table{border-collapse:collapse}.x-grid-locked .x-grid-inner-locked{border-width:0 1px 0 0!important;border-style:solid}.x-grid-header-ct{cursor:default;zoom:1;padding:0;border:1px solid #bfbfbf;border-bottom-color:#c5c5c5;background-image:none;background-color:#c5c5c5;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#f9f9f9),color-stop(100%,#e3e4e6));background-image:-webkit-linear-gradient(top,#f9f9f9,#e3e4e6);background-image:-moz-linear-gradient(top,#f9f9f9,#e3e4e6);background-image:-o-linear-gradient(top,#f9f9f9,#e3e4e6);background-image:linear-gradient(top,#f9f9f9,#e3e4e6)}.x-accordion-item .x-grid-header-ct{border-width:0 0 1px 0!important}.x-column-header{padding:0;position:absolute;overflow:hidden;border-right:1px solid #c5c5c5;border-left:0 none;border-top:0 none;border-bottom:0 none;text-shadow:0 1px 0 rgba(255,255,255,0.3);font:normal 11px Helvetica Neue,Arial,sans-serif;background-image:none;background-color:#c5c5c5;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#f9f9f9),color-stop(100%,#e3e4e6));background-image:-webkit-linear-gradient(top,#f9f9f9,#e3e4e6);background-image:-moz-linear-gradient(top,#f9f9f9,#e3e4e6);background-image:-o-linear-gradient(top,#f9f9f9,#e3e4e6);background-image:linear-gradient(top,#f9f9f9,#e3e4e6)}.x-group-header{padding:0;border-left-width:0}.x-group-sub-header{background:transparent;border-top:1px solid #c5c5c5;border-left-width:0}.x-column-header-inner{zoom:1;position:relative;white-space:nowrap;line-height:15px;padding:3px 6px 4px}.x-column-header-inner .x-column-header-text{white-space:nowrap}.x-column-header-over,.x-column-header-sort-ASC,.x-column-header-sort-DESC{border-left-color:#eadbdb;border-right-color:#eadbdb;background-image:none;background-color:#eadbdb;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#fff),color-stop(39%,#fff),color-stop(40%,#fdfcfc),color-stop(100%,#fdfcfc));background-image:-webkit-linear-gradient(top,#fff,#fff 39%,#fdfcfc 40%,#fdfcfc);background-image:-moz-linear-gradient(top,#fff,#fff 39%,#fdfcfc 40%,#fdfcfc);background-image:-o-linear-gradient(top,#fff,#fff 39%,#fdfcfc 40%,#fdfcfc);background-image:linear-gradient(top,#fff,#fff 39%,#fdfcfc 40%,#fdfcfc)}.x-nlg .x-grid-header-ct,.x-nlg .x-column-header{background:repeat-x 0 top;background-image:url('../../extjs/resources/themes/images/default/grid/column-header-bg.gif')}.x-nlg .x-column-header-over,.x-nlg .x-column-header-sort-ASC,.x-nlg .x-column-header-sort-DESC{background:#ebf3fd repeat-x 0 top;background-image:url('../../extjs/resources/themes/images/default/grid/column-header-over-bg.gif')}.x-column-header-trigger{display:none;height:100%;width:14px;background:no-repeat left center;background-color:#c3daf9;background-image:url('../../extjs/resources/themes/images/default/grid/grid3-hd-btn.gif');position:absolute;right:0;top:0;z-index:2;cursor:pointer}.x-column-header-over .x-column-header-trigger,.x-column-header-open .x-column-header-trigger{display:block}.x-column-header-align-right{text-align:right}.x-column-header-align-right .x-column-header-text{padding-right:.5ex;margin-right:6px}.x-column-header-align-center{text-align:center}.x-column-header-align-left{text-align:left}.x-column-header-sort-ASC .x-column-header-text{padding-right:16px;background:no-repeat right 6px;background-image:url('../../extjs/resources/themes/images/default/grid/sort_asc.gif')}.x-column-header-sort-DESC .x-column-header-text{padding-right:16px;background:no-repeat right 6px;background-image:url('../../extjs/resources/themes/images/default/grid/sort_desc.gif')}.x-grid-row{vertical-align:top}.x-grid-row .x-grid-cell{font:normal 11px/15px Helvetica Neue,Arial,sans-serif;background-color:white;border-color:#ededed;border-style:solid;border-top-color:#fafafa;border-width:0}.x-grid-with-row-lines .x-grid-cell{border-width:1px 0}.x-grid-rowwrap-div{border-width:1px 0;border-color:#ededed;border-style:solid;border-top-color:#fafafa;overflow:hidden}.x-grid-row-alt .x-grid-cell,.x-grid-row-alt .x-grid-rowwrap-div{background-color:#fafafa}.x-grid-row-over .x-grid-cell,.x-grid-row-over .x-grid-rowwrap-div{border-color:#ddd;background-color:#efefef}.x-grid-row-focused .x-grid-cell,.x-grid-row-focused .x-grid-rowwrap-div{border-color:#ddd;background-color:#efefef}.x-grid-row-selected .x-grid-cell,.x-grid-row-selected .x-grid-rowwrap-div{border-style:dotted;border-color:#dbd7d6;background-color:#d9e8fb!important}.x-grid-rowwrap-div .x-grid-cell,.x-grid-rowwrap-div .x-grid-cell-inner{border-width:0;background:transparent}.x-grid-row-body-hidden{display:none}.x-grid-rowbody{font:normal 11px/13px Helvetica Neue,Arial,sans-serif;padding:4px}.x-grid-rowbody p{margin:5px 5px 10px 5px}.x-grid-cell{overflow:hidden}.x-grid-cell-inner{overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis;padding:2px 6px 3px;white-space:nowrap}.x-grid-with-row-lines .x-grid-cell-inner{line-height:13px;padding-bottom:4px}.x-action-col-cell .x-grid-cell-inner{line-height:0;padding:2px}.x-action-col-cell .x-item-disabled{filter:alpha(opacity=30);opacity:.3}.x-grid-with-row-lines .x-action-col-cell .x-grid-cell-inner{padding-top:1px}.x-grid-row .x-grid-cell-special{padding:0;border-right:1px solid #e3e3e3;background-image:none;background-color:#f6f6f6;background-image:-webkit-gradient(linear,0% 50%,100% 50%,color-stop(0%,#f6f6f6),color-stop(100%,#e9e9e9));background-image:-webkit-linear-gradient(left,#f6f6f6,#e9e9e9);background-image:-moz-linear-gradient(left,#f6f6f6,#e9e9e9);background-image:-o-linear-gradient(left,#f6f6f6,#e9e9e9);background-image:linear-gradient(left,#f6f6f6,#e9e9e9)}.x-grid-row .x-grid-cell-row-checker{vertical-align:middle}.x-ie6 .x-grid-header-row,.x-ie7 .x-grid-header-row,.x-quirks .x-ie8 .x-grid-header-row{position:absolute}.x-grid-row-selected .x-grid-cell-special{border-right:1px solid #eadbdb;background-image:none;background-color:#d9e8fb;background-image:-webkit-gradient(linear,0% 50%,100% 50%,color-stop(0%,#d9e8fb),color-stop(100%,#c2daf9));background-image:-webkit-linear-gradient(left,#d9e8fb,#c2daf9);background-image:-moz-linear-gradient(left,#d9e8fb,#c2daf9);background-image:-o-linear-gradient(left,#d9e8fb,#c2daf9);background-image:linear-gradient(left,#d9e8fb,#c2daf9)}.x-grid-dirty-cell{background-image:url('../../extjs/resources/themes/images/default/grid/dirty.gif');background-position:0 0;background-repeat:no-repeat}.x-grid-cell-selected{background-color:#b8cfee!important}.x-nlg .x-grid-cell-special{background-repeat:repeat-y;background-position:top right}.x-nlg .x-grid-row .x-grid-cell-special,.x-nlg .x-grid-row-over .x-grid-cell-special{background-image:url('../../extjs/resources/themes/images/default/grid/cell-special-bg.gif')}.x-nlg .x-grid-row-focused .x-grid-cell-special,.x-nlg .x-grid-row-selected .x-grid-cell-special{background-image:url('../../extjs/resources/themes/images/default/grid/cell-special-selected-bg.gif')}.x-grid-with-col-lines .x-grid-cell{padding-right:0;border-right:1px solid #e3e3e3}.x-property-grid .x-grid-row .x-grid-property-name .x-grid-cell-inner,.x-property-grid .x-grid-row-over .x-grid-property-name .x-grid-cell-inner{padding-left:12px;background-image:url('../../extjs/resources/themes/images/default/grid/property-cell-bg.gif');background-repeat:no-repeat;background-position:-16px 2px}.x-grid-with-row-lines.x-property-grid .x-grid-row .x-grid-property-name .x-grid-cell-inner,.x-grid-with-row-lines.x-property-grid .x-grid-row-over .x-grid-property-name .x-grid-cell-inner{background-position:-16px 1px}.x-quirks .x-ie .x-grid-row .x-grid-property-name .x-grid-cell-inner{background-position:-16px 2px}.x-unselectable{user-select:none;-o-user-select:none;-ms-user-select:none;-moz-user-select:-moz-none;-webkit-user-select:none;cursor:default}.x-grid-row-body-hidden{display:none}.x-grid-group-collapsed{display:none}.x-grid-view .x-grid-td-expander{vertical-align:top}.x-grid-td-expander{background:repeat-y right transparent}.x-grid-view .x-grid-td-expander .x-grid-cell-inner{padding:0!important}.x-grid-row-expander{background-image:url('../../extjs/resources/themes/images/default/grid/group-collapse.gif');background-color:transparent;width:9px;height:13px;margin-left:3px;background-repeat:no-repeat;background-position:0 -2px}.x-grid-row-collapsed .x-grid-row-expander{background-image:url('../../extjs/resources/themes/images/default/grid/group-expand.gif')}.x-grid-resize-marker{position:absolute;z-index:5;top:0;width:1px;background-color:#0f0f0f}.col-move-top,.col-move-bottom{width:9px;height:9px;position:absolute;top:0;line-height:0;font-size:0;overflow:hidden;z-index:20000;background:no-repeat left top transparent}.col-move-top{background-image:url('../../extjs/resources/themes/images/default/grid/col-move-top.gif')}.col-move-bottom{background-image:url('../../extjs/resources/themes/images/default/grid/col-move-bottom.gif')}.x-tbar-page-number{width:30px}.x-grid-group,.x-grid-group-body,.x-grid-group-hd{zoom:1}.x-grid-group-hd{padding-top:6px}.x-grid-group-hd .x-grid-cell-inner{padding:10px 4px 4px 4px;background:white;border-width:0 0 2px 0;border-style:solid;border-color:#d6d0d0;cursor:pointer}.x-grid-group-hd-collapsible .x-grid-group-title{background:transparent no-repeat 0 -1px;background-image:url('../../extjs/resources/themes/images/default/grid/group-collapse.gif');padding:0 0 0 14px}.x-grid-group-title{color:#7e7e7e;font:bold 11px Helvetica Neue,Arial,sans-serif}.x-grid-group-hd-collapsed .x-grid-group-title{background-image:url('../../extjs/resources/themes/images/default/grid/group-expand.gif')}.x-grid-group-collapsed .x-grid-group-body{display:none}.x-grid-group-collapsed .x-grid-group-title{background-image:url('../../extjs/resources/themes/images/default/grid/group-expand.gif')}.x-group-by-icon{background-image:url('../../extjs/resources/themes/images/default/grid/group-by.gif')}.x-show-groups-icon{background-image:url('../../extjs/resources/themes/images/default/grid/group-by.gif')}.x-column-header-checkbox .x-column-header-inner{padding:0}.x-grid-cell-special .x-grid-cell-inner{padding-left:4px;padding-right:4px}.x-grid-row-checker,.x-column-header-checkbox .x-column-header-text{height:14px;width:14px;line-height:0;background-image:url('../../extjs/resources/themes/images/default/grid/unchecked.gif');background-position:-1px -1px;background-repeat:no-repeat;background-color:transparent}.x-column-header-checkbox .x-column-header-text{display:block;margin:0 5px}.x-quirks .x-ie .x-grid-row-checker,.x-quirks .x-ie .x-column-header-checkbox .x-column-header-text,.x-ie7m .x-grid-row-checker,.x-ie7m .x-column-header-checkbox .x-column-header-text{line-height:14px}.x-grid-hd-checker-on .x-column-header-text{background-image:url('../../extjs/resources/themes/images/default/grid/checked.gif')}.x-grid-cell-row-checker .x-grid-cell-inner{padding-top:4px;padding-bottom:2px;line-height:14px}.x-grid-with-row-lines .x-grid-cell-row-checker .x-grid-cell-inner{padding-top:3px}.x-grid-row-checker{margin-left:1px;background-position:50% -2px}.x-grid-row-selected .x-grid-row-checker,.x-grid-row-checked .x-grid-row-checker{background-image:url('../../extjs/resources/themes/images/default/grid/checked.gif')}.x-tbar-page-first{background-image:url('../../extjs/resources/themes/images/default/grid/page-first.gif')!important}.x-tbar-loading{background-image:url('../../extjs/resources/themes/images/default/grid/refresh.gif')!important}.x-tbar-page-last{background-image:url('../../extjs/resources/themes/images/default/grid/page-last.gif')!important}.x-tbar-page-next{background-image:url('../../extjs/resources/themes/images/default/grid/page-next.gif')!important}.x-tbar-page-prev{background-image:url('../../extjs/resources/themes/images/default/grid/page-prev.gif')!important}.x-item-disabled .x-tbar-loading{background-image:url('../../extjs/resources/themes/images/default/grid/refresh-disabled.gif')!important}.x-item-disabled .x-tbar-page-first{background-image:url('../../extjs/resources/themes/images/default/grid/page-first-disabled.gif')!important}.x-item-disabled .x-tbar-page-last{background-image:url('../../extjs/resources/themes/images/default/grid/page-last-disabled.gif')!important}.x-item-disabled .x-tbar-page-next{background-image:url('../../extjs/resources/themes/images/default/grid/page-next-disabled.gif')!important}.x-item-disabled .x-tbar-page-prev{background-image:url('../../extjs/resources/themes/images/default/grid/page-prev-disabled.gif')!important}.x-hmenu-sort-asc .x-menu-item-icon{background-image:url('../../extjs/resources/themes/images/default/grid/hmenu-asc.gif')}.x-hmenu-sort-desc .x-menu-item-icon{background-image:url('../../extjs/resources/themes/images/default/grid/hmenu-desc.gif')}.x-hmenu-lock .x-menu-item-icon{background-image:url('../../extjs/resources/themes/images/default/grid/hmenu-lock.gif')}.x-hmenu-unlock .x-menu-item-icon{background-image:url('../../extjs/resources/themes/images/default/grid/hmenu-unlock.gif')}.x-group-by-icon{background-image:url('../../extjs/resources/themes/images/default/grid/group-by.gif')}.x-cols-icon .x-menu-item-icon{background-image:url('../../extjs/resources/themes/images/default/grid/columns.gif')}.x-show-groups-icon{background-image:url('../../extjs/resources/themes/images/default/grid/group-by.gif')}.x-grid-drop-indicator{position:absolute;height:1px;line-height:0;background-color:#77bc71;overflow:visible}.x-grid-drop-indicator .x-grid-drop-indicator-left{position:absolute;top:-8px;left:-12px;background-image:url('../../extjs/resources/themes/images/default/grid/dd-insert-arrow-right.png');height:16px;width:16px}.x-grid-drop-indicator .x-grid-drop-indicator-right{position:absolute;top:-8px;right:-11px;background-image:url('../../extjs/resources/themes/images/default/grid/dd-insert-arrow-left.png');height:16px;width:16px}.x-ie6 .x-grid-drop-indicator-left{background-image:url('../../extjs/resources/themes/images/default/grid/dd-insert-arrow-right.gif')}.x-ie6 .x-grid-drop-indicator-right{background-image:url('../../extjs/resources/themes/images/default/grid/dd-insert-arrow-left.gif')}.x-grid-editor .x-form-text{padding:0 4px}.x-grid-editor .x-form-cb-wrap{padding-top:3px}.x-grid-row-editor{position:absolute!important;z-index:1;zoom:1;overflow:visible!important}.x-grid-row-editor .x-form-text{padding:0 2px}.x-grid-row-editor .x-form-cb-wrap{padding-top:0}.x-grid-row-editor .x-form-checkbox{margin-left:-4px}.x-grid-row-editor .x-form-display-field{font:normal 11px/15px Helvetica Neue,Arial,sans-serif;padding-top:0;padding-left:2px}.x-grid-row-editor .x-panel-body{background-color:white;border-top:1px solid #bfbfbf!important;border-bottom:1px solid #bfbfbf!important}.x-grid-editor .x-form-cb-wrap,.x-grid-row-editor .x-form-cb-wrap{text-align:center}.x-grid-editor .x-form-trigger,.x-grid-row-editor .x-form-trigger{height:19px}.x-grid-editor .x-form-trigger-wrap .x-form-spinner-up,.x-grid-editor .x-form-trigger-wrap .x-form-spinner-down,.x-grid-row-editor .x-form-trigger-wrap .x-form-spinner-up,.x-grid-row-editor .x-form-trigger-wrap .x-form-spinner-down{background-image:url('../../extjs/resources/themes/images/default/form/spinner-small.gif');height:10px!important}.x-grid-editor .x-form-text,.x-grid-row-editor .x-form-text{font:normal 11px/15px Helvetica Neue,Arial,sans-serif;height:18px}.x-border-box .x-grid-editor .x-form-trigger,.x-border-box .x-grid-row-editor .x-form-trigger{height:20px}.x-border-box .x-grid-editor .x-form-text,.x-border-box .x-grid-row-editor .x-form-text{height:20px;padding-bottom:1px}.x-ie .x-grid-editor .x-form-text{padding-left:5px}.x-ie .x-grid-row-editor .x-form-text{padding-left:3px}.x-ie8m .x-grid-editor .x-form-text,.x-ie8m .x-grid-row-editor .x-form-text{padding-top:1px}.x-strict .x-ie6 .x-grid-editor .x-form-text,.x-strict .x-ie6 .x-grid-row-editor .x-form-text,.x-strict .x-ie7 .x-grid-editor .x-form-text,.x-strict .x-ie7 .x-grid-row-editor .x-form-text{height:17px}.x-quirks .x-ie9 .x-grid-editor .x-form-text,.x-quirks .x-ie9 .x-grid-row-editor .x-form-text{line-height:17px}.x-opera .x-grid-editor .x-form-text{padding-left:5px}.x-opera .x-grid-row-editor .x-form-text{padding-left:3px}.x-grid-row-editor-buttons{background-color:white;position:absolute;bottom:-31px;padding:4px;height:32px}.x-strict .x-ie7m .x-grid-row-editor-buttons{width:192px;height:24px}.x-grid-row-editor-buttons-ml,.x-grid-row-editor-buttons-mr,.x-grid-row-editor-buttons-bl,.x-grid-row-editor-buttons-br,.x-grid-row-editor-buttons-bc{position:absolute;overflow:hidden}.x-grid-row-editor-buttons-bl,.x-grid-row-editor-buttons-br{width:4px;height:4px;bottom:0;background-image:url('../../extjs/resources/themes/images/default/panel/panel-default-framed-corners.gif')}.x-grid-row-editor-buttons-bl{left:0;background-position:0 -16px}.x-grid-row-editor-buttons-br{right:0;background-position:0 -20px}.x-grid-row-editor-buttons-bc{position:absolute;left:4px;bottom:0;width:192px;height:1px;background-color:#bfbfbf}.x-grid-row-editor-buttons-ml,.x-grid-row-editor-buttons-mr{height:27px;width:1px;top:1px;background-color:#bfbfbf}.x-grid-row-editor-buttons-ml{left:0}.x-grid-row-editor-buttons-mr{background-position:0 -20px;right:0}.x-grid-row-editor-errors ul{margin-left:5px}.x-grid-row-editor-errors li{list-style:disc;margin-left:15px}.x-webkit *:focus{outline:none!important}.x-form-item{vertical-align:top;table-layout:fixed}.x-autocontainer-form-item,.x-anchor-form-item,.x-vbox-form-item,.x-checkboxgroup-form-item,.x-table-form-item{margin-bottom:5px}.x-form-layout-table{border-collapse:separate;border-spacing:0 2px}.x-form-item-body{position:relative}.x-form-form-item td{border-top:1px solid transparent}.x-ie6 .x-form-layout-table{border-collapse:collapse;border-spacing:0}.x-ie6 .x-form-form-item td{border-top-width:0}.x-ie6 td.x-form-item-pad{height:5px}.x-editor .x-form-item-body{padding-bottom:0}.x-form-item-label{display:block;padding:3px 0 0;font-size:12px;user-select:none;-o-user-select:none;-ms-user-select:none;-moz-user-select:-moz-none;-webkit-user-select:none;cursor:default}.x-form-item-label-top{display:block;zoom:1;padding:0 0 5px 0}.x-form-item-label-right{text-align:right}.x-form-invalid-under{padding:2px 2px 2px 18px;color:#c0272b;font:normal 11px Helvetica Neue,Arial,sans-serif;line-height:16px;background:no-repeat 0 2px;background-image:url('../../extjs/resources/themes/images/default/form/exclamation.gif')}.x-form-invalid-icon{width:18px;height:14px;background:no-repeat center center;background-image:url('../../extjs/resources/themes/images/default/form/exclamation.gif');overflow:hidden}.x-form-invalid-icon ul{display:block;width:18px}.x-form-invalid-icon ul li{display:none}.x-lbl-top-err-icon{margin-bottom:4px}.x-form-field,.x-form-display-field{margin:0;font:normal 12px Helvetica Neue,Arial,sans-serif;color:black}.x-form-item-hidden{margin:0}.x-form-text,textarea.x-form-field{padding:1px 3px;background:repeat-x 0 0;border:1px solid;background-color:white;background-image:url('../../extjs/resources/themes/images/default/form/text-bg.gif');border-color:#b5b8c8}.x-form-text{height:18px;line-height:15px;vertical-align:top}.x-ie8m .x-form-text{line-height:15px}.x-border-box .x-form-text{height:22px}textarea.x-form-field{color:black;overflow:auto;height:auto;line-height:normal;background:repeat-x 0 0;background-color:white;background-image:url('../../extjs/resources/themes/images/default/form/text-bg.gif');resize:none}.x-border-box textarea.x-form-field{height:auto}.x-safari.x-mac textarea.x-form-field{margin-bottom:-2px}.x-form-focus,textarea.x-form-focus{border-color:#bebebe}.x-form-invalid-field,textarea.x-form-invalid-field{background-color:white;background-image:url('../../extjs/resources/themes/images/default/grid/invalid_line.gif');background-repeat:repeat-x;background-position:bottom;border-color:#c30}.x-form-item{font:normal 12px Helvetica Neue,Arial,sans-serif}.x-form-empty-field,textarea.x-form-empty-field{color:gray}.x-webkit .x-form-empty-field{line-height:15px}.x-form-display-field{padding-top:3px}.x-quirks .x-ie9p .x-form-text,.x-ie7m .x-form-text{margin-top:-1px;margin-bottom:-1px}.x-ie .x-form-file{height:23px;line-height:18px;vertical-align:middle}.x-field-default-toolbar .x-form-text{height:16px}.x-border-box .x-field-default-toolbar .x-form-text{height:20px}.x-field-default-toolbar .x-form-item-label-left{padding-left:4px}.x-fieldset{border:1px solid #b5b8c8;padding:10px;margin-bottom:10px;display:block;position:relative}.x-ie .x-fieldset{padding-top:0}.x-ie .x-fieldset .x-fieldset-body{padding-top:10px}.x-fieldset-header-checkbox{line-height:14px}.x-fieldset-header{font:11px/14px bold Helvetica Neue,Arial,sans-serif;color:#745351;padding:0 3px 1px;overflow:hidden}.x-fieldset-header .x-fieldset-header-text{float:left;padding:1px 0}.x-fieldset-header .x-fieldset-header-text-collapsible{cursor:pointer}.x-fieldset-header .x-form-item,.x-fieldset-header .x-tool{float:left;margin:1px 0 0 0}.x-fieldset-header .x-form-cb-wrap{padding:1px 0;font-size:0;line-height:0}.x-fieldset-with-title .x-fieldset-header-checkbox,.x-fieldset-with-title .x-tool{margin-right:3px}.x-webkit .x-fieldset-header{-webkit-padding-start:3px;-webkit-padding-end:3px}.x-opera .x-fieldset-with-legend{margin-top:-1px}.x-opera.x-mac .x-fieldset-header-text{padding:2px 0 0}.x-strict .x-ie8 .x-fieldset-header{margin-bottom:-1px}.x-strict .x-ie8 .x-fieldset-header .x-tool,.x-strict .x-ie8 .x-fieldset-header .x-fieldset-header-text,.x-strict .x-ie8 .x-fieldset-header .x-fieldset-header-checkbox{position:relative;top:-1px}.x-quirks .x-ie .x-fieldset-header,.x-ie8m .x-fieldset-header{padding-left:1px;padding-right:1px}.x-fieldset-collapsed .x-fieldset-body{display:none}.x-fieldset-collapsed{padding-bottom:0!important;border-width:1px 1px 0 1px!important;border-left-color:transparent!important;border-right-color:transparent!important}.x-ie6 .x-fieldset-collapsed{border-width:1px 0 0 0!important;padding-bottom:0!important;margin-left:1px;margin-right:1px}.x-ie .x-fieldset-bwrap{zoom:1}.x-ie .x-fieldset-noborder legend{position:relative;margin-bottom:23px}.x-ie .x-fieldset-noborder legend span{position:absolute;left:16px}.x-fieldset{overflow:hidden}.x-fieldset-bwrap{overflow:hidden;zoom:1}.x-fieldset-body{overflow:hidden}.x-form-file-wrap .x-form-text{color:#777}.x-form-file-wrap .x-form-file-btn{overflow:hidden}.x-form-file-wrap .x-form-file-input{position:absolute;top:-4px;right:-2px;height:30px;filter:alpha(opacity=0);opacity:0;font-size:100px}.x-form-cb-wrap{padding-top:3px}.x-form-checkbox,.x-form-radio{vertical-align:-1px;width:13px;height:13px;background:no-repeat;background-image:url('../../extjs/resources/themes/images/default/form/checkbox.gif');overflow:hidden;padding:0;border:0}.x-form-checkbox::-moz-focus-inner,.x-form-radio::-moz-focus-inner{padding:0;border:0}.x-nbr.x-ie .x-form-checkbox,.x-nbr.x-ie .x-form-radio{font-size:0}.x-form-cb-checked .x-form-checkbox,.x-form-cb-checked .x-form-radio{background-position:0 -13px}.x-form-cb-focus{background-position:-13px 0}.x-form-cb-checked .x-form-cb-focus{background-position:-13px -13px}.x-form-radio{background-image:url('../../extjs/resources/themes/images/default/form/radio.gif')}.x-form-cb-label-before{margin-right:4px}.x-form-cb-label-after{margin-left:4px}.x-form-checkboxgroup-body{padding:1px 4px 1px 4px}.x-form-invalid .x-form-checkboxgroup-body{border:1px solid #c30!important;background:transparent repeat-x bottom;background-image:url('../../extjs/resources/themes/images/default/grid/invalid_line.gif');padding:1px 3px 0 3px}.x-check-group-alt{background:#f2f2f2;border-top:1px dotted #d1d1d1;border-bottom:1px dotted #d1d1d1}.x-form-check-group-label{color:#333;border-bottom:1px solid #333;margin:0 30px 5px 0;padding:2px}.x-form-trigger-wrap{vertical-align:top}.x-form-trigger{background-image:url('../../extjs/resources/themes/images/default/form/trigger.gif');background-position:0 0;width:17px;height:21px;border-bottom:1px solid #b5b8c8;cursor:pointer;cursor:hand;overflow:hidden}.x-border-box .x-form-trigger{height:22px}.x-field-default-toolbar .x-form-trigger{height:19px}.x-border-box .x-field-default-toolbar .x-form-trigger{height:20px}.x-form-trigger-over{background-position:-17px 0;border-bottom-color:#bebebe}.x-form-trigger-wrap-focus .x-form-trigger{background-position:-51px 0;border-bottom-color:#bebebe}.x-form-trigger-wrap-focus .x-form-trigger-over{background-position:-68px 0}.x-form-trigger-click,.x-form-trigger-wrap-focus .x-form-trigger-click{background-position:-34px 0}.x-form-trigger-icon{height:16px;background-repeat:no-repeat;background-position:7px 6px}.x-pickerfield-open .x-form-field{-moz-border-radius-bottomleft:0;-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0;-moz-border-radius-bottomright:0;-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0}.x-pickerfield-open-above .x-form-field{-moz-border-radius-bottomleft:3px;-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px;-moz-border-radius-topleft:0;-webkit-border-top-left-radius:0;border-top-left-radius:0;-moz-border-radius-topright:0;-webkit-border-top-right-radius:0;border-top-right-radius:0}.x-form-arrow-trigger .x-form-trigger-icon{background-image:url('../../extjs/resources/themes/images/default/boundlist/trigger-arrow.png')}.x-form-date-trigger{background-image:url('../../extjs/resources/themes/images/default/form/date-trigger.gif')}.x-form-trigger-wrap .x-form-spinner-up,.x-form-trigger-wrap .x-form-spinner-down{background-image:url('../../extjs/resources/themes/images/default/form/spinner.gif');width:17px!important;height:11px!important;font-size:0;border-bottom:0}.x-form-trigger-wrap .x-form-spinner-down{background-position:0 -11px}.x-form-trigger-wrap-focus .x-form-spinner-down{background-position:-51px -11px}.x-form-trigger-wrap .x-form-spinner-down-over{background-position:-17px -11px}.x-form-trigger-wrap-focus .x-form-spinner-down-over{background-position:-68px -11px}.x-form-trigger-wrap .x-form-spinner-down-click{background-position:-34px -11px}.x-field-default-toolbar .x-form-trigger-wrap .x-form-spinner-up,.x-field-default-toolbar .x-form-trigger-wrap .x-form-spinner-down{background-image:url('../../extjs/resources/themes/images/default/form/spinner-small.gif');height:10px!important}.x-field-default-toolbar .x-form-trigger-wrap .x-form-spinner-down{background-position:0 -10px}.x-field-default-toolbar .x-form-trigger-wrap-focus .x-form-spinner-down{background-position:-51px -10px}.x-field-default-toolbar .x-form-trigger-wrap .x-form-spinner-down-over{background-position:-17px -10px}.x-field-default-toolbar .x-form-trigger-wrap-focus .x-form-spinner-down-over{background-position:-68px -10px}.x-field-default-toolbar .x-form-trigger-wrap .x-form-spinner-down-click{background-position:-34px -10px}.x-trigger-noedit{cursor:pointer;cursor:hand}.x-item-disabled .x-trigger-noedit,.x-item-disabled .x-form-trigger{cursor:auto}.x-form-clear-trigger{background-image:url('../../extjs/resources/themes/images/default/form/clear-trigger.gif')}.x-form-search-trigger{background-image:url('../../extjs/resources/themes/images/default/form/search-trigger.gif')}.x-quirks .prefixie6 .x-form-trigger-input-cell{height:22px}.x-quirks .prefixie6 .x-field-default-toolbar .x-form-trigger-input-cell{height:20px}.x-html-editor-wrap{border:1px solid #b5b8c8}.x-html-editor-wrap .x-toolbar{border-top-width:0;border-left-width:0;border-right-width:0}.x-html-editor-wrap textarea{background-color:white}.x-html-editor-tb .x-btn-text{background:transparent no-repeat;background-image:url('../../extjs/resources/themes/images/default/editor/tb-sprite.gif')}.x-html-editor-tb .x-edit-bold,.x-menu-item img.x-edit-bold{background-position:0 0;background-image:url('../../extjs/resources/themes/images/default/editor/tb-sprite.gif')}.x-html-editor-tb .x-edit-italic,.x-menu-item img.x-edit-italic{background-position:-16px 0;background-image:url('../../extjs/resources/themes/images/default/editor/tb-sprite.gif')}.x-html-editor-tb .x-edit-underline,.x-menu-item img.x-edit-underline{background-position:-32px 0;background-image:url('../../extjs/resources/themes/images/default/editor/tb-sprite.gif')}.x-html-editor-tb .x-edit-forecolor,.x-menu-item img.x-edit-forecolor{background-position:-160px 0;background-image:url('../../extjs/resources/themes/images/default/editor/tb-sprite.gif')}.x-html-editor-tb .x-edit-backcolor,.x-menu-item img.x-edit-backcolor{background-position:-176px 0;background-image:url('../../extjs/resources/themes/images/default/editor/tb-sprite.gif')}.x-html-editor-tb .x-edit-justifyleft,.x-menu-item img.x-edit-justifyleft{background-position:-112px 0;background-image:url('../../extjs/resources/themes/images/default/editor/tb-sprite.gif')}.x-html-editor-tb .x-edit-justifycenter,.x-menu-item img.x-edit-justifycenter{background-position:-128px 0;background-image:url('../../extjs/resources/themes/images/default/editor/tb-sprite.gif')}.x-html-editor-tb .x-edit-justifyright,.x-menu-item img.x-edit-justifyright{background-position:-144px 0;background-image:url('../../extjs/resources/themes/images/default/editor/tb-sprite.gif')}.x-html-editor-tb .x-edit-insertorderedlist,.x-menu-item img.x-edit-insertorderedlist{background-position:-80px 0;background-image:url('../../extjs/resources/themes/images/default/editor/tb-sprite.gif')}.x-html-editor-tb .x-edit-insertunorderedlist,.x-menu-item img.x-edit-insertunorderedlist{background-position:-96px 0;background-image:url('../../extjs/resources/themes/images/default/editor/tb-sprite.gif')}.x-html-editor-tb .x-edit-increasefontsize,.x-menu-item img.x-edit-increasefontsize{background-position:-48px 0;background-image:url('../../extjs/resources/themes/images/default/editor/tb-sprite.gif')}.x-html-editor-tb .x-edit-decreasefontsize,.x-menu-item img.x-edit-decreasefontsize{background-position:-64px 0;background-image:url('../../extjs/resources/themes/images/default/editor/tb-sprite.gif')}.x-html-editor-tb .x-edit-sourceedit,.x-menu-item img.x-edit-sourceedit{background-position:-192px 0;background-image:url('../../extjs/resources/themes/images/default/editor/tb-sprite.gif')}.x-html-editor-tb .x-edit-createlink,.x-menu-item img.x-edit-createlink{background-position:-208px 0;background-image:url('../../extjs/resources/themes/images/default/editor/tb-sprite.gif')}.x-html-editor-tip .x-tip-bd .x-tip-bd-inner{padding:5px;padding-bottom:1px}.x-html-editor-tb .x-toolbar{position:static!important}.x-html-editor-tb .x-font-select{font-size:11px}.x-html-editor-wrap textarea{border:0;padding:3px 2px;overflow:auto}.x-panel,.x-plain{overflow:hidden;position:relative}.x-ie .x-panel-header,.x-ie .x-panel-header-tl,.x-ie .x-panel-header-tc,.x-ie .x-panel-header-tr,.x-ie .x-panel-header-ml,.x-ie .x-panel-header-mc,.x-ie .x-panel-header-mr,.x-ie .x-panel-header-bl,.x-ie .x-panel-header-bc,.x-ie .x-panel-header-br{zoom:1}.x-ie8 td.x-frame-mc{vertical-align:top}.x-panel-header-horizontal{padding:3px 5px 4px}.x-panel-header-vertical{padding:5px 4px}.x-panel-header-icon,.x-window-header-icon{width:16px;height:16px;background-repeat:no-repeat;background-position:0 0;vertical-align:middle;margin-right:4px}.x-vertical .x-panel-header-icon,.x-vertical .x-window-header-icon{margin:0 0 4px}.x-panel-header-draggable,.x-panel-header-draggable .x-panel-header-text,.x-window-header-draggable,.x-window-header-draggable .x-window-header-text{cursor:move}.x-panel-ghost,.x-window-ghost{filter:alpha(opacity=65);opacity:.65;cursor:move}.x-panel-header-horizontal .x-panel-header-body,.x-panel-header-horizontal .x-window-header-body,.x-panel-header-horizontal .x-btn-group-header-body,.x-window-header-horizontal .x-panel-header-body,.x-window-header-horizontal .x-window-header-body,.x-window-header-horizontal .x-btn-group-header-body,.x-btn-group-header-horizontal .x-panel-header-body,.x-btn-group-header-horizontal .x-window-header-body,.x-btn-group-header-horizontal .x-btn-group-header-body{width:100%}.x-panel-header-vertical .x-panel-header-body,.x-panel-header-vertical .x-window-header-body,.x-panel-header-vertical .x-btn-group-header-body,.x-window-header-vertical .x-panel-header-body,.x-window-header-vertical .x-window-header-body,.x-window-header-vertical .x-btn-group-header-body,.x-btn-group-header-vertical .x-panel-header-body,.x-btn-group-header-vertical .x-window-header-body,.x-btn-group-header-vertical .x-btn-group-header-body{height:100%}.x-panel-header-text-container{overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis}.x-panel-header-text{user-select:none;-o-user-select:none;-ms-user-select:none;-moz-user-select:-moz-none;-webkit-user-select:none;cursor:default;white-space:nowrap}.x-panel-header-left .x-vml-base,.x-panel-header-right .x-vml-base{left:-3px!important}.x-panel-body{overflow:hidden;position:relative;font-size:13px}.x-panel-header-vertical .x-surface{padding-left:1px}.x-opera .x-panel-header-vertical .x-surface,.x-strict .x-ie9 .x-panel-header-vertical .x-surface{padding-left:2px}.x-panel-collapsed .x-panel-header-collapsed-border-top{border-bottom-width:1px!important}.x-panel-collapsed .x-panel-header-collapsed-border-right{border-left-width:1px!important}.x-panel-collapsed .x-panel-header-collapsed-border-bottom{border-top-width:1px!important}.x-panel-collapsed .x-panel-header-collapsed-border-left{border-right-width:1px!important}.x-nlg .x-panel-header-vertical .x-frame-mc{background-repeat:repeat-y}.x-panel-default{border-color:#bfbfbf}.x-panel-header-default{font-size:11px;border-color:#bfbfbf;border-width:1px;border-style:solid;background-image:none;background-color:#f2f1f1;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#fbfafa),color-stop(45%,#f3f2f2),color-stop(46%,#e0dcdc),color-stop(50%,#e0dcdc),color-stop(51%,#e7e4e4),color-stop(100%,#f2f1f1));background-image:-webkit-linear-gradient(top,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1);background-image:-moz-linear-gradient(top,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1);background-image:-o-linear-gradient(top,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1);background-image:linear-gradient(top,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1);-webkit-box-shadow:white 0 1px 0 0 inset;-moz-box-shadow:white 0 1px 0 0 inset;box-shadow:white 0 1px 0 0 inset}.x-nlg .x-panel-header-default-top{background-image:url('../../extjs/resources/themes/images/default/panel-header/panel-header-default-top-bg.gif')}.x-nlg .x-panel-header-default-bottom{background-image:url('../../extjs/resources/themes/images/default/panel-header/panel-header-default-bottom-bg.gif')}.x-nlg .x-panel-header-default-left{background-image:url('../../extjs/resources/themes/images/default/panel-header/panel-header-default-left-bg.gif')}.x-nlg .x-panel-header-default-right{background-image:url('../../extjs/resources/themes/images/default/panel-header/panel-header-default-right-bg.gif')}.x-nlg .x-panel-header-default-right{background-position:top right}.x-nlg .x-panel-header-default-bottom{background-position:bottom left}.x-panel-header-text-default{color:#7e3737;font-size:11px;font-weight:bold;font-family:Helvetica Neue,Arial,sans-serif;line-height:17px}.x-panel-body-default{background:white;border-color:#bfbfbf;color:black;border-width:1px;border-style:solid}.x-panel-collapsed .x-window-header-default,.x-panel-collapsed .x-panel-header-default{border-color:#bfbfbf}.x-panel-header-default-vertical{border-color:#bfbfbf}.x-panel-header-default-left,.x-panel-header-default-right{background-image:none;background-color:#f2f1f1;background-image:-webkit-gradient(linear,100% 50%,0% 50%,color-stop(0%,#fbfafa),color-stop(45%,#f3f2f2),color-stop(46%,#e0dcdc),color-stop(50%,#e0dcdc),color-stop(51%,#e7e4e4),color-stop(100%,#f2f1f1));background-image:-webkit-linear-gradient(right,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1);background-image:-moz-linear-gradient(right,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1);background-image:-o-linear-gradient(right,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1);background-image:linear-gradient(right,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1)}.x-panel-header-default-top{-webkit-box-shadow:white 0 1px 0 0 inset;-moz-box-shadow:white 0 1px 0 0 inset;box-shadow:white 0 1px 0 0 inset}.x-panel-header-default-right{-webkit-box-shadow:white -1px 0 0 0 inset;-moz-box-shadow:white -1px 0 0 0 inset;box-shadow:white -1px 0 0 0 inset}.x-panel-header-default-bottom{-webkit-box-shadow:white 0 -1px 0 0 inset;-moz-box-shadow:white 0 -1px 0 0 inset;box-shadow:white 0 -1px 0 0 inset}.x-panel-header-default-left{-webkit-box-shadow:white 1px 0 0 0 inset;-moz-box-shadow:white 1px 0 0 0 inset;box-shadow:white 1px 0 0 0 inset}.x-panel-header-default-right-tc,.x-panel-header-default-right-mc,.x-panel-header-default-right-bc{background-position:right 0}.x-panel-header-default-bottom-tc,.x-panel-header-default-bottom-mc,.x-panel-header-default-bottom-bc{background-position:0 bottom}.x-panel-default-framed{border-color:#bfbfbf}.x-panel-header-default-framed{font-size:11px;border-color:#bfbfbf;border-width:1px;border-style:solid;background-image:none;background-color:#f2f1f1;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#fbfafa),color-stop(45%,#f3f2f2),color-stop(46%,#e0dcdc),color-stop(50%,#e0dcdc),color-stop(51%,#e7e4e4),color-stop(100%,#f2f1f1));background-image:-webkit-linear-gradient(top,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1);background-image:-moz-linear-gradient(top,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1);background-image:-o-linear-gradient(top,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1);background-image:linear-gradient(top,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1);-webkit-box-shadow:white 0 1px 0 0 inset;-moz-box-shadow:white 0 1px 0 0 inset;box-shadow:white 0 1px 0 0 inset}.x-nlg .x-panel-header-default-framed-top{background-image:url('../../extjs/resources/themes/images/default/panel-header/panel-header-default-framed-top-bg.gif')}.x-nlg .x-panel-header-default-framed-bottom{background-image:url('../../extjs/resources/themes/images/default/panel-header/panel-header-default-framed-bottom-bg.gif')}.x-nlg .x-panel-header-default-framed-left{background-image:url('../../extjs/resources/themes/images/default/panel-header/panel-header-default-framed-left-bg.gif')}.x-nlg .x-panel-header-default-framed-right{background-image:url('../../extjs/resources/themes/images/default/panel-header/panel-header-default-framed-right-bg.gif')}.x-nlg .x-panel-header-default-framed-right{background-position:top right}.x-nlg .x-panel-header-default-framed-bottom{background-position:bottom left}.x-nbr .x-panel-header-default-framed{background-image:none}.x-strict .x-ie9 .x-panel-header-default-framed-top,.x-nlg.x-opera .x-panel-header-default-framed-top,.x-nlg.x-safari .x-panel-header-default-framed-top{background-image:url('../../extjs/resources/themes/images/default/panel-header/panel-header-default-top-bg.gif')}.x-strict .x-ie9 .x-panel-header-default-framed-bottom,.x-nlg.x-opera .x-panel-header-default-framed-bottom,.x-nlg.x-safari .x-panel-header-default-framed-bottom{background-image:url('../../extjs/resources/themes/images/default/panel-header/panel-header-default-bottom-bg.gif')}.x-strict .x-ie9 .x-panel-header-default-framed-left,.x-nlg.x-opera .x-panel-header-default-framed-left,.x-nlg.x-safari .x-panel-header-default-framed-left{background-image:url('../../extjs/resources/themes/images/default/panel-header/panel-header-default-left-bg.gif')}.x-strict .x-ie9 .x-panel-header-default-framed-right,.x-nlg.x-opera .x-panel-header-default-framed-right,.x-nlg.x-safari .x-panel-header-default-framed-right{background-image:url('../../extjs/resources/themes/images/default/panel-header/panel-header-default-right-bg.gif')}.x-panel-header-text-default-framed{color:#7e3737;font-size:11px;font-weight:bold;font-family:Helvetica Neue,Arial,sans-serif;line-height:17px}.x-panel-body-default-framed{background:#fdfdfd;border-color:#bfbfbf;color:black;border-width:0;border-style:solid}.x-panel-collapsed .x-window-header-default-framed,.x-panel-collapsed .x-panel-header-default-framed{border-color:#bfbfbf}.x-panel-header-default-framed-vertical{border-color:#bfbfbf}.x-panel-header-default-framed-left,.x-panel-header-default-framed-right{background-image:none;background-color:#f2f1f1;background-image:-webkit-gradient(linear,100% 50%,0% 50%,color-stop(0%,#fbfafa),color-stop(45%,#f3f2f2),color-stop(46%,#e0dcdc),color-stop(50%,#e0dcdc),color-stop(51%,#e7e4e4),color-stop(100%,#f2f1f1));background-image:-webkit-linear-gradient(right,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1);background-image:-moz-linear-gradient(right,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1);background-image:-o-linear-gradient(right,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1);background-image:linear-gradient(right,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1)}.x-panel-default-framed{-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px;padding:4px 4px 4px 4px;border-width:1px;border-style:solid;background-color:#fdfdfd}.x-nlg .x-panel-default-framed-mc{background-color:#fdfdfd}.x-nbr .x-panel-default-framed{padding:0!important;border-width:0!important;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0;background-color:transparent;background-position:1000404px 1000404px}.x-nbr .x-panel-default-framed-tl,.x-nbr .x-panel-default-framed-bl,.x-nbr .x-panel-default-framed-tr,.x-nbr .x-panel-default-framed-br,.x-nbr .x-panel-default-framed-tc,.x-nbr .x-panel-default-framed-bc,.x-nbr .x-panel-default-framed-ml,.x-nbr .x-panel-default-framed-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/panel/panel-default-framed-corners.gif')}.x-nbr .x-panel-default-framed-ml,.x-nbr .x-panel-default-framed-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/panel/panel-default-framed-sides.gif');background-position:0 0;background-repeat:repeat-y}.x-nbr .x-panel-default-framed-mc{padding:1px 1px 1px 1px}.x-strict .x-ie7 .x-panel-default-framed-tl,.x-strict .x-ie7 .x-panel-default-framed-bl{position:relative;right:0}.x-panel-header-default-framed-top{-moz-border-radius-topleft:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topright:4px;-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-bottomright:0;-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0;-moz-border-radius-bottomleft:0;-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0;padding:3px 5px 4px 5px;border-width:1px 1px 0 1px;border-style:solid;background-image:none;background-color:#f2f1f1;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#fbfafa),color-stop(45%,#f3f2f2),color-stop(46%,#e0dcdc),color-stop(50%,#e0dcdc),color-stop(51%,#e7e4e4),color-stop(100%,#f2f1f1));background-image:-webkit-linear-gradient(top,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1);background-image:-moz-linear-gradient(top,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1);background-image:-o-linear-gradient(top,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1);background-image:linear-gradient(top,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1)}.x-nlg .x-panel-header-default-framed-top-mc{background-image:url('../../extjs/resources/themes/images/default/panel-header/panel-header-default-framed-top-bg.gif');background-color:#f2f1f1}.x-nbr .x-panel-header-default-framed-top{padding:0!important;border-width:0!important;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0;background-color:transparent;background-position:1000404px 1000000px}.x-nbr .x-panel-header-default-framed-top-tl,.x-nbr .x-panel-header-default-framed-top-bl,.x-nbr .x-panel-header-default-framed-top-tr,.x-nbr .x-panel-header-default-framed-top-br,.x-nbr .x-panel-header-default-framed-top-tc,.x-nbr .x-panel-header-default-framed-top-bc,.x-nbr .x-panel-header-default-framed-top-ml,.x-nbr .x-panel-header-default-framed-top-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/panel-header/panel-header-default-framed-top-corners.gif')}.x-nbr .x-panel-header-default-framed-top-ml,.x-nbr .x-panel-header-default-framed-top-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/panel-header/panel-header-default-framed-top-sides.gif');background-position:0 0}.x-nbr .x-panel-header-default-framed-top-mc{padding:0 2px 4px 2px}.x-strict .x-ie7 .x-panel-header-default-framed-top-tl,.x-strict .x-ie7 .x-panel-header-default-framed-top-bl{position:relative;right:0}.x-panel-header-default-framed-right{-moz-border-radius-topleft:0;-webkit-border-top-left-radius:0;border-top-left-radius:0;-moz-border-radius-topright:4px;-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-bottomright:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-bottomleft:0;-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0;padding:5px 4px 5px 4px;border-width:1px 1px 1px 0;border-style:solid;background-image:none;background-color:#f2f1f1;background-image:-webkit-gradient(linear,100% 50%,0% 50%,color-stop(0%,#fbfafa),color-stop(45%,#f3f2f2),color-stop(46%,#e0dcdc),color-stop(50%,#e0dcdc),color-stop(51%,#e7e4e4),color-stop(100%,#f2f1f1));background-image:-webkit-linear-gradient(right,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1);background-image:-moz-linear-gradient(right,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1);background-image:-o-linear-gradient(right,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1);background-image:linear-gradient(right,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1)}.x-nlg .x-panel-header-default-framed-right-mc{background-image:url('../../extjs/resources/themes/images/default/panel-header/panel-header-default-framed-right-bg.gif');background-color:#f2f1f1}.x-nbr .x-panel-header-default-framed-right{padding:0!important;border-width:0!important;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0;background-color:transparent;background-position:1000004px 1100400px}.x-nbr .x-panel-header-default-framed-right-tl,.x-nbr .x-panel-header-default-framed-right-bl,.x-nbr .x-panel-header-default-framed-right-tr,.x-nbr .x-panel-header-default-framed-right-br,.x-nbr .x-panel-header-default-framed-right-tc,.x-nbr .x-panel-header-default-framed-right-bc,.x-nbr .x-panel-header-default-framed-right-ml,.x-nbr .x-panel-header-default-framed-right-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/panel-header/panel-header-default-framed-right-corners.gif')}.x-nbr .x-panel-header-default-framed-right-tc,.x-nbr .x-panel-header-default-framed-right-bc{zoom:1;background-image:url('../../extjs/resources/themes/images/default/panel-header/panel-header-default-framed-right-sides.gif');background-position:0 0;background-repeat:repeat-x}.x-nbr .x-panel-header-default-framed-right-mc{padding:2px 1px 2px 4px}.x-strict .x-ie7 .x-panel-header-default-framed-right-tl,.x-strict .x-ie7 .x-panel-header-default-framed-right-bl{position:relative;right:0}.x-panel-header-default-framed-bottom{-moz-border-radius-topleft:0;-webkit-border-top-left-radius:0;border-top-left-radius:0;-moz-border-radius-topright:0;-webkit-border-top-right-radius:0;border-top-right-radius:0;-moz-border-radius-bottomright:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-bottomleft:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;padding:3px 5px 4px 5px;border-width:0 1px 1px 1px;border-style:solid;background-image:none;background-color:#f2f1f1;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#fbfafa),color-stop(45%,#f3f2f2),color-stop(46%,#e0dcdc),color-stop(50%,#e0dcdc),color-stop(51%,#e7e4e4),color-stop(100%,#f2f1f1));background-image:-webkit-linear-gradient(top,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1);background-image:-moz-linear-gradient(top,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1);background-image:-o-linear-gradient(top,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1);background-image:linear-gradient(top,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1)}.x-nlg .x-panel-header-default-framed-bottom-mc{background-image:url('../../extjs/resources/themes/images/default/panel-header/panel-header-default-framed-bottom-bg.gif');background-color:#f2f1f1}.x-nbr .x-panel-header-default-framed-bottom{padding:0!important;border-width:0!important;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0;background-color:transparent;background-position:1000000px 1000404px}.x-nbr .x-panel-header-default-framed-bottom-tl,.x-nbr .x-panel-header-default-framed-bottom-bl,.x-nbr .x-panel-header-default-framed-bottom-tr,.x-nbr .x-panel-header-default-framed-bottom-br,.x-nbr .x-panel-header-default-framed-bottom-tc,.x-nbr .x-panel-header-default-framed-bottom-bc,.x-nbr .x-panel-header-default-framed-bottom-ml,.x-nbr .x-panel-header-default-framed-bottom-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/panel-header/panel-header-default-framed-bottom-corners.gif')}.x-nbr .x-panel-header-default-framed-bottom-ml,.x-nbr .x-panel-header-default-framed-bottom-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/panel-header/panel-header-default-framed-bottom-sides.gif');background-position:0 0}.x-nbr .x-panel-header-default-framed-bottom-mc{padding:3px 2px 1px 2px}.x-strict .x-ie7 .x-panel-header-default-framed-bottom-tl,.x-strict .x-ie7 .x-panel-header-default-framed-bottom-bl{position:relative;right:0}.x-panel-header-default-framed-left{-moz-border-radius-topleft:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topright:0;-webkit-border-top-right-radius:0;border-top-right-radius:0;-moz-border-radius-bottomright:0;-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0;-moz-border-radius-bottomleft:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;padding:5px 4px 5px 4px;border-width:1px 0 1px 1px;border-style:solid;background-image:none;background-color:#f2f1f1;background-image:-webkit-gradient(linear,100% 50%,0% 50%,color-stop(0%,#fbfafa),color-stop(45%,#f3f2f2),color-stop(46%,#e0dcdc),color-stop(50%,#e0dcdc),color-stop(51%,#e7e4e4),color-stop(100%,#f2f1f1));background-image:-webkit-linear-gradient(right,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1);background-image:-moz-linear-gradient(right,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1);background-image:-o-linear-gradient(right,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1);background-image:linear-gradient(right,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1)}.x-nlg .x-panel-header-default-framed-left-mc{background-image:url('../../extjs/resources/themes/images/default/panel-header/panel-header-default-framed-left-bg.gif');background-color:#f2f1f1}.x-nbr .x-panel-header-default-framed-left{padding:0!important;border-width:0!important;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0;background-color:transparent;background-position:1000400px 1100004px}.x-nbr .x-panel-header-default-framed-left-tl,.x-nbr .x-panel-header-default-framed-left-bl,.x-nbr .x-panel-header-default-framed-left-tr,.x-nbr .x-panel-header-default-framed-left-br,.x-nbr .x-panel-header-default-framed-left-tc,.x-nbr .x-panel-header-default-framed-left-bc,.x-nbr .x-panel-header-default-framed-left-ml,.x-nbr .x-panel-header-default-framed-left-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/panel-header/panel-header-default-framed-left-corners.gif')}.x-nbr .x-panel-header-default-framed-left-tc,.x-nbr .x-panel-header-default-framed-left-bc{zoom:1;background-image:url('../../extjs/resources/themes/images/default/panel-header/panel-header-default-framed-left-sides.gif');background-position:0 0;background-repeat:repeat-x}.x-nbr .x-panel-header-default-framed-left-mc{padding:2px 4px 2px 1px}.x-strict .x-ie7 .x-panel-header-default-framed-left-tl,.x-strict .x-ie7 .x-panel-header-default-framed-left-bl{position:relative;right:0}.x-panel-header-default-framed-top{-webkit-box-shadow:white 0 1px 0 0 inset,white -1px 0 0 0 inset,white 1px 0 0 0 inset;-moz-box-shadow:white 0 1px 0 0 inset,white -1px 0 0 0 inset,white 1px 0 0 0 inset;box-shadow:white 0 1px 0 0 inset,white -1px 0 0 0 inset,white 1px 0 0 0 inset}.x-panel-header-default-framed-right{-webkit-box-shadow:white 0 1px 0 0 inset,white 0 -1px 0 0 inset,white -1px 0 0 0 inset;-moz-box-shadow:white 0 1px 0 0 inset,white 0 -1px 0 0 inset,white -1px 0 0 0 inset;box-shadow:white 0 1px 0 0 inset,white 0 -1px 0 0 inset,white -1px 0 0 0 inset}.x-panel-header-default-framed-bottom{-webkit-box-shadow:white 0 -1px 0 0 inset,white -1px 0 0 0 inset,white 1px 0 0 0 inset;-moz-box-shadow:white 0 -1px 0 0 inset,white -1px 0 0 0 inset,white 1px 0 0 0 inset;box-shadow:white 0 -1px 0 0 inset,white -1px 0 0 0 inset,white 1px 0 0 0 inset}.x-panel-header-default-framed-left{-webkit-box-shadow:white 0 1px 0 0 inset,white 0 -1px 0 0 inset,white 1px 0 0 0 inset;-moz-box-shadow:white 0 1px 0 0 inset,white 0 -1px 0 0 inset,white 1px 0 0 0 inset;box-shadow:white 0 1px 0 0 inset,white 0 -1px 0 0 inset,white 1px 0 0 0 inset}.x-panel .x-panel-header-default-framed-top{border-bottom-width:1px!important}.x-panel .x-panel-header-default-framed-right{border-left-width:1px!important}.x-panel .x-panel-header-default-framed-bottom{border-top-width:1px!important}.x-panel .x-panel-header-default-framed-left{border-right-width:1px!important}.x-panel-header-default-framed-collapsed{-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px}.x-panel-header-default-framed-collapsed-top{-moz-border-radius-topleft:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topright:4px;-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-bottomright:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-bottomleft:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;padding:3px 5px 4px 5px;border-width:1px;border-style:solid;background-image:none;background-color:#f2f1f1;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#fbfafa),color-stop(45%,#f3f2f2),color-stop(46%,#e0dcdc),color-stop(50%,#e0dcdc),color-stop(51%,#e7e4e4),color-stop(100%,#f2f1f1));background-image:-webkit-linear-gradient(top,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1);background-image:-moz-linear-gradient(top,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1);background-image:-o-linear-gradient(top,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1);background-image:linear-gradient(top,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1)}.x-nlg .x-panel-header-default-framed-collapsed-top-mc{background-image:url('../../extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-top-bg.gif');background-color:#f2f1f1}.x-nbr .x-panel-header-default-framed-collapsed-top{padding:0!important;border-width:0!important;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0;background-color:transparent;background-position:1000404px 1000404px}.x-nbr .x-panel-header-default-framed-collapsed-top-tl,.x-nbr .x-panel-header-default-framed-collapsed-top-bl,.x-nbr .x-panel-header-default-framed-collapsed-top-tr,.x-nbr .x-panel-header-default-framed-collapsed-top-br,.x-nbr .x-panel-header-default-framed-collapsed-top-tc,.x-nbr .x-panel-header-default-framed-collapsed-top-bc,.x-nbr .x-panel-header-default-framed-collapsed-top-ml,.x-nbr .x-panel-header-default-framed-collapsed-top-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-top-corners.gif')}.x-nbr .x-panel-header-default-framed-collapsed-top-ml,.x-nbr .x-panel-header-default-framed-collapsed-top-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-top-sides.gif');background-position:0 0}.x-nbr .x-panel-header-default-framed-collapsed-top-mc{padding:0 2px 1px 2px}.x-strict .x-ie7 .x-panel-header-default-framed-collapsed-top-tl,.x-strict .x-ie7 .x-panel-header-default-framed-collapsed-top-bl{position:relative;right:0}.x-panel-header-default-framed-collapsed-right{-moz-border-radius-topleft:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topright:4px;-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-bottomright:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-bottomleft:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;padding:5px 4px 5px 4px;border-width:1px;border-style:solid;background-image:none;background-color:#f2f1f1;background-image:-webkit-gradient(linear,100% 50%,0% 50%,color-stop(0%,#fbfafa),color-stop(45%,#f3f2f2),color-stop(46%,#e0dcdc),color-stop(50%,#e0dcdc),color-stop(51%,#e7e4e4),color-stop(100%,#f2f1f1));background-image:-webkit-linear-gradient(right,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1);background-image:-moz-linear-gradient(right,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1);background-image:-o-linear-gradient(right,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1);background-image:linear-gradient(right,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1)}.x-nlg .x-panel-header-default-framed-collapsed-right-mc{background-image:url('../../extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-right-bg.gif');background-color:#f2f1f1}.x-nbr .x-panel-header-default-framed-collapsed-right{padding:0!important;border-width:0!important;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0;background-color:transparent;background-position:1000404px 1100404px}.x-nbr .x-panel-header-default-framed-collapsed-right-tl,.x-nbr .x-panel-header-default-framed-collapsed-right-bl,.x-nbr .x-panel-header-default-framed-collapsed-right-tr,.x-nbr .x-panel-header-default-framed-collapsed-right-br,.x-nbr .x-panel-header-default-framed-collapsed-right-tc,.x-nbr .x-panel-header-default-framed-collapsed-right-bc,.x-nbr .x-panel-header-default-framed-collapsed-right-ml,.x-nbr .x-panel-header-default-framed-collapsed-right-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-right-corners.gif')}.x-nbr .x-panel-header-default-framed-collapsed-right-tc,.x-nbr .x-panel-header-default-framed-collapsed-right-bc{zoom:1;background-image:url('../../extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-right-sides.gif');background-position:0 0;background-repeat:repeat-x}.x-nbr .x-panel-header-default-framed-collapsed-right-mc{padding:2px 1px 2px 1px}.x-strict .x-ie7 .x-panel-header-default-framed-collapsed-right-tl,.x-strict .x-ie7 .x-panel-header-default-framed-collapsed-right-bl{position:relative;right:0}.x-panel-header-default-framed-collapsed-bottom{-moz-border-radius-topleft:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topright:4px;-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-bottomright:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-bottomleft:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;padding:3px 5px 4px 5px;border-width:1px;border-style:solid;background-image:none;background-color:#f2f1f1;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#fbfafa),color-stop(45%,#f3f2f2),color-stop(46%,#e0dcdc),color-stop(50%,#e0dcdc),color-stop(51%,#e7e4e4),color-stop(100%,#f2f1f1));background-image:-webkit-linear-gradient(top,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1);background-image:-moz-linear-gradient(top,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1);background-image:-o-linear-gradient(top,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1);background-image:linear-gradient(top,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1)}.x-nlg .x-panel-header-default-framed-collapsed-bottom-mc{background-image:url('../../extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-bottom-bg.gif');background-color:#f2f1f1}.x-nbr .x-panel-header-default-framed-collapsed-bottom{padding:0!important;border-width:0!important;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0;background-color:transparent;background-position:1000404px 1000404px}.x-nbr .x-panel-header-default-framed-collapsed-bottom-tl,.x-nbr .x-panel-header-default-framed-collapsed-bottom-bl,.x-nbr .x-panel-header-default-framed-collapsed-bottom-tr,.x-nbr .x-panel-header-default-framed-collapsed-bottom-br,.x-nbr .x-panel-header-default-framed-collapsed-bottom-tc,.x-nbr .x-panel-header-default-framed-collapsed-bottom-bc,.x-nbr .x-panel-header-default-framed-collapsed-bottom-ml,.x-nbr .x-panel-header-default-framed-collapsed-bottom-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-bottom-corners.gif')}.x-nbr .x-panel-header-default-framed-collapsed-bottom-ml,.x-nbr .x-panel-header-default-framed-collapsed-bottom-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-bottom-sides.gif');background-position:0 0}.x-nbr .x-panel-header-default-framed-collapsed-bottom-mc{padding:0 2px 1px 2px}.x-strict .x-ie7 .x-panel-header-default-framed-collapsed-bottom-tl,.x-strict .x-ie7 .x-panel-header-default-framed-collapsed-bottom-bl{position:relative;right:0}.x-panel-header-default-framed-collapsed-left{-moz-border-radius-topleft:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topright:4px;-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-bottomright:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-bottomleft:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;padding:5px 4px 5px 4px;border-width:1px;border-style:solid;background-image:none;background-color:#f2f1f1;background-image:-webkit-gradient(linear,100% 50%,0% 50%,color-stop(0%,#fbfafa),color-stop(45%,#f3f2f2),color-stop(46%,#e0dcdc),color-stop(50%,#e0dcdc),color-stop(51%,#e7e4e4),color-stop(100%,#f2f1f1));background-image:-webkit-linear-gradient(right,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1);background-image:-moz-linear-gradient(right,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1);background-image:-o-linear-gradient(right,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1);background-image:linear-gradient(right,#fbfafa,#f3f2f2 45%,#e0dcdc 46%,#e0dcdc 50%,#e7e4e4 51%,#f2f1f1)}.x-nlg .x-panel-header-default-framed-collapsed-left-mc{background-image:url('../../extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-left-bg.gif');background-color:#f2f1f1}.x-nbr .x-panel-header-default-framed-collapsed-left{padding:0!important;border-width:0!important;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0;background-color:transparent;background-position:1000404px 1100404px}.x-nbr .x-panel-header-default-framed-collapsed-left-tl,.x-nbr .x-panel-header-default-framed-collapsed-left-bl,.x-nbr .x-panel-header-default-framed-collapsed-left-tr,.x-nbr .x-panel-header-default-framed-collapsed-left-br,.x-nbr .x-panel-header-default-framed-collapsed-left-tc,.x-nbr .x-panel-header-default-framed-collapsed-left-bc,.x-nbr .x-panel-header-default-framed-collapsed-left-ml,.x-nbr .x-panel-header-default-framed-collapsed-left-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-left-corners.gif')}.x-nbr .x-panel-header-default-framed-collapsed-left-tc,.x-nbr .x-panel-header-default-framed-collapsed-left-bc{zoom:1;background-image:url('../../extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-left-sides.gif');background-position:0 0;background-repeat:repeat-x}.x-nbr .x-panel-header-default-framed-collapsed-left-mc{padding:2px 1px 2px 1px}.x-strict .x-ie7 .x-panel-header-default-framed-collapsed-left-tl,.x-strict .x-ie7 .x-panel-header-default-framed-collapsed-left-bl{position:relative;right:0}.x-panel-header-default-framed-right-tc,.x-panel-header-default-framed-right-mc,.x-panel-header-default-framed-right-bc{background-position:right 0}.x-panel-header-default-framed-bottom-tc,.x-panel-header-default-framed-bottom-mc,.x-panel-header-default-framed-bottom-bc{background-position:0 bottom}.x-panel-header-plain,.x-panel-body-plain{border:0;padding:0}.x-tip{position:absolute;overflow:visible;border-color:#b9b9b9}.x-tip .x-tip-header .x-box-item{padding:3px 3px 0}.x-tip .x-tip-header .x-tool{padding:0 1px 0 0!important}.x-tip{-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px;padding:2px 2px 2px 2px;border-width:1px;border-style:solid;background-color:white}.x-nlg .x-tip-mc{background-color:white}.x-nbr .x-tip{padding:0!important;border-width:0!important;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0;background-color:transparent;background-position:1100303px 1000303px}.x-nbr .x-tip-tl,.x-nbr .x-tip-bl,.x-nbr .x-tip-tr,.x-nbr .x-tip-br,.x-nbr .x-tip-tc,.x-nbr .x-tip-bc,.x-nbr .x-tip-ml,.x-nbr .x-tip-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/tip/tip-corners.gif')}.x-nbr .x-tip-ml,.x-nbr .x-tip-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/tip/tip-sides.gif');background-position:0 0;background-repeat:repeat-y}.x-nbr .x-tip-mc{padding:0}.x-strict .x-ie7 .x-tip-tl,.x-strict .x-ie7 .x-tip-bl{position:relative;right:0}.x-tip-header-text{user-select:none;-o-user-select:none;-ms-user-select:none;-moz-user-select:-moz-none;-webkit-user-select:none;cursor:default;color:#444;font-size:11px;font-weight:bold}.x-tip-header-draggable .x-tip-header-text{cursor:move}.x-tip-body,.x-form-invalid-tip-body{overflow:hidden;position:relative;padding:3px}.x-tip-header,.x-tip-body,.x-form-invalid-tip-body{color:#444;font-size:11px;font-weight:normal}.x-tip-header a,.x-tip-body a,.x-form-invalid-tip-body a{color:#2a2a2a}.x-tip-anchor{position:absolute;overflow:hidden;height:0;width:0;border-style:solid;border-width:5px;border-color:#b9b9b9;zoom:1}.x-border-box .x-tip-anchor{width:10px;height:10px}.x-tip-anchor-top{border-top-color:transparent;border-left-color:transparent;border-right-color:transparent;_border-top-color:pink;_border-left-color:pink;_border-right-color:pink;_filter:chroma(color=pink)}.x-tip-anchor-bottom{border-bottom-color:transparent;border-left-color:transparent;border-right-color:transparent;_border-bottom-color:pink;_border-left-color:pink;_border-right-color:pink;_filter:chroma(color=pink)}.x-tip-anchor-left{border-top-color:transparent;border-bottom-color:transparent;border-left-color:transparent;_border-top-color:pink;_border-bottom-color:pink;_border-left-color:pink;_filter:chroma(color=pink)}.x-tip-anchor-right{border-top-color:transparent;border-bottom-color:transparent;border-right-color:transparent;_border-top-color:pink;_border-bottom-color:pink;_border-right-color:pink;_filter:chroma(color=pink)}.x-form-invalid-tip{border-color:#a1311f;-webkit-box-shadow:#d87166 0 1px 0 0 inset,#d87166 0 -1px 0 0 inset,#d87166 -1px 0 0 0 inset,#d87166 1px 0 0 0 inset;-moz-box-shadow:#d87166 0 1px 0 0 inset,#d87166 0 -1px 0 0 inset,#d87166 -1px 0 0 0 inset,#d87166 1px 0 0 0 inset;box-shadow:#d87166 0 1px 0 0 inset,#d87166 0 -1px 0 0 inset,#d87166 -1px 0 0 0 inset,#d87166 1px 0 0 0 inset}.x-form-invalid-tip-body{background:1px 1px no-repeat;background-image:url('../../extjs/resources/themes/images/default/form/exclamation.gif');padding-left:22px}.x-form-invalid-tip-body li{margin-bottom:4px}.x-form-invalid-tip-body li.last{margin-bottom:0}.x-form-invalid-tip-default{-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;-o-border-radius:5px;border-radius:5px;padding:4px 4px 4px 4px;border-width:1px;border-style:solid;background-color:white}.x-nlg .x-form-invalid-tip-default-mc{background-color:white}.x-nbr .x-form-invalid-tip-default{padding:0!important;border-width:0!important;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0;background-color:transparent;background-position:1100505px 1000505px}.x-nbr .x-form-invalid-tip-default-tl,.x-nbr .x-form-invalid-tip-default-bl,.x-nbr .x-form-invalid-tip-default-tr,.x-nbr .x-form-invalid-tip-default-br,.x-nbr .x-form-invalid-tip-default-tc,.x-nbr .x-form-invalid-tip-default-bc,.x-nbr .x-form-invalid-tip-default-ml,.x-nbr .x-form-invalid-tip-default-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/form-invalid-tip/form-invalid-tip-default-corners.gif')}.x-nbr .x-form-invalid-tip-default-ml,.x-nbr .x-form-invalid-tip-default-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/form-invalid-tip/form-invalid-tip-default-sides.gif');background-position:0 0;background-repeat:repeat-y}.x-nbr .x-form-invalid-tip-default-mc{padding:0}.x-strict .x-ie7 .x-form-invalid-tip-default-tl,.x-strict .x-ie7 .x-form-invalid-tip-default-bl{position:relative;right:0}.x-slider{zoom:1}.x-slider-inner{position:relative;left:0;top:0;overflow:visible;zoom:1}.x-slider-focus{position:absolute;left:0;top:0;width:1px;height:1px;line-height:1px;font-size:1px;-moz-outline:0 none;outline:0 none;user-select:none;-o-user-select:none;-ms-user-select:none;-moz-user-select:-moz-none;-webkit-user-select:none;cursor:default;display:block;overflow:hidden}.x-slider-horz{padding-left:7px;background:transparent no-repeat 0 -24px;width:100%}.x-slider-horz .x-slider-end{padding-right:7px;zoom:1;background:transparent no-repeat right -46px}.x-slider-horz .x-slider-inner{background:transparent repeat-x 0 -2px;height:18px}.x-slider-horz .x-slider-thumb{width:14px;height:15px;margin-left:-7px;position:absolute;left:0;top:1px;background:transparent no-repeat 0 0}.x-slider-horz .x-slider-thumb-over{background-position:-14px -15px}.x-slider-horz .x-slider-thumb-drag{background-position:-28px -30px}.x-slider-vert{padding-top:7px;background:transparent no-repeat -44px 0}.x-slider-vert .x-slider-end{padding-bottom:7px;zoom:1;background:transparent no-repeat -22px bottom;width:22px}.x-slider-vert .x-slider-inner{background:transparent repeat-y 0 0;width:22px}.x-slider-vert .x-slider-thumb{width:15px;height:14px;margin-bottom:-7px;position:absolute;left:3px;bottom:0;background:transparent no-repeat 0 0}.x-slider-vert .x-slider-thumb-over{background-position:-15px -14px}.x-slider-vert .x-slider-thumb-drag{background-position:-30px -28px}.x-slider-horz,.x-slider-horz .x-slider-end,.x-slider-horz .x-slider-inner{background-image:url('../../extjs/resources/themes/images/default/slider/slider-bg.png')}.x-slider-horz .x-slider-thumb{background-image:url('../../extjs/resources/themes/images/default/slider/slider-thumb.png')}.x-slider-vert,.x-slider-vert .x-slider-end,.x-slider-vert .x-slider-inner{background-image:url('../../extjs/resources/themes/images/default/slider/slider-v-bg.png')}.x-slider-vert .x-slider-thumb{background-image:url('../../extjs/resources/themes/images/default/slider/slider-v-thumb.png')}.x-ie6 .x-slider-horz,.x-ie6 .x-slider-horz .x-slider-end,.x-ie6 .x-slider-horz .x-slider-inner{background-image:url('../../extjs/resources/themes/images/default/slider/slider-bg.gif')}.x-ie6 .x-slider-horz .x-slider-thumb{background-image:url('../../extjs/resources/themes/images/default/slider/slider-thumb.gif')}.x-ie6 .x-slider-vert,.x-ie6 .x-slider-vert .x-slider-end,.x-ie6 .x-slider-vert .x-slider-inner{background-image:url('../../extjs/resources/themes/images/default/slider/slider-v-bg.gif')}.x-ie6 .x-slider-vert .x-slider-thumb{background-image:url('../../extjs/resources/themes/images/default/slider/slider-v-thumb.gif')}.x-progress{position:relative;border-width:1px;border-style:solid;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0;overflow:hidden;height:20px}.x-progress-bar{height:18px;overflow:hidden;position:absolute;width:0;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0;border-right:1px solid;border-top:1px solid}.x-progress-text{overflow:hidden;position:absolute;padding:0 5px;height:18px;font-weight:bold;font-size:11px;line-height:16px;text-align:center}.x-progress-text-back{padding-top:1px}.x-strict .x-ie7m .x-progress{height:18px}.x-progress-default{border-color:#adadad}.x-progress-default .x-progress-bar{border-right-color:#adadad;border-top-color:#ececec;background-image:none;background-color:#c1b7b7;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#e5e0e0),color-stop(50%,#cdc4c4),color-stop(51%,#c1b7b7),color-stop(100%,#b6a9a9));background-image:-webkit-linear-gradient(top,#e5e0e0,#cdc4c4 50%,#c1b7b7 51%,#b6a9a9);background-image:-moz-linear-gradient(top,#e5e0e0,#cdc4c4 50%,#c1b7b7 51%,#b6a9a9);background-image:-o-linear-gradient(top,#e5e0e0,#cdc4c4 50%,#c1b7b7 51%,#b6a9a9);background-image:linear-gradient(top,#e5e0e0,#cdc4c4 50%,#c1b7b7 51%,#b6a9a9)}.x-progress-default .x-progress-text{color:white}.x-progress-default .x-progress-text-back{color:#7a7a7a}.x-nlg .x-progress-default .x-progress-bar{background:repeat-x;background-image:url('../../extjs/resources/themes/images/default/progress/progress-default-bg.gif')}.x-toolbar{font-size:11px;border:1px solid;padding:2px 0 2px 2px}.x-toolbar .x-form-item-label{font-size:11px;line-height:15px}.x-toolbar .x-toolbar-item{margin:0 2px 0 0}.x-toolbar .x-toolbar-text{margin-left:4px;margin-right:6px;white-space:nowrap;color:#4c4c4c;line-height:16px;font-family:Helvetica Neue,Arial,sans-serif;font-size:11px;font-weight:normal}.x-toolbar .x-toolbar-separator{display:block;font-size:1px;overflow:hidden;cursor:default;border:0}.x-toolbar .x-toolbar-separator-horizontal{margin:0 3px 0 2px;height:14px;width:0;border-left:1px solid #ffbdbe;border-right:1px solid white}.x-quirks .x-ie .x-toolbar .x-toolbar-separator-horizontal{width:2px}.x-toolbar-footer{background:transparent;border:0 none;margin-top:3px;padding:2px 0 2px 6px}.x-toolbar-footer .x-box-inner{border-width:0}.x-toolbar-footer .x-toolbar-item{margin:0 6px 0 0}.x-toolbar-vertical{padding:2px 2px 0 2px}.x-toolbar-vertical .x-toolbar-item{margin:0 0 2px 0}.x-toolbar-vertical .x-toolbar-text{margin-top:4px;margin-bottom:6px}.x-toolbar-vertical .x-toolbar-separator-vertical{margin:2px 5px 3px 5px;height:0;width:10px;line-height:0;border-top:1px solid #ffbdbe;border-bottom:1px solid white}.x-toolbar-scroller{padding-left:0}.x-toolbar-spacer{width:2px}.x-toolbar-more-icon{background-image:url('../../extjs/resources/themes/images/default/toolbar/more.gif')!important;background-position:2px center!important;background-repeat:no-repeat}.x-toolbar-default{border-color:#bfbfbf;background-image:none;background-color:#e9e9e9;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#f1f1f1),color-stop(100%,#e9e9e9));background-image:-webkit-linear-gradient(top,#f1f1f1,#e9e9e9);background-image:-moz-linear-gradient(top,#f1f1f1,#e9e9e9);background-image:-o-linear-gradient(top,#f1f1f1,#e9e9e9);background-image:linear-gradient(top,#f1f1f1,#e9e9e9)}.x-nlg .x-toolbar-default{background-image:url('../../extjs/resources/themes/images/default/toolbar/toolbar-default-bg.gif')!important;background-repeat:repeat-x}.x-toolbar-plain{border:0}.x-window{outline:0;overflow:hidden}.x-window .x-window-wrap{position:relative}.x-window-body{position:relative;border-style:solid;overflow:hidden}.x-window-maximized .x-window-wrap .x-window-header{-moz-border-radius:0!important;-webkit-border-radius:0!important;-o-border-radius:0!important;-ms-border-radius:0!important;-khtml-border-radius:0!important;border-radius:0!important}.x-window-header-top{margin-bottom:-2px}.x-window-header-body-horizontal{margin-top:-1px}.x-window-header-bottom{margin-top:-1px;margin-bottom:-1px}.x-window-header-left{margin-right:-1px}.x-window-header-right{margin-left:-1px}.x-window-header-vertical .x-surface{padding-left:1px}.x-window-collapsed .x-window-header-vertical{-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;-o-border-radius:5px;border-radius:5px}.x-window-collapsed .x-window-header-horizontal{-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;-o-border-radius:5px;border-radius:5px}.x-window-collapsed .x-window-header-left{padding-right:5px!important;margin-right:0}.x-window-collapsed .x-window-header-right{padding-left:5px!important;margin-left:0}.x-window-collapsed .x-window-header-top{padding-bottom:5px!important;margin-bottom:-1px}.x-window-collapsed .x-window-header-bottom{padding-top:5px!important;margin-top:0}.x-window-header-left .x-vml-base,.x-window-header-right .x-vml-base{left:-3px!important}.x-opera .x-window-header-vertical .x-surface,.x-strict .x-ie9 .x-window-header-vertical .x-surface{padding-left:2px}.x-window-header-text-container{overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis}.x-window-header-text{user-select:none;-o-user-select:none;-ms-user-select:none;-moz-user-select:-moz-none;-webkit-user-select:none;cursor:default;white-space:nowrap}.x-window-default{border-color:#c6c6c6;-webkit-border-radius:5px 5px;-moz-border-radius:5px 5px;-ms-border-radius:5px 5px;-o-border-radius:5px 5px;border-radius:5px 5px;-webkit-box-shadow:white 0 1px 0 0 inset,white 0 -1px 0 0 inset,white -1px 0 0 0 inset,white 1px 0 0 0 inset;-moz-box-shadow:white 0 1px 0 0 inset,white 0 -1px 0 0 inset,white -1px 0 0 0 inset,white 1px 0 0 0 inset;box-shadow:white 0 1px 0 0 inset,white 0 -1px 0 0 inset,white -1px 0 0 0 inset,white 1px 0 0 0 inset}.x-window-default{-moz-border-radius-topleft:5px;-webkit-border-top-left-radius:5px;border-top-left-radius:5px;-moz-border-radius-topright:5px;-webkit-border-top-right-radius:5px;border-top-right-radius:5px;-moz-border-radius-bottomright:5px;-webkit-border-bottom-right-radius:5px;border-bottom-right-radius:5px;-moz-border-radius-bottomleft:5px;-webkit-border-bottom-left-radius:5px;border-bottom-left-radius:5px;padding:4px 4px 4px 4px;border-width:1px;border-style:solid;background-color:#ededed}.x-nlg .x-window-default-mc{background-color:#ededed}.x-nbr .x-window-default{padding:0!important;border-width:0!important;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0;background-color:transparent;background-position:1000505px 1000505px}.x-nbr .x-window-default-tl,.x-nbr .x-window-default-bl,.x-nbr .x-window-default-tr,.x-nbr .x-window-default-br,.x-nbr .x-window-default-tc,.x-nbr .x-window-default-bc,.x-nbr .x-window-default-ml,.x-nbr .x-window-default-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/window/window-default-corners.gif')}.x-nbr .x-window-default-ml,.x-nbr .x-window-default-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/window/window-default-sides.gif');background-position:0 0;background-repeat:repeat-y}.x-nbr .x-window-default-mc{padding:0}.x-strict .x-ie7 .x-window-default-tl,.x-strict .x-ie7 .x-window-default-bl{position:relative;right:0}.x-window-body-default{border-color:#d6d0d0;border-width:1px;background:#fdfdfd;color:black}.x-window-header-default{font-size:11px;border-color:#c6c6c6;zoom:1}.x-window-header-text-default{color:#7e373a;font-weight:bold;line-height:17px;font-family:Helvetica Neue,Arial,sans-serif;font-size:11px}.x-window-header-default-top{-moz-border-radius-topleft:5px;-webkit-border-top-left-radius:5px;border-top-left-radius:5px;-moz-border-radius-topright:5px;-webkit-border-top-right-radius:5px;border-top-right-radius:5px;-moz-border-radius-bottomright:0;-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0;-moz-border-radius-bottomleft:0;-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0;padding:4px 5px 0 5px;border-width:1px 1px 0 1px;border-style:solid;background-color:#ededed}.x-nlg .x-window-header-default-top-mc{background-color:#ededed}.x-nbr .x-window-header-default-top{padding:0!important;border-width:0!important;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0;background-color:transparent;background-position:1000505px 1000000px}.x-nbr .x-window-header-default-top-tl,.x-nbr .x-window-header-default-top-bl,.x-nbr .x-window-header-default-top-tr,.x-nbr .x-window-header-default-top-br,.x-nbr .x-window-header-default-top-tc,.x-nbr .x-window-header-default-top-bc,.x-nbr .x-window-header-default-top-ml,.x-nbr .x-window-header-default-top-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/window-header/window-header-default-top-corners.gif')}.x-nbr .x-window-header-default-top-ml,.x-nbr .x-window-header-default-top-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/window-header/window-header-default-top-sides.gif');background-position:0 0;background-repeat:repeat-y}.x-nbr .x-window-header-default-top-mc{padding:0 1px 0 1px}.x-strict .x-ie7 .x-window-header-default-top-tl,.x-strict .x-ie7 .x-window-header-default-top-bl{position:relative;right:0}.x-window-header-default-right{-moz-border-radius-topleft:0;-webkit-border-top-left-radius:0;border-top-left-radius:0;-moz-border-radius-topright:5px;-webkit-border-top-right-radius:5px;border-top-right-radius:5px;-moz-border-radius-bottomright:5px;-webkit-border-bottom-right-radius:5px;border-bottom-right-radius:5px;-moz-border-radius-bottomleft:0;-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0;padding:5px 4px 5px 0;border-width:1px 1px 1px 0;border-style:solid;background-color:#ededed}.x-nlg .x-window-header-default-right-mc{background-color:#ededed}.x-nbr .x-window-header-default-right{padding:0!important;border-width:0!important;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0;background-color:transparent;background-position:1000005px 1000500px}.x-nbr .x-window-header-default-right-tl,.x-nbr .x-window-header-default-right-bl,.x-nbr .x-window-header-default-right-tr,.x-nbr .x-window-header-default-right-br,.x-nbr .x-window-header-default-right-tc,.x-nbr .x-window-header-default-right-bc,.x-nbr .x-window-header-default-right-ml,.x-nbr .x-window-header-default-right-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/window-header/window-header-default-right-corners.gif')}.x-nbr .x-window-header-default-right-ml,.x-nbr .x-window-header-default-right-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/window-header/window-header-default-right-sides.gif');background-position:0 0;background-repeat:repeat-y}.x-nbr .x-window-header-default-right-mc{padding:1px 0 1px 0}.x-strict .x-ie7 .x-window-header-default-right-tl,.x-strict .x-ie7 .x-window-header-default-right-bl{position:relative;right:0}.x-window-header-default-bottom{-moz-border-radius-topleft:0;-webkit-border-top-left-radius:0;border-top-left-radius:0;-moz-border-radius-topright:0;-webkit-border-top-right-radius:0;border-top-right-radius:0;-moz-border-radius-bottomright:5px;-webkit-border-bottom-right-radius:5px;border-bottom-right-radius:5px;-moz-border-radius-bottomleft:5px;-webkit-border-bottom-left-radius:5px;border-bottom-left-radius:5px;padding:0 5px 4px 5px;border-width:0 1px 1px 1px;border-style:solid;background-color:#ededed}.x-nlg .x-window-header-default-bottom-mc{background-color:#ededed}.x-nbr .x-window-header-default-bottom{padding:0!important;border-width:0!important;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0;background-color:transparent;background-position:1000000px 1000505px}.x-nbr .x-window-header-default-bottom-tl,.x-nbr .x-window-header-default-bottom-bl,.x-nbr .x-window-header-default-bottom-tr,.x-nbr .x-window-header-default-bottom-br,.x-nbr .x-window-header-default-bottom-tc,.x-nbr .x-window-header-default-bottom-bc,.x-nbr .x-window-header-default-bottom-ml,.x-nbr .x-window-header-default-bottom-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/window-header/window-header-default-bottom-corners.gif')}.x-nbr .x-window-header-default-bottom-ml,.x-nbr .x-window-header-default-bottom-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/window-header/window-header-default-bottom-sides.gif');background-position:0 0;background-repeat:repeat-y}.x-nbr .x-window-header-default-bottom-mc{padding:0 1px 0 1px}.x-strict .x-ie7 .x-window-header-default-bottom-tl,.x-strict .x-ie7 .x-window-header-default-bottom-bl{position:relative;right:0}.x-window-header-default-left{-moz-border-radius-topleft:5px;-webkit-border-top-left-radius:5px;border-top-left-radius:5px;-moz-border-radius-topright:0;-webkit-border-top-right-radius:0;border-top-right-radius:0;-moz-border-radius-bottomright:0;-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0;-moz-border-radius-bottomleft:5px;-webkit-border-bottom-left-radius:5px;border-bottom-left-radius:5px;padding:5px 0 5px 4px;border-width:1px 0 1px 1px;border-style:solid;background-color:#ededed}.x-nlg .x-window-header-default-left-mc{background-color:#ededed}.x-nbr .x-window-header-default-left{padding:0!important;border-width:0!important;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0;background-color:transparent;background-position:1000500px 1000005px}.x-nbr .x-window-header-default-left-tl,.x-nbr .x-window-header-default-left-bl,.x-nbr .x-window-header-default-left-tr,.x-nbr .x-window-header-default-left-br,.x-nbr .x-window-header-default-left-tc,.x-nbr .x-window-header-default-left-bc,.x-nbr .x-window-header-default-left-ml,.x-nbr .x-window-header-default-left-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/window-header/window-header-default-left-corners.gif')}.x-nbr .x-window-header-default-left-ml,.x-nbr .x-window-header-default-left-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/window-header/window-header-default-left-sides.gif');background-position:0 0;background-repeat:repeat-y}.x-nbr .x-window-header-default-left-mc{padding:1px 0 1px 0}.x-strict .x-ie7 .x-window-header-default-left-tl,.x-strict .x-ie7 .x-window-header-default-left-bl{position:relative;right:0}.x-window-header-default-collapsed-top{-moz-border-radius-topleft:5px;-webkit-border-top-left-radius:5px;border-top-left-radius:5px;-moz-border-radius-topright:5px;-webkit-border-top-right-radius:5px;border-top-right-radius:5px;-moz-border-radius-bottomright:5px;-webkit-border-bottom-right-radius:5px;border-bottom-right-radius:5px;-moz-border-radius-bottomleft:5px;-webkit-border-bottom-left-radius:5px;border-bottom-left-radius:5px;padding:4px 5px 4px 5px;border-width:1px;border-style:solid;background-color:#ededed}.x-nlg .x-window-header-default-collapsed-top-mc{background-color:#ededed}.x-nbr .x-window-header-default-collapsed-top{padding:0!important;border-width:0!important;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0;background-color:transparent;background-position:1000505px 1000505px}.x-nbr .x-window-header-default-collapsed-top-tl,.x-nbr .x-window-header-default-collapsed-top-bl,.x-nbr .x-window-header-default-collapsed-top-tr,.x-nbr .x-window-header-default-collapsed-top-br,.x-nbr .x-window-header-default-collapsed-top-tc,.x-nbr .x-window-header-default-collapsed-top-bc,.x-nbr .x-window-header-default-collapsed-top-ml,.x-nbr .x-window-header-default-collapsed-top-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/window-header/window-header-default-collapsed-top-corners.gif')}.x-nbr .x-window-header-default-collapsed-top-ml,.x-nbr .x-window-header-default-collapsed-top-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/window-header/window-header-default-collapsed-top-sides.gif');background-position:0 0;background-repeat:repeat-y}.x-nbr .x-window-header-default-collapsed-top-mc{padding:0 1px 0 1px}.x-strict .x-ie7 .x-window-header-default-collapsed-top-tl,.x-strict .x-ie7 .x-window-header-default-collapsed-top-bl{position:relative;right:0}.x-window-header-default-collapsed-right{-moz-border-radius-topleft:5px;-webkit-border-top-left-radius:5px;border-top-left-radius:5px;-moz-border-radius-topright:5px;-webkit-border-top-right-radius:5px;border-top-right-radius:5px;-moz-border-radius-bottomright:5px;-webkit-border-bottom-right-radius:5px;border-bottom-right-radius:5px;-moz-border-radius-bottomleft:5px;-webkit-border-bottom-left-radius:5px;border-bottom-left-radius:5px;padding:5px 4px 5px 4px;border-width:1px;border-style:solid;background-color:#ededed}.x-nlg .x-window-header-default-collapsed-right-mc{background-color:#ededed}.x-nbr .x-window-header-default-collapsed-right{padding:0!important;border-width:0!important;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0;background-color:transparent;background-position:1000505px 1000505px}.x-nbr .x-window-header-default-collapsed-right-tl,.x-nbr .x-window-header-default-collapsed-right-bl,.x-nbr .x-window-header-default-collapsed-right-tr,.x-nbr .x-window-header-default-collapsed-right-br,.x-nbr .x-window-header-default-collapsed-right-tc,.x-nbr .x-window-header-default-collapsed-right-bc,.x-nbr .x-window-header-default-collapsed-right-ml,.x-nbr .x-window-header-default-collapsed-right-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/window-header/window-header-default-collapsed-right-corners.gif')}.x-nbr .x-window-header-default-collapsed-right-ml,.x-nbr .x-window-header-default-collapsed-right-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/window-header/window-header-default-collapsed-right-sides.gif');background-position:0 0;background-repeat:repeat-y}.x-nbr .x-window-header-default-collapsed-right-mc{padding:1px 0 1px 0}.x-strict .x-ie7 .x-window-header-default-collapsed-right-tl,.x-strict .x-ie7 .x-window-header-default-collapsed-right-bl{position:relative;right:0}.x-window-header-default-collapsed-bottom{-moz-border-radius-topleft:5px;-webkit-border-top-left-radius:5px;border-top-left-radius:5px;-moz-border-radius-topright:5px;-webkit-border-top-right-radius:5px;border-top-right-radius:5px;-moz-border-radius-bottomright:5px;-webkit-border-bottom-right-radius:5px;border-bottom-right-radius:5px;-moz-border-radius-bottomleft:5px;-webkit-border-bottom-left-radius:5px;border-bottom-left-radius:5px;padding:4px 5px 4px 5px;border-width:1px;border-style:solid;background-color:#ededed}.x-nlg .x-window-header-default-collapsed-bottom-mc{background-color:#ededed}.x-nbr .x-window-header-default-collapsed-bottom{padding:0!important;border-width:0!important;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0;background-color:transparent;background-position:1000505px 1000505px}.x-nbr .x-window-header-default-collapsed-bottom-tl,.x-nbr .x-window-header-default-collapsed-bottom-bl,.x-nbr .x-window-header-default-collapsed-bottom-tr,.x-nbr .x-window-header-default-collapsed-bottom-br,.x-nbr .x-window-header-default-collapsed-bottom-tc,.x-nbr .x-window-header-default-collapsed-bottom-bc,.x-nbr .x-window-header-default-collapsed-bottom-ml,.x-nbr .x-window-header-default-collapsed-bottom-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/window-header/window-header-default-collapsed-bottom-corners.gif')}.x-nbr .x-window-header-default-collapsed-bottom-ml,.x-nbr .x-window-header-default-collapsed-bottom-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/window-header/window-header-default-collapsed-bottom-sides.gif');background-position:0 0;background-repeat:repeat-y}.x-nbr .x-window-header-default-collapsed-bottom-mc{padding:0 1px 0 1px}.x-strict .x-ie7 .x-window-header-default-collapsed-bottom-tl,.x-strict .x-ie7 .x-window-header-default-collapsed-bottom-bl{position:relative;right:0}.x-window-header-default-collapsed-left{-moz-border-radius-topleft:5px;-webkit-border-top-left-radius:5px;border-top-left-radius:5px;-moz-border-radius-topright:5px;-webkit-border-top-right-radius:5px;border-top-right-radius:5px;-moz-border-radius-bottomright:5px;-webkit-border-bottom-right-radius:5px;border-bottom-right-radius:5px;-moz-border-radius-bottomleft:5px;-webkit-border-bottom-left-radius:5px;border-bottom-left-radius:5px;padding:5px 4px 5px 4px;border-width:1px;border-style:solid;background-color:#ededed}.x-nlg .x-window-header-default-collapsed-left-mc{background-color:#ededed}.x-nbr .x-window-header-default-collapsed-left{padding:0!important;border-width:0!important;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0;background-color:transparent;background-position:1000505px 1000505px}.x-nbr .x-window-header-default-collapsed-left-tl,.x-nbr .x-window-header-default-collapsed-left-bl,.x-nbr .x-window-header-default-collapsed-left-tr,.x-nbr .x-window-header-default-collapsed-left-br,.x-nbr .x-window-header-default-collapsed-left-tc,.x-nbr .x-window-header-default-collapsed-left-bc,.x-nbr .x-window-header-default-collapsed-left-ml,.x-nbr .x-window-header-default-collapsed-left-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/window-header/window-header-default-collapsed-left-corners.gif')}.x-nbr .x-window-header-default-collapsed-left-ml,.x-nbr .x-window-header-default-collapsed-left-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/window-header/window-header-default-collapsed-left-sides.gif');background-position:0 0;background-repeat:repeat-y}.x-nbr .x-window-header-default-collapsed-left-mc{padding:1px 0 1px 0}.x-strict .x-ie7 .x-window-header-default-collapsed-left-tl,.x-strict .x-ie7 .x-window-header-default-collapsed-left-bl{position:relative;right:0}.x-window-header-default-top{-webkit-box-shadow:white 0 1px 0 0 inset,white -1px 0 0 0 inset,white 1px 0 0 0 inset;-moz-box-shadow:white 0 1px 0 0 inset,white -1px 0 0 0 inset,white 1px 0 0 0 inset;box-shadow:white 0 1px 0 0 inset,white -1px 0 0 0 inset,white 1px 0 0 0 inset}.x-window-header-default-right{-webkit-box-shadow:white 0 1px 0 0 inset,white 0 -1px 0 0 inset,white -1px 0 0 0 inset;-moz-box-shadow:white 0 1px 0 0 inset,white 0 -1px 0 0 inset,white -1px 0 0 0 inset;box-shadow:white 0 1px 0 0 inset,white 0 -1px 0 0 inset,white -1px 0 0 0 inset}.x-window-header-default-bottom{-webkit-box-shadow:white 0 -1px 0 0 inset,white -1px 0 0 0 inset,white 1px 0 0 0 inset;-moz-box-shadow:white 0 -1px 0 0 inset,white -1px 0 0 0 inset,white 1px 0 0 0 inset;box-shadow:white 0 -1px 0 0 inset,white -1px 0 0 0 inset,white 1px 0 0 0 inset}.x-window-header-default-left{-webkit-box-shadow:white 0 1px 0 0 inset,white 0 -1px 0 0 inset,white 1px 0 0 0 inset;-moz-box-shadow:white 0 1px 0 0 inset,white 0 -1px 0 0 inset,white 1px 0 0 0 inset;box-shadow:white 0 1px 0 0 inset,white 0 -1px 0 0 inset,white 1px 0 0 0 inset}.x-window-body-plain{background:transparent}.x-message-box .x-window-body{background-color:#ededed;border:0}.x-message-box .x-progress-wrap{margin-top:4px}.x-message-box-icon{width:47px;height:32px}.x-message-box-info,.x-message-box-warning,.x-message-box-question,.x-message-box-error{background:transparent no-repeat top left}.x-message-box .x-msg-box-wait{background-image:url('../../extjs/resources/themes/images/default/shared/blue-loading.gif')}.x-message-box-info{background-image:url('../../extjs/resources/themes/images/default/shared/icon-info.gif')}.x-message-box-warning{background-image:url('../../extjs/resources/themes/images/default/shared/icon-warning.gif')}.x-message-box-question{background-image:url('../../extjs/resources/themes/images/default/shared/icon-question.gif')}.x-message-box-error{background-image:url('../../extjs/resources/themes/images/default/shared/icon-error.gif')}.x-tab-bar{position:relative;background-color:transparent;background-image:none;background-color:#efefef;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#fcfbfb),color-stop(100%,#efefef));background-image:-webkit-linear-gradient(top,#fcfbfb,#efefef);background-image:-moz-linear-gradient(top,#fcfbfb,#efefef);background-image:-o-linear-gradient(top,#fcfbfb,#efefef);background-image:linear-gradient(top,#fcfbfb,#efefef);font-size:11px}.x-nlg .x-tab-bar{background-image:url('../../extjs/resources/themes/images/default/tab-bar/tab-bar-default-bg.gif')}.x-tab-bar-default-plain,.x-nlg .x-tab-bar-default-plain{background:transparent none}.x-tab-bar-body{border-style:solid;border-color:#bfbfbf;position:relative;z-index:2;zoom:1}.x-tab-bar-top .x-tab-bar-body{height:20px;border-width:1px 1px 0;padding:1px 0 3px}.x-tab-bar-top .x-tab-bar-strip{top:22px;border-width:1px 1px 0;height:2px}.x-border-box .x-tab-bar-top .x-tab-bar-body{height:25px}.x-border-box .x-tab-bar-top .x-tab-bar-strip{height:3px}.x-tab-bar-top .x-tab-bar-body-default-plain{height:20px;border-width:0;padding:0 0 2px}.x-tab-bar-top .x-tab-bar-strip-default-plain{top:20px;border-width:1px 1px 0 1px;height:2px}.x-border-box .x-tab-bar-top .x-tab-bar-body-default-plain{height:22px}.x-border-box .x-tab-bar-top .x-tab-bar-strip-default-plain{height:3px}.x-tab-bar-bottom .x-tab-bar-body{height:20px;border-width:0 1px 1px;padding:3px 0 1px}.x-tab-bar-bottom .x-tab-bar-body .x-box-inner{position:relative;top:-1px}.x-tab-bar-bottom .x-tab-bar-body .x-box-scroller,.x-tab-bar-bottom .x-tab-bar-body .x-box-scroller-left,.x-tab-bar-bottom .x-tab-bar-body .x-box-scroller-right{height:22px}.x-tab-bar-bottom .x-tab-bar-strip{top:0;border-width:0 1px 1px 1px;height:2px}.x-border-box .x-tab-bar-bottom .x-tab-bar-body{height:25px}.x-border-box .x-tab-bar-bottom .x-tab-bar-strip{height:3px}.x-tab-bar-bottom .x-tab-bar-body-default-plain{height:20px;border-width:0;padding:3px 0 0}.x-tab-bar-bottom .x-tab-bar-body-default-plain .x-box-inner{position:relative;top:-1px}.x-tab-bar-bottom .x-tab-bar-body-default-plain .x-box-scroller,.x-tab-bar-bottom .x-tab-bar-body-default-plain .x-box-scroller-left,.x-tab-bar-bottom .x-tab-bar-body-default-plain .x-box-scroller-right{height:21px}.x-tab-bar-bottom .x-tab-bar-strip-default-plain{top:0;border-width:0 1px 1px 1px;height:2px}.x-border-box .x-tab-bar-bottom .x-tab-bar-body-default-plain{height:23px}.x-border-box .x-tab-bar-bottom .x-tab-bar-strip-default-plain{height:3px}.x-tab-bar-strip-default,.x-tab-bar-strip-default-plain{font-size:0;line-height:0;position:absolute;z-index:1;border-style:solid;overflow:hidden;border-color:#bfbfbf;background-color:#e9e9e9;zoom:1}.x-tab-default-top{-moz-border-radius-topleft:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topright:4px;-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-bottomright:0;-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0;-moz-border-radius-bottomleft:0;-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0;padding:3px 3px 0 3px;border-width:1px 1px 0 1px;border-style:solid;background-image:none;background-color:#e9e9e9;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#dcdcdc),color-stop(25%,#e3e3e3),color-stop(45%,#e9e9e9));background-image:-webkit-linear-gradient(top,#dcdcdc,#e3e3e3 25%,#e9e9e9 45%);background-image:-moz-linear-gradient(top,#dcdcdc,#e3e3e3 25%,#e9e9e9 45%);background-image:-o-linear-gradient(top,#dcdcdc,#e3e3e3 25%,#e9e9e9 45%);background-image:linear-gradient(top,#dcdcdc,#e3e3e3 25%,#e9e9e9 45%)}.x-nlg .x-tab-default-top-mc{background-image:url('../../extjs/resources/themes/images/default/tab/tab-default-top-bg.gif');background-color:#e9e9e9}.x-nbr .x-tab-default-top{padding:0!important;border-width:0!important;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0;background-color:transparent;background-position:1100404px 1000000px}.x-nbr .x-tab-default-top-tl,.x-nbr .x-tab-default-top-bl,.x-nbr .x-tab-default-top-tr,.x-nbr .x-tab-default-top-br,.x-nbr .x-tab-default-top-tc,.x-nbr .x-tab-default-top-bc,.x-nbr .x-tab-default-top-ml,.x-nbr .x-tab-default-top-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/tab/tab-default-top-corners.gif')}.x-nbr .x-tab-default-top-ml,.x-nbr .x-tab-default-top-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/tab/tab-default-top-sides.gif');background-position:0 0}.x-nbr .x-tab-default-top-mc{padding:0}.x-strict .x-ie7 .x-tab-default-top-tl,.x-strict .x-ie7 .x-tab-default-top-bl{position:relative;right:0}.x-tab-default-bottom{-moz-border-radius-topleft:0;-webkit-border-top-left-radius:0;border-top-left-radius:0;-moz-border-radius-topright:0;-webkit-border-top-right-radius:0;border-top-right-radius:0;-moz-border-radius-bottomright:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-bottomleft:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;padding:0 3px 3px 3px;border-width:0 1px 1px 1px;border-style:solid;background-image:none;background-color:#e9e9e9;background-image:-webkit-gradient(linear,50% 100%,50% 0,color-stop(0%,#dcdcdc),color-stop(25%,#e3e3e3),color-stop(45%,#e9e9e9));background-image:-webkit-linear-gradient(bottom,#dcdcdc,#e3e3e3 25%,#e9e9e9 45%);background-image:-moz-linear-gradient(bottom,#dcdcdc,#e3e3e3 25%,#e9e9e9 45%);background-image:-o-linear-gradient(bottom,#dcdcdc,#e3e3e3 25%,#e9e9e9 45%);background-image:linear-gradient(bottom,#dcdcdc,#e3e3e3 25%,#e9e9e9 45%)}.x-nlg .x-tab-default-bottom-mc{background-image:url('../../extjs/resources/themes/images/default/tab/tab-default-bottom-bg.gif');background-color:#e9e9e9}.x-nbr .x-tab-default-bottom{padding:0!important;border-width:0!important;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0;background-color:transparent;background-position:1100000px 1000404px}.x-nbr .x-tab-default-bottom-tl,.x-nbr .x-tab-default-bottom-bl,.x-nbr .x-tab-default-bottom-tr,.x-nbr .x-tab-default-bottom-br,.x-nbr .x-tab-default-bottom-tc,.x-nbr .x-tab-default-bottom-bc,.x-nbr .x-tab-default-bottom-ml,.x-nbr .x-tab-default-bottom-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/tab/tab-default-bottom-corners.gif')}.x-nbr .x-tab-default-bottom-ml,.x-nbr .x-tab-default-bottom-mr{zoom:1;background-image:url('../../extjs/resources/themes/images/default/tab/tab-default-bottom-sides.gif');background-position:0 0}.x-nbr .x-tab-default-bottom-mc{padding:0}.x-strict .x-ie7 .x-tab-default-bottom-tl,.x-strict .x-ie7 .x-tab-default-bottom-bl{position:relative;right:0}.x-tab{z-index:1;margin:0 0 0 2px;display:inline-block;zoom:1;*display:inline;white-space:nowrap;height:20px;border-color:#b4b4b4;cursor:pointer;cursor:hand}.x-tab button{cursor:pointer;cursor:hand}.x-tab em{display:block;padding:0 6px;line-height:1px}.x-tab button{background:0;border:0;padding:0;margin:0;-webkit-appearance:none;font-size:11px;font-weight:bold;font-family:Helvetica Neue,Arial,sans-serif;color:#6e6e6e;outline:0 none;overflow-x:visible}.x-tab button::-moz-focus-inner{border:0;padding:0}.x-tab button .x-tab-inner{background-color:transparent;background-repeat:no-repeat;background-position:0 -2px;display:block;text-align:center;white-space:nowrap;text-overflow:ellipsis;-o-text-overflow:ellipsis;overflow:hidden}.x-tab img{display:none}.x-border-box .x-tab-default-top{height:21px}.x-border-box .x-tab-default-bottom{height:21px}* html .x-ie .x-tab button{width:1px}.x-strict .x-ie6 .x-tab .x-frame-mc,.x-strict .x-ie7 .x-tab .x-frame-mc{height:100%}.x-ie .x-tab-active button:active{position:relative;top:-1px;left:-1px}.x-tab-default-top{-webkit-box-shadow:white 0 1px 0 0 inset,white -1px 0 0 0 inset,white 1px 0 0 0 inset;-moz-box-shadow:white 0 1px 0 0 inset,white -1px 0 0 0 inset,white 1px 0 0 0 inset;box-shadow:white 0 1px 0 0 inset,white -1px 0 0 0 inset,white 1px 0 0 0 inset;border-bottom:1px solid #bfbfbf!important}.x-tab-default-top em{padding-bottom:3px}.x-tab-default-top button,.x-tab-default-top .x-tab-inner{height:13px;line-height:13px}.x-safari4 .x-tab-default-top .x-tab-inner,.x-safari5_0 .x-tab-default-top .x-tab-inner{line-height:11px}.x-nbr .x-tab-default-top{border-bottom-width:1px!important}.x-tab-default-top-active{border-bottom-color:#e9e9e9!important}.x-tab-default-bottom{-webkit-box-shadow:white 0 -1px 0 0 inset,white -1px 0 0 0 inset,white 1px 0 0 0 inset;-moz-box-shadow:white 0 -1px 0 0 inset,white -1px 0 0 0 inset,white 1px 0 0 0 inset;box-shadow:white 0 -1px 0 0 inset,white -1px 0 0 0 inset,white 1px 0 0 0 inset;border-top:1px solid #bfbfbf!important;-webkit-box-shadow:white 0 -1px 0 0 inset,white -1px 0 0 0 inset,white 1px 0 0 0 inset;-moz-box-shadow:white 0 -1px 0 0 inset,white -1px 0 0 0 inset,white 1px 0 0 0 inset;box-shadow:white 0 -1px 0 0 inset,white -1px 0 0 0 inset,white 1px 0 0 0 inset}.x-tab-default-bottom em{padding-top:3px}.x-tab-default-bottom button,.x-tab-default-bottom .x-tab-inner{height:13px;line-height:13px}.x-nbr .x-tab-default-bottom{border-top-width:1px!important}.x-tab-default-bottom-active{border-top-color:#e9e9e9!important}.x-tab-default-disabled{cursor:default;border-color:#e9e6e6;background-image:none;background-color:white;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#fff),color-stop(100%,#fff));background-image:-webkit-linear-gradient(top,#fff,#fff);background-image:-moz-linear-gradient(top,#fff,#fff);background-image:-o-linear-gradient(top,#fff,#fff);background-image:linear-gradient(top,#fff,#fff)}.x-tab-default-disabled button{color:#c3b3b3!important}.x-tab-icon-text-left .x-tab-inner{padding-left:20px}.x-tab button{position:relative}.x-tab-icon{position:absolute;background-repeat:no-repeat;background-position:0 -1px;top:0;left:0;right:auto;bottom:0;width:18px;height:18px}.x-strict .x-ie8 .x-tab button,.x-strict .x-ie9 .x-tab button{overflow-y:visible}.x-tab-default-disabled .x-tab-icon{filter:alpha(opacity=50);opacity:.5}.x-tab-noicon .x-tab-icon{display:none}.x-tab-top-over{background-image:none;background-color:#f1eded;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#e6e5e5),color-stop(25%,#ede9e9),color-stop(45%,#f1eded));background-image:-webkit-linear-gradient(top,#e6e5e5,#ede9e9 25%,#f1eded 45%);background-image:-moz-linear-gradient(top,#e6e5e5,#ede9e9 25%,#f1eded 45%);background-image:-o-linear-gradient(top,#e6e5e5,#ede9e9 25%,#f1eded 45%);background-image:linear-gradient(top,#e6e5e5,#ede9e9 25%,#f1eded 45%)}.x-tab-bottom-over{background-image:none;background-color:#f1eded;background-image:-webkit-gradient(linear,50% 100%,50% 0,color-stop(0%,#e6e5e5),color-stop(25%,#ede9e9),color-stop(45%,#f1eded));background-image:-webkit-linear-gradient(bottom,#e6e5e5,#ede9e9 25%,#f1eded 45%);background-image:-moz-linear-gradient(bottom,#e6e5e5,#ede9e9 25%,#f1eded 45%);background-image:-o-linear-gradient(bottom,#e6e5e5,#ede9e9 25%,#f1eded 45%);background-image:linear-gradient(bottom,#e6e5e5,#ede9e9 25%,#f1eded 45%)}.x-tab-active{z-index:3}.x-tab-active button{color:#633434}.x-tab-top-active{background-image:none;background-color:#e9e9e9;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#fbfbfb),color-stop(25%,#f5f5f5),color-stop(45%,#e9e9e9));background-image:-webkit-linear-gradient(top,#fbfbfb,#f5f5f5 25%,#e9e9e9 45%);background-image:-moz-linear-gradient(top,#fbfbfb,#f5f5f5 25%,#e9e9e9 45%);background-image:-o-linear-gradient(top,#fbfbfb,#f5f5f5 25%,#e9e9e9 45%);background-image:linear-gradient(top,#fbfbfb,#f5f5f5 25%,#e9e9e9 45%)}.x-tab-bottom-active{background-image:none;background-color:#e9e9e9;background-image:-webkit-gradient(linear,50% 100%,50% 0,color-stop(0%,#fbfbfb),color-stop(25%,#f5f5f5),color-stop(45%,#e9e9e9));background-image:-webkit-linear-gradient(bottom,#fbfbfb,#f5f5f5 25%,#e9e9e9 45%);background-image:-moz-linear-gradient(bottom,#fbfbfb,#f5f5f5 25%,#e9e9e9 45%);background-image:-o-linear-gradient(bottom,#fbfbfb,#f5f5f5 25%,#e9e9e9 45%);background-image:linear-gradient(bottom,#fbfbfb,#f5f5f5 25%,#e9e9e9 45%)}.x-tab-disabled{border-color:#e9e6e6}.x-tab-disabled button{color:#c3b3b3}.x-tab-top-disabled{background-image:none;background:transparent;background-image:none;background-color:white;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#fff),color-stop(100%,#fff));background-image:-webkit-linear-gradient(top,#fff,#fff);background-image:-moz-linear-gradient(top,#fff,#fff);background-image:-o-linear-gradient(top,#fff,#fff);background-image:linear-gradient(top,#fff,#fff)}.x-tab-bottom-disabled{background-image:none;background:transparent;background-image:none;background-color:white;background-image:-webkit-gradient(linear,50% 100%,50% 0,color-stop(0%,#fff),color-stop(100%,#fff));background-image:-webkit-linear-gradient(bottom,#fff,#fff);background-image:-moz-linear-gradient(bottom,#fff,#fff);background-image:-o-linear-gradient(bottom,#fff,#fff);background-image:linear-gradient(bottom,#fff,#fff)}.x-nlg .x-tab-top{background-image:url('../../extjs/resources/themes/images/default/tab/tab-default-top-bg.gif')}.x-nlg .x-tab-bottom{background-image:url('../../extjs/resources/themes/images/default/tab/tab-default-bottom-bg.gif')}.x-nlg .x-tab-top-over{background-image:url('../../extjs/resources/themes/images/default/tab/tab-default-top-over-bg.gif')}.x-nlg .x-tab-bottom-over{background-image:url('../../extjs/resources/themes/images/default/tab/tab-default-bottom-over-bg.gif')}.x-nlg .x-tab-top-active{background-image:url('../../extjs/resources/themes/images/default/tab/tab-default-top-active-bg.gif')}.x-nlg .x-tab-bottom-active{background-image:url('../../extjs/resources/themes/images/default/tab/tab-default-bottom-active-bg.gif')}.x-nlg .x-tab-top-disabled{background-image:url('../../extjs/resources/themes/images/default/tab/tab-default-top-disabled-bg.gif')!important}.x-nlg .x-tab-bottom-disabled{background-image:url('../../extjs/resources/themes/images/default/tab/tab-default-bottom-disabled-bg.gif')!important}.x-tab-closable em{padding-right:14px}.x-tab-close-btn{position:absolute;top:2px;right:2px;width:11px;height:11px;font-size:0;line-height:0;text-indent:-999px;background:no-repeat;background-image:url('../../extjs/resources/themes/images/default/tab/tab-default-close.gif');filter:alpha(opacity=60);opacity:.6}.x-nbr .x-tab-close-btn{top:0;right:0}a.x-tab-close-btn:hover{filter:alpha(opacity=100);opacity:1}.x-tab-default-disabled a.x-tab-close-btn{filter:alpha(opacity=30);opacity:.3}.x-nbr .x-tab-top-over .x-frame-tl,.x-nbr .x-tab-top-over .x-frame-bl,.x-nbr .x-tab-top-over .x-frame-tr,.x-nbr .x-tab-top-over .x-frame-br,.x-nbr .x-tab-top-over .x-frame-tc,.x-nbr .x-tab-top-over .x-frame-bc{background-image:url('../../extjs/resources/themes/images/default/tab/tab-default-top-over-corners.gif')}.x-nbr .x-tab-top-over .x-frame-ml,.x-nbr .x-tab-top-over .x-frame-mr{background-image:url('../../extjs/resources/themes/images/default/tab/tab-default-top-over-sides.gif')}.x-nbr .x-tab-top-over .x-frame-mc{background-color:#f1eded;background-repeat:repeat-x;background-image:url('../../extjs/resources/themes/images/default/tab/tab-default-top-over-bg.gif')}.x-nbr .x-tab-bottom-over .x-frame-tl,.x-nbr .x-tab-bottom-over .x-frame-bl,.x-nbr .x-tab-bottom-over .x-frame-tr,.x-nbr .x-tab-bottom-over .x-frame-br,.x-nbr .x-tab-bottom-over .x-frame-tc,.x-nbr .x-tab-bottom-over .x-frame-bc{background-image:url('../../extjs/resources/themes/images/default/tab/tab-default-bottom-over-corners.gif')}.x-nbr .x-tab-bottom-over .x-frame-ml,.x-nbr .x-tab-bottom-over .x-frame-mr{background-image:url('../../extjs/resources/themes/images/default/tab/tab-default-bottom-over-sides.gif')}.x-nbr .x-tab-bottom-over .x-frame-mc{background-color:#f1eded;background-repeat:repeat-x;background-image:url('../../extjs/resources/themes/images/default/tab/tab-default-bottom-over-bg.gif')}.x-nbr .x-tab-top-active .x-frame-tl,.x-nbr .x-tab-top-active .x-frame-bl,.x-nbr .x-tab-top-active .x-frame-tr,.x-nbr .x-tab-top-active .x-frame-br,.x-nbr .x-tab-top-active .x-frame-tc,.x-nbr .x-tab-top-active .x-frame-bc{background-image:url('../../extjs/resources/themes/images/default/tab/tab-default-top-active-corners.gif')}.x-nbr .x-tab-top-active .x-frame-ml,.x-nbr .x-tab-top-active .x-frame-mr{background-image:url('../../extjs/resources/themes/images/default/tab/tab-default-top-active-sides.gif')}.x-nbr .x-tab-top-active .x-frame-mc{background-color:#e9e9e9;background-repeat:repeat-x;background-image:url('../../extjs/resources/themes/images/default/tab/tab-default-top-active-bg.gif')}.x-nbr .x-tab-bottom-active .x-frame-tl,.x-nbr .x-tab-bottom-active .x-frame-bl,.x-nbr .x-tab-bottom-active .x-frame-tr,.x-nbr .x-tab-bottom-active .x-frame-br,.x-nbr .x-tab-bottom-active .x-frame-tc,.x-nbr .x-tab-bottom-active .x-frame-bc{background-image:url('../../extjs/resources/themes/images/default/tab/tab-default-bottom-active-corners.gif')}.x-nbr .x-tab-bottom-active .x-frame-ml,.x-nbr .x-tab-bottom-active .x-frame-mr{background-image:url('../../extjs/resources/themes/images/default/tab/tab-default-bottom-active-sides.gif')}.x-nbr .x-tab-bottom-active .x-frame-mc{background-color:#e9e9e9;background-repeat:repeat-x;background-image:url('../../extjs/resources/themes/images/default/tab/tab-default-bottom-active-bg.gif')}.x-nbr .x-tab-top-disabled .x-frame-tl,.x-nbr .x-tab-top-disabled .x-frame-bl,.x-nbr .x-tab-top-disabled .x-frame-tr,.x-nbr .x-tab-top-disabled .x-frame-br,.x-nbr .x-tab-top-disabled .x-frame-tc,.x-nbr .x-tab-top-disabled .x-frame-bc{background-image:url('../../extjs/resources/themes/images/default/tab/tab-default-top-disabled-corners.gif')}.x-nbr .x-tab-top-disabled .x-frame-ml,.x-nbr .x-tab-top-disabled .x-frame-mr{background-image:url('../../extjs/resources/themes/images/default/tab/tab-default-top-disabled-sides.gif')}.x-nbr .x-tab-top-disabled .x-frame-mc{background-repeat:repeat-x;background-image:url('../../extjs/resources/themes/images/default/tab/tab-default-top-disabled-bg.gif')}.x-nbr .x-tab-bottom-disabled .x-frame-tl,.x-nbr .x-tab-bottom-disabled .x-frame-bl,.x-nbr .x-tab-bottom-disabled .x-frame-tr,.x-nbr .x-tab-bottom-disabled .x-frame-br,.x-nbr .x-tab-bottom-disabled .x-frame-tc,.x-nbr .x-tab-bottom-disabled .x-frame-bc{background-image:url('../../extjs/resources/themes/images/default/tab/tab-default-bottom-disabled-corners.gif')}.x-nbr .x-tab-bottom-disabled .x-frame-ml,.x-nbr .x-tab-bottom-disabled .x-frame-mr{background-image:url('../../extjs/resources/themes/images/default/tab/tab-default-bottom-disabled-sides.gif')}.x-nbr .x-tab-bottom-disabled .x-frame-mc{background-repeat:repeat-x;background-image:url('../../extjs/resources/themes/images/default/tab/tab-default-bottom-disabled-bg.gif')}.x-autowidth-table table.x-grid-table{table-layout:auto;width:auto!important}.x-tree-no-lines .x-tree-elbow{background-color:transparent}.x-tree-no-lines .x-tree-elbow-end{background-color:transparent}.x-tree-no-lines .x-tree-elbow-line{background-color:transparent}.x-tree-arrows .x-tree-elbow-plus{background:transparent no-repeat 0 0}.x-tree-arrows .x-tree-elbow-end-plus{background:transparent no-repeat 0 0}.x-tree-arrows .x-tree-elbow-end-minus{background:transparent no-repeat -16px 0}.x-tree-arrows .x-tree-elbow-minus{background:transparent no-repeat -16px 0}.x-tree-arrows .x-tree-elbow{background-color:transparent!important}.x-tree-arrows .x-tree-elbow-end{background-color:transparent!important}.x-tree-arrows .x-tree-elbow-line{background-color:transparent!important}.x-tree-arrows .x-tree-expander-over .x-tree-elbow-plus,.x-tree-arrows .x-tree-expander-over .x-tree-elbow-end-plus{background-position:-32px 0}.x-tree-arrows .x-tree-expander-over .x-tree-elbow-minus,.x-tree-arrows .x-tree-expander-over .x-tree-elbow-end-minus{background-position:-48px 0}.x-tree-arrows .x-grid-tree-node-expanded .x-tree-elbow-plus,.x-tree-arrows .x-grid-tree-node-expanded .x-tree-elbow-end-plus{background-position:-16px 0}.x-tree-arrows .x-grid-tree-node-expanded .x-tree-expander-over .x-tree-elbow-plus,.x-tree-arrows .x-grid-tree-node-expanded .x-tree-expander-over .x-tree-elbow-end-plus{background-position:-48px 0}.x-tree-elbow-plus,.x-tree-elbow-minus,.x-tree-elbow-end-plus,.x-tree-elbow-end-minus{cursor:pointer}.x-tree-lines .x-tree-elbow{background-image:url('../../extjs/resources/themes/images/default/tree/elbow.gif')}.x-tree-lines .x-tree-elbow-end{background-image:url('../../extjs/resources/themes/images/default/tree/elbow-end.gif')}.x-tree-lines .x-tree-elbow-plus{background-image:url('../../extjs/resources/themes/images/default/tree/elbow-plus.gif')}.x-tree-lines .x-tree-elbow-end-plus{background-image:url('../../extjs/resources/themes/images/default/tree/elbow-end-plus.gif')}.x-tree-lines .x-grid-tree-node-expanded .x-tree-elbow-plus{background-image:url('../../extjs/resources/themes/images/default/tree/elbow-minus.gif')}.x-tree-lines .x-grid-tree-node-expanded .x-tree-elbow-end-plus{background-image:url('../../extjs/resources/themes/images/default/tree/elbow-end-minus.gif')}.x-tree-lines .x-tree-elbow-line{background-image:url('../../extjs/resources/themes/images/default/tree/elbow-line.gif')}.x-tree-no-lines .x-tree-elbow-plus,.x-tree-no-lines .x-tree-elbow-end-plus{background-image:url('../../extjs/resources/themes/images/default/tree/elbow-plus-nl.gif')}.x-tree-no-lines .x-grid-tree-node-expanded .x-tree-elbow-plus,.x-tree-no-lines .x-grid-tree-node-expanded .x-tree-elbow-end-plus{background-image:url('../../extjs/resources/themes/images/default/tree/elbow-end-minus-nl.gif')}.x-tree-arrows .x-tree-elbow-plus,.x-tree-arrows .x-tree-elbow-minus,.x-tree-arrows .x-tree-elbow-end-plus,.x-tree-arrows .x-tree-elbow-end-minus{background-image:url('../../extjs/resources/themes/images/default/tree/arrows.gif')}.x-tree-icon{margin:2px 3px 0 0}.x-grid-with-row-lines .x-tree-icon{margin-top:1px}.x-tree-elbow,.x-tree-elbow-end,.x-tree-elbow-plus,.x-tree-elbow-end-plus,.x-tree-elbow-empty,.x-tree-elbow-line{height:20px;width:16px}.x-grid-with-row-lines .x-tree-elbow,.x-grid-with-row-lines .x-tree-elbow-end,.x-grid-with-row-lines .x-tree-elbow-plus,.x-grid-with-row-lines .x-tree-elbow-end-plus,.x-grid-with-row-lines .x-tree-elbow-empty,.x-grid-with-row-lines .x-tree-elbow-line{height:19px;background-position:0 -1px}.x-tree-icon-leaf{width:16px;background-image:url('../../extjs/resources/themes/images/default/tree/leaf.gif')}.x-tree-icon-parent{width:16px;background-image:url('../../extjs/resources/themes/images/default/tree/folder.gif')}.x-grid-tree-node-expanded .x-tree-icon-parent{background-image:url('../../extjs/resources/themes/images/default/tree/folder-open.gif')}.x-grid-rowbody{padding:0}.x-grid-cell-treecolumn .x-grid-cell-inner{padding:0;line-height:19px}.x-grid-with-row-lines .x-grid-cell-treecolumn .x-grid-cell-inner{line-height:17px}.x-tree-panel .x-grid-cell-inner{cursor:pointer}.x-tree-panel .x-grid-cell-inner img{display:inline-block;vertical-align:top}.x-ie .x-tree-panel .x-tree-elbow,.x-ie .x-tree-panel .x-tree-elbow-end,.x-ie .x-tree-panel .x-tree-elbow-plus,.x-ie .x-tree-panel .x-tree-elbow-end-plus,.x-ie .x-tree-panel .x-tree-elbow-empty,.x-ie .x-tree-panel .x-tree-elbow-line{vertical-align:-6px}.x-grid-editor-on-text-node .x-form-text{padding-left:1px;padding-right:1px}.x-ie .x-grid-editor-on-text-node .x-form-text{padding-left:2px;padding-right:2px}.x-opera .x-grid-editor-on-text-node .x-form-text{padding-left:2px;padding-right:2px}.x-tree-checkbox{margin:4px 3px 0 0;display:inline-block;vertical-align:top;width:13px;height:13px;background:no-repeat;background-image:url('../../extjs/resources/themes/images/default/form/checkbox.gif');overflow:hidden;padding:0;border:0}.x-tree-checkbox::-moz-focus-inner{padding:0;border:0}.x-grid-with-row-lines .x-tree-checkbox{margin-top:3px}.x-tree-checkbox-checked{background-position:0 -13px}.x-tree-drop-ok-append .x-dd-drop-icon{background-image:url('../../extjs/resources/themes/images/default/tree/drop-append.gif')}.x-tree-drop-ok-above .x-dd-drop-icon{background-image:url('../../extjs/resources/themes/images/default/tree/drop-above.gif')}.x-tree-drop-ok-below .x-dd-drop-icon{background-image:url('../../extjs/resources/themes/images/default/tree/drop-below.gif')}.x-tree-drop-ok-between .x-dd-drop-icon{background-image:url('../../extjs/resources/themes/images/default/tree/drop-between.gif')}.x-grid-tree-loading .x-tree-icon{background-image:url('../../extjs/resources/themes/images/default/tree/loading.gif')}.x-tree-ddindicator{height:1px;border-width:1px 0 0;border-style:dotted;border-color:green}.x-grid-tree-loading span{font-style:italic;color:#444}.x-tree-animator-wrap{overflow:hidden}.x-surface{display:-moz-inline-stack;display:inline-block;vertical-align:middle;*vertical-align:auto;zoom:1;*display:inline;overflow:hidden}.rvml{behavior:url(#default#VML)}.x-surface tspan{user-select:none;-o-user-select:none;-ms-user-select:none;-moz-user-select:-moz-none;-webkit-user-select:none;cursor:default}.x-vml-sprite{position:absolute;left:0;top:0;width:1px;height:1px}.x-vml-group{position:absolute;left:0;top:0;width:1000px;height:1000px}.x-vml-measure-span{position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;display:inline}.x-vml-base{position:relative;top:0;left:0;overflow:hidden;display:inline-block}.x-vml-base{position:relative;top:0;left:0;overflow:hidden;display:inline-block}svg,vml{overflow:hidden}.x-viewport,.x-viewport body{margin:0;padding:0;border:0 none;overflow:hidden;height:100%;position:static}.x-dd-drag-proxy{z-index:1000000!important}.x-dd-drag-repair .x-dd-drag-ghost{filter:alpha(opacity=60);opacity:.6}.x-dd-drag-repair .x-dd-drop-icon{display:none}.x-dd-drag-ghost{filter:alpha(opacity=85);opacity:.85;padding:5px;padding-left:20px;white-space:nowrap;color:#000;font:normal 11px Helvetica Neue,Arial,sans-serif;border:1px solid;border-color:#ddd #bbb #bbb #ddd;background-color:#fff}.x-dd-drop-icon{position:absolute;top:3px;left:3px;display:block;width:16px;height:16px;background-color:transparent;background-position:center;background-repeat:no-repeat;z-index:1}.x-view-selector{position:absolute;left:0;top:0;width:0;background-color:#c3daf9;border:1px dotted #39b;filter:alpha(opacity=50);opacity:.5;zoom:1}.x-dd-drop-nodrop .x-dd-drop-icon{background-image:url('../../extjs/resources/themes/images/default/dd/drop-no.gif')}.x-dd-drop-ok .x-dd-drop-icon{background-image:url('../../extjs/resources/themes/images/default/dd/drop-yes.gif')}.x-dd-drop-ok-add .x-dd-drop-icon{background-image:url('../../extjs/resources/themes/images/default/dd/drop-add.gif')}.x-resizable-handle{position:absolute;z-index:100;font-size:1px;line-height:6px;overflow:hidden;zoom:1;filter:alpha(opacity=0);opacity:0;background-color:#fff}.x-collapsed .x-resizable-handle{display:none}.x-resizable-handle-east{width:6px;height:100%;right:0;top:0}.x-resizable-over .x-resizable-handle-east{cursor:e-resize}.x-resizable-handle-south{width:100%;height:6px;left:0;bottom:0}.x-resizable-over .x-resizable-handle-south{cursor:s-resize}.x-resizable-handle-west{width:6px;height:100%;left:0;top:0}.x-resizable-over .x-resizable-handle-west{cursor:w-resize}.x-resizable-handle-north{width:100%;height:6px;left:0;top:0}.x-resizable-over .x-resizable-handle-north{cursor:n-resize}.x-resizable-handle-southeast{width:6px;height:6px;right:0;bottom:0;z-index:101}.x-resizable-over .x-resizable-handle-southeast{cursor:se-resize}.x-resizable-handle-northwest{width:6px;height:6px;left:0;top:0;z-index:101}.x-resizable-over .x-resizable-handle-northwest{cursor:nw-resize}.x-resizable-handle-northeast{width:6px;height:6px;right:0;top:0;z-index:101}.x-resizable-over .x-resizable-handle-northeast{cursor:ne-resize}.x-resizable-handle-southwest{width:6px;height:6px;left:0;bottom:0;z-index:101}.x-resizable-over .x-resizable-handle-southwest{cursor:sw-resize}.x-ie .x-resizable-handle-east{margin-right:-1px}.x-ie .x-resizable-handle-south{margin-bottom:-1px}.x-resizable-over .x-resizable-handle,.x-resizable-pinned .x-resizable-handle{filter:alpha(opacity=100);opacity:1}.x-window .x-window-handle{filter:alpha(opacity=0);opacity:0}.x-window-collapsed .x-window-handle{display:none}.x-resizable-proxy{border:1px dashed #3b5a82;position:absolute;left:0;top:0;overflow:hidden;z-index:50000}.x-resizable-overlay{position:absolute;left:0;top:0;width:100%;height:100%;display:none;z-index:200000;background-color:#fff;filter:alpha(opacity=0);opacity:0}.x-resizable-over .x-resizable-handle-east,.x-resizable-over .x-resizable-handle-west,.x-resizable-pinned .x-resizable-handle-east,.x-resizable-pinned .x-resizable-handle-west{background-position:left;background-image:url('../../extjs/resources/themes/images/default/sizer/e-handle.gif')}.x-resizable-over .x-resizable-handle-south,.x-resizable-over .x-resizable-handle-north,.x-resizable-pinned .x-resizable-handle-south,.x-resizable-pinned .x-resizable-handle-north{background-position:top;background-image:url('../../extjs/resources/themes/images/default/sizer/s-handle.gif')}.x-resizable-over .x-resizable-handle-southeast,.x-resizable-pinned .x-resizable-handle-southeast{background-position:top left;background-image:url('../../extjs/resources/themes/images/default/sizer/se-handle.gif')}.x-resizable-over .x-resizable-handle-northwest,.x-resizable-pinned .x-resizable-handle-northwest{background-position:bottom right;background-image:url('../../extjs/resources/themes/images/default/sizer/nw-handle.gif')}.x-resizable-over .x-resizable-handle-northeast,.x-resizable-pinned .x-resizable-handle-northeast{background-position:bottom left;background-image:url('../../extjs/resources/themes/images/default/sizer/ne-handle.gif')}.x-resizable-over .x-resizable-handle-southwest,.x-resizable-pinned .x-resizable-handle-southwest{background-position:top right;background-image:url('../../extjs/resources/themes/images/default/sizer/sw-handle.gif')}.x-splitter .x-collapse-el{position:absolute;cursor:pointer;background-color:transparent;background-repeat:no-repeat!important}.x-layout-split-left,.x-layout-split-right{top:50%;margin-top:-17px;width:5px;height:35px}.x-layout-split-top,.x-layout-split-bottom{left:50%;width:35px;height:5px;margin-left:-17px}.x-layout-split-left{background:no-repeat top right;background-image:url('../../extjs/resources/themes/images/default/util/splitter/mini-left.gif')}.x-layout-split-right{background:no-repeat top left;background-image:url('../../extjs/resources/themes/images/default/util/splitter/mini-right.gif')}.x-layout-split-top{background:no-repeat top left;background-image:url('../../extjs/resources/themes/images/default/util/splitter/mini-top.gif')}.x-layout-split-bottom{background:no-repeat top left;background-image:url('../../extjs/resources/themes/images/default/util/splitter/mini-bottom.gif')}.x-splitter-collapsed .x-layout-split-left{background:no-repeat top left;background-image:url('../../extjs/resources/themes/images/default/util/splitter/mini-right.gif')}.x-splitter-collapsed .x-layout-split-right{background:no-repeat top right;background-image:url('../../extjs/resources/themes/images/default/util/splitter/mini-left.gif')}.x-splitter-collapsed .x-layout-split-top{background:no-repeat top left;background-image:url('../../extjs/resources/themes/images/default/util/splitter/mini-bottom.gif')}.x-splitter-collapsed .x-layout-split-bottom{background:no-repeat top left;background-image:url('../../extjs/resources/themes/images/default/util/splitter/mini-top.gif')}.x-splitter-horizontal{cursor:e-resize;cursor:row-resize;font-size:1px}.x-splitter-vertical{cursor:e-resize;cursor:col-resize;font-size:1px}.x-splitter-collapsed,.x-splitter-horizontal-noresize,.x-splitter-vertical-noresize{cursor:default}.x-splitter-active{z-index:4;font-size:1px;background-color:#b4b4b4;filter:alpha(opacity=80);opacity:.8}.x-splitter-active .x-collapse-el{filter:alpha(opacity=30);opacity:.3}.x-proxy-el{position:absolute;background:#b4b4b4;filter:alpha(opacity=80);opacity:.8}.x-docked{position:absolute!important;z-index:1}.x-docked-top{border-bottom-width:0!important}.x-docked-bottom{border-top-width:0!important}.x-docked-left{border-right-width:0!important}.x-docked-right{border-left-width:0!important}.x-docked-noborder-top{border-top-width:0!important}.x-docked-noborder-right{border-right-width:0!important}.x-docked-noborder-bottom{border-bottom-width:0!important}.x-docked-noborder-left{border-left-width:0!important}.x-box-inner{overflow:hidden;zoom:1;position:relative;left:0;top:0}.x-box-item{position:absolute!important;left:0;top:0}.x-rtl .x-box-item{right:0;left:auto}.x-box-layout-ct,.x-border-layout-ct{overflow:hidden;zoom:1}.x-border-layout-ct{background-color:#fdfdfd;position:relative}.x-overflow-hidden{overflow:hidden!important}.x-inline-children>*{display:inline-block!important}.x-abs-layout-ct{position:relative}.x-abs-layout-item{position:absolute!important}.x-fit-item{position:relative}.x-border-region-slide-in{z-index:5}.x-region-collapsed-placeholder{z-index:4}.x-accordion-hd .x-panel-header-text{color:black;font-weight:normal}.x-accordion-hd{background:#fbfafa!important;-webkit-box-shadow:inset 0 0 0 0 #fbfafa;-moz-box-shadow:inset 0 0 0 0 #fbfafa;box-shadow:inset 0 0 0 0 #fbfafa}.x-accordion-hd .x-tool-collapse-top,.x-accordion-hd .x-tool-collapse-right,.x-accordion-hd .x-tool-collapse-bottom,.x-accordion-hd .x-tool-collapse-left{background-position:0 -255px}.x-accordion-hd .x-tool-expand-top,.x-accordion-hd .x-tool-expand-right,.x-accordion-hd .x-tool-expand-bottom,.x-accordion-hd .x-tool-expand-left{background-position:0 -240px}.x-accordion-hd .x-tool-over .x-tool-collapse-top,.x-accordion-hd .x-tool-over .x-tool-collapse-right,.x-accordion-hd .x-tool-over .x-tool-collapse-bottom,.x-accordion-hd .x-tool-over .x-tool-collapse-left{background-position:-15px -255px}.x-accordion-hd .x-tool-over .x-tool-expand-top,.x-accordion-hd .x-tool-over .x-tool-expand-right,.x-accordion-hd .x-tool-over .x-tool-expand-bottom,.x-accordion-hd .x-tool-over .x-tool-expand-left{background-position:-15px -240px}.x-accordion-hd{border-width:1px 0 1px 0!important;padding:4px 5px 5px 5px;border-top-color:white!important}.x-accordion-body{border-width:0!important}.x-accordion-hd-sibling-expanded{border-top-color:#bfbfbf!important;-webkit-box-shadow:inset 0 1px 0 0 white;-moz-box-shadow:inset 0 1px 0 0 white;box-shadow:inset 0 1px 0 0 white}.x-accordion-hd-last-collapsed{border-bottom-color:#fbfafa!important}.x-frame-tl,.x-frame-tr,.x-frame-tc,.x-frame-bl,.x-frame-br,.x-frame-bc{overflow:hidden;background-repeat:no-repeat}.x-frame-tc,.x-frame-bc{background-repeat:repeat-x}.x-frame-mc{position:relative;background-repeat:repeat-x;overflow:hidden}.x-box-scroller-left{float:left;height:100%;z-index:5}.x-box-scroller-left .x-toolbar-scroll-left,.x-box-scroller-left .x-tabbar-scroll-left{width:18px;position:relative;cursor:pointer;height:20px;background:transparent no-repeat -18px 0;background-image:url('../../extjs/resources/themes/images/default/tab-bar/scroll-left.gif')}.x-box-scroller-left .x-toolbar-scroll-left-hover{background-position:0 0}.x-box-scroller-left .x-toolbar-scroll-left-disabled,.x-box-scroller-left .x-tabbar-scroll-left-disabled{background-position:-18px 0;filter:alpha(opacity=50);opacity:.5;cursor:default}.x-box-scroller-left .x-toolbar-scroll-left{background-image:url('../../extjs/resources/themes/images/default/toolbar/scroll-left.gif');background-position:-14px 0}.x-box-scroller-left .x-toolbar-scroll-left-hover{background-position:0 0}.x-box-scroller-left .x-toolbar-scroll-left-disabled{background-position:-14px 0}.x-box-scroller-left .x-toolbar-scroll-left{width:14px;height:22px;border-bottom:1px solid #8db2e3}.x-horizontal-box-overflow-body{float:left}.x-box-scroller-right{float:right;height:100%;z-index:5}.x-box-scroller-right .x-toolbar-scroll-right,.x-box-scroller-right .x-tabbar-scroll-right{width:18px;position:relative;cursor:pointer;height:20px;background:transparent no-repeat 0 0;background-image:url('../../extjs/resources/themes/images/default/tab-bar/scroll-right.gif')}.x-box-scroller-right .x-toolbar-scroll-right-hover{background-position:-18px 0}.x-box-scroller-right .x-toolbar-scroll-right-disabled,.x-box-scroller-right .x-tabbar-scroll-right-disabled{background-position:0 0;filter:alpha(opacity=50);opacity:.5;cursor:default}.x-box-scroller-right .x-toolbar-scroll-right{background-image:url('../../extjs/resources/themes/images/default/toolbar/scroll-right.gif')}.x-box-scroller-right .x-toolbar-scroll-right-hover{background-position:-14px 0}.x-box-scroller-right .x-toolbar-scroll-right-disabled{background-position:0 0}.x-box-scroller-right .x-toolbar-scroll-right{width:14px;height:22px;border-bottom:1px solid #8db2e3}.x-box-scroller-top .x-box-scroller{line-height:0;font-size:0}.x-box-scroller-top .x-menu-scroll-top{background:transparent no-repeat center center;background-image:url('../../extjs/resources/themes/images/default/layout/mini-top.gif');height:8px;cursor:pointer}.x-box-scroller-bottom .x-box-scroller{line-height:0;font-size:0}.x-box-scroller-bottom .x-menu-scroll-bottom{background:transparent no-repeat center center;background-image:url('../../extjs/resources/themes/images/default/layout/mini-bottom.gif');height:8px;cursor:pointer}.x-box-menu-right{float:right;padding-right:2px}.x-column{float:left}.x-ie6 .x-column{display:inline}.x-quirks .x-ie .x-form-layout-table,.x-quirks .x-ie .x-form-layout-table tbody tr.x-form-item{position:relative}.x-tool{height:15px}.x-tool img{overflow:hidden;width:15px;height:15px;cursor:pointer;background-color:transparent;background-repeat:no-repeat;background-image:url('../../extjs/resources/themes/images/default/tools/tool-sprites.gif');margin:0}.x-panel-header-horizontal .x-tool,.x-window-header-horizontal .x-tool{margin-left:2px}.x-panel-header-vertical .x-tool,.x-window-header-vertical .x-tool{margin-top:2px}.x-panel-header-vertical .x-tool-top,.x-window-header-vertical .x-tool-top{margin:0 0 4px}.x-tool-placeholder{visibility:hidden}.x-tool-toggle{background-position:0 -60px}.x-tool-over .x-tool-toggle{background-position:-15px -60px}.x-panel-collapsed .x-tool-toggle,.x-fieldset-collapsed .x-tool-toggle{background-position:0 -75px}.x-panel-collapsed .x-tool-over .x-tool-toggle,.x-fieldset-collapsed .x-tool-over .x-tool-toggle{background-position:-15px -75px}.x-tool-close{background-position:0 0}.x-tool-minimize{background-position:0 -15px}.x-tool-maximize{background-position:0 -30px}.x-tool-restore{background-position:0 -45px}.x-tool-gear{background-position:0 -90px}.x-tool-prev{background-position:0 -105px}.x-tool-next{background-position:0 -120px}.x-tool-pin{background-position:0 -135px}.x-tool-unpin{background-position:0 -150px}.x-tool-right{background-position:0 -165px}.x-tool-left{background-position:0 -180px}.x-tool-help{background-position:0 -300px}.x-tool-save{background-position:0 -285px}.x-tool-search{background-position:0 -270px}.x-tool-minus{background-position:0 -255px}.x-tool-plus{background-position:0 -240px}.x-tool-refresh{background-position:0 -225px}.x-tool-up{background-position:0 -210px}.x-tool-down{background-position:0 -195px}.x-tool-collapse{background-position:0 -345px}.x-tool-expand{background-position:0 -330px}.x-tool-print{background-position:0 -315px}.x-tool-expand-bottom,.x-tool-collapse-bottom{background-position:0 -195px}.x-tool-expand-top,.x-tool-collapse-top{background-position:0 -210px}.x-tool-expand-left,.x-tool-collapse-left{background-position:0 -180px}.x-tool-expand-right,.x-tool-collapse-right{background-position:0 -165px}.x-tool-over .x-tool-close{background-position:-15px 0}.x-tool-over .x-tool-minimize{background-position:-15px -15px}.x-tool-over .x-tool-maximize{background-position:-15px -30px}.x-tool-over .x-tool-restore{background-position:-15px -45px}.x-tool-over .x-tool-gear{background-position:-15px -90px}.x-tool-over .x-tool-prev{background-position:-15px -105px}.x-tool-over .x-tool-next{background-position:-15px -120px}.x-tool-over .x-tool-pin{background-position:-15px -135px}.x-tool-over .x-tool-unpin{background-position:-15px -150px}.x-tool-over .x-tool-right{background-position:-15px -165px}.x-tool-over .x-tool-left{background-position:-15px -180px}.x-tool-over .x-tool-down{background-position:-15px -195px}.x-tool-over .x-tool-up{background-position:-15px -210px}.x-tool-over .x-tool-refresh{background-position:-15px -225px}.x-tool-over .x-tool-plus{background-position:-15px -240px}.x-tool-over .x-tool-minus{background-position:-15px -255px}.x-tool-over .x-tool-search{background-position:-15px -270px}.x-tool-over .x-tool-save{background-position:-15px -285px}.x-tool-over .x-tool-help{background-position:-15px -300px}.x-tool-over .x-tool-print{background-position:-15px -315px}.x-tool-over .x-tool-expand{background-position:-15px -330px}.x-tool-over .x-tool-collapse{background-position:-15px -345px}.x-tool-over .x-tool-expand-bottom,.x-tool-over .x-tool-collapse-bottom{background-position:-15px -195px}.x-tool-over .x-tool-expand-top,.x-tool-over .x-tool-collapse-top{background-position:-15px -210px}.x-tool-over .x-tool-expand-left,.x-tool-over .x-tool-collapse-left{background-position:-15px -180px}.x-tool-over .x-tool-expand-right,.x-tool-over .x-tool-collapse-right{background-position:-15px -165px}.x-horizontal-scroller-present .x-grid-body{border-bottom-width:0}.x-vertical-scroller-present .x-grid-body{border-right-width:0}.x-scroller{overflow:hidden}.x-scroller-vertical{border:1px solid #bfbfbf;border-top-color:#c5c5c5}.x-scroller-horizontal{border:1px solid #bfbfbf}.x-vertical-scroller-present .x-scroller-horizontal{border-right-width:0}.x-scroller-ct{overflow:hidden;position:absolute;margin:0;padding:0;border:0;left:0;top:0;box-sizing:content-box!important;-ms-box-sizing:content-box!important;-moz-box-sizing:content-box!important;-webkit-box-sizing:content-box!important}.x-scroller-vertical .x-scroller-ct{overflow-y:scroll}.x-scroller-horizontal .x-scroller-ct{overflow-x:scroll}.x-html html,.x-html address,.x-html blockquote,.x-html body,.x-html dd,.x-html div,.x-html dl,.x-html dt,.x-html fieldset,.x-html form,.x-html frame,.x-html frameset,.x-html h1,.x-html h2,.x-html h3,.x-html h4,.x-html h5,.x-html h6,.x-html noframes,.x-html ol,.x-html p,.x-html ul,.x-html center,.x-html dir,.x-html hr,.x-html menu,.x-html pre{display:block}.x-html li{display:list-item;list-style:disc}.x-html head{display:none}.x-html table{display:table}.x-html tr{display:table-row}.x-html thead{display:table-header-group}.x-html tbody{display:table-row-group}.x-html tfoot{display:table-footer-group}.x-html col{display:table-column}.x-html colgroup{display:table-column-group}.x-html td,.x-html th{display:table-cell}.x-html caption{display:table-caption}.x-html th{font-weight:bolder;text-align:center}.x-html caption{text-align:center}.x-html body{margin:8px}.x-html h1{font-size:2em;margin:.67em 0}.x-html h2{font-size:1.5em;margin:.75em 0}.x-html h3{font-size:1.17em;margin:.83em 0}.x-html h4,.x-html p,.x-html blockquote,.x-html ul,.x-html fieldset,.x-html form,.x-html ol,.x-html dl,.x-html dir,.x-html menu{margin:1.12em 0}.x-html h5{font-size:.83em;margin:1.5em 0}.x-html h6{font-size:.75em;margin:1.67em 0}.x-html h1,.x-html h2,.x-html h3,.x-html h4,.x-html h5,.x-html h6,.x-html b,.x-html strong{font-weight:bolder}.x-html blockquote{margin-left:40px;margin-right:40px}.x-html i,.x-html cite,.x-html em,.x-html var,.x-html address{font-style:italic}.x-html pre,.x-html tt,.x-html code,.x-html kbd,.x-html samp{font-family:monospace}.x-html pre{white-space:pre}.x-html button,.x-html textarea,.x-html input,.x-html select{display:inline-block}.x-html big{font-size:1.17em}.x-html small,.x-html sub,.x-html sup{font-size:.83em}.x-html sub{vertical-align:sub}.x-html sup{vertical-align:super}.x-html table{border-spacing:2px}.x-html thead,.x-html tbody,.x-html tfoot{vertical-align:middle}.x-html td,.x-html th{vertical-align:inherit}.x-html s,.x-html strike,.x-html del{text-decoration:line-through}.x-html hr{border:1px inset}.x-html ol,.x-html ul,.x-html dir,.x-html menu,.x-html dd{margin-left:40px}.x-html ul,.x-html menu,.x-html dir{list-style-type:disc}.x-html ol{list-style-type:decimal}.x-html ol ul,.x-html ul ol,.x-html ul ul,.x-html ol ol{margin-top:0;margin-bottom:0}.x-html u,.x-html ins{text-decoration:underline}.x-html br:before{content:"\A"}.x-html :before,.x-html :after{white-space:pre-line}.x-html center{text-align:center}.x-html :link,.x-html :visited{text-decoration:underline}.x-html :focus{outline:invert dotted thin}.x-html BDO[DIR="ltr"]{direction:ltr;unicode-bidi:bidi-override}.x-html BDO[DIR="rtl"]{direction:rtl;unicode-bidi:bidi-override}.x-nlg .x-toolbar-default{background-image:none!important}.x-nlg .x-btn-default-toolbar-small-focus,.x-nlg .x-btn-default-toolbar-small-over,.x-nlg .x-btn-default-toolbar-small-pressed{background-image:none}html{color:#000;background:#FFF}body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,button,textarea,p,blockquote,th,td{margin:0;padding:0}table{border-collapse:collapse;border-spacing:0}fieldset,img{border:0}address,caption,cite,code,dfn,em,strong,th,var,optgroup{font-style:inherit;font-weight:inherit}del,ins{text-decoration:none}li{list-style:none}caption,th{text-align:left}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal}q:before,q:after{content:''}abbr,acronym{border:0;font-variant:normal}sup{vertical-align:baseline}sub{vertical-align:baseline}legend{color:#000}input,button,textarea,select,optgroup,option{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit}input,button,textarea,select{*font-size:100%}body{font:13px/1.231 HelveticaNeue,helvetica,arial,clean,sans-serif!important;*font-size:small;*font:x-small}select,input,button,textarea,button{font:99% HelveticaNeue,helvetica,arial,clean,sans-serif}table{font-size:inherit;font:100%}pre,code,kbd,samp,tt{font-family:monospace;*font-size:108%;line-height:100%}html{height:100%}body{-webkit-font-smoothing:antialiased;font:13px/1.231 "Helvetica Neue","Helvetica","Arial","Lucida Grande",sans-serif;color:#484848;background:#f8f8f8;min-height:100%}a{color:#083772;text-decoration:none}a:hover{color:#0464bb}pre,code,kbd,samp,tt{font-family:"Menlo","Courier New","Courier",monospace}.iScroll ::-webkit-scrollbar,.iScroll::-webkit-scrollbar{width:6px;height:9px}.iScroll ::-webkit-scrollbar-button:start:decrement,.iScroll ::-webkit-scrollbar-button:end:increment,.iScroll::-webkit-scrollbar-button:start:decrement,.iScroll::-webkit-scrollbar-button:end:increment{display:block;height:0;background-color:transparent}.iScroll ::-webkit-scrollbar-track-piece,.iScroll::-webkit-scrollbar-track-piece{margin:10px 0;-webkit-border-radius:0;-webkit-border-bottom-right-radius:4px;-webkit-border-bottom-left-radius:4px}.iScroll ::-webkit-scrollbar-thumb:vertical,.iScroll::-webkit-scrollbar-thumb:vertical{height:50px;background-color:rgba(0,0,0,0.12);-webkit-border-radius:4px}.iScroll ::-webkit-scrollbar-thumb:horizontal,.iScroll::-webkit-scrollbar-thumb:horizontal{width:50px;background-color:rgba(0,0,0,0.12);-webkit-border-radius:4px}#treecontainer .iScroll ::-webkit-scrollbar-thumb:vertical,#treecontainer .iScroll::-webkit-scrollbar-thumb:vertical{height:50px;background-color:rgba(0,0,0,0.06);-webkit-border-radius:4px}@media print{.logo{padding:0}.logo a{color:#000;font-size:1.4em}.members .member a.side{display:none}.members .member{padding:5px}.members h3.members-title{padding:5px}}#loading{position:absolute;top:50%;width:100%;margin-top:-70px}#loading .title{font-family:"Exo",sans-serif;font-size:2em;color:gray;text-align:center;white-space:nowrap;display:block}#loading .logo{background:url(../images/loading.gif) no-repeat center;display:block;height:120px}#north-region{background:#074e7c;background:-webkit-gradient(linear,left top,left bottom,from(#074e7c),to(#095f93));background:-moz-linear-gradient(top,#074e7c,#095f93)}#north-region .dropdown{padding-right:15px;background:url(../images/down-arr.png) no-repeat bottom right}#header-content{background:url(../images/logo.png) 0 0 no-repeat;color:#fff;font-family:"Helvetica Neue","Helvetica","Arial","Lucida Grande",sans-serif;line-height:20px;margin:10px 0 0 8px;padding-left:21px;font-size:1.1em;white-space:nowrap}#header-content a{color:#fff}#header-content strong{font-weight:bold;padding-right:3px}#loginContainer{text-align:right;color:#fff;line-height:25px}#loginContainer div{padding-left:10px;float:right}#loginContainer img.avatar{-webkit-border-radius:2px;-moz-border-radius:2px;-ms-border-radius:2px;-o-border-radius:2px;border-radius:2px}#loginContainer .register{font-weight:bold}#loginContainer a{color:#fff}.loginForm .username,.loginForm .password{width:100px;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px;border:0;padding:2px 3px;margin-right:10px}.loginForm .submit{padding:2px 7px 2px 7px;-webkit-box-shadow:#b3f33d 0 1px 0 0 inset;-moz-box-shadow:#b3f33d 0 1px 0 0 inset;box-shadow:#b3f33d 0 1px 0 0 inset;color:#fff;text-shadow:rgba(0,0,0,0.3) 0 -1px 0;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px;cursor:pointer;border:1px solid #264901;background:#91c632;background:-webkit-gradient(linear,left top,left bottom,from(#91c632),to(#519700));background:-moz-linear-gradient(top,#91c632,#519700)}.loginForm .submit:hover{background:#74b61e;background:-webkit-gradient(linear,left top,left bottom,from(#74b61e),to(#3d7e00));background:-moz-linear-gradient(top,#74b61e,#3d7e00)}.loginForm .submit.disabled{border-color:#707070;cursor:auto;background:#bbb;background:-webkit-gradient(linear,left top,left bottom,from(#bbb),to(#9c9c9c));background:-moz-linear-gradient(top,#bbb,#9c9c9c);-webkit-box-shadow:#d7d7d7 0 1px 0 0 inset;-moz-box-shadow:#d7d7d7 0 1px 0 0 inset;box-shadow:#d7d7d7 0 1px 0 0 inset}.loginForm label{margin-right:10px}.search{background:url(../images/search-box.png) no-repeat;padding:2px 0 0 25px}.search .x-panel-body-default{border:0;background:0}.search .x-form-text{border:0;background:0}#search-field .reset{background:url(../images/x.png) no-repeat;width:16px;height:16px;border:0;margin:2px 0 0 14px}#search-dropdown{border-style:solid;border-color:#bfbfbf;border-width:1px 1px 0 1px;background:white;position:absolute;width:190px;top:18px;left:23px;z-index:5}#search-dropdown .item,#search-dropdown .footer{position:relative;display:block;cursor:pointer;overflow:hidden;padding:5px 5px 5px 30px;border-width:0 0 1px 0;border-style:solid;border-color:#bfbfbf;color:#605f5f}#search-dropdown .item .title,#search-dropdown .item .class,#search-dropdown .footer .title,#search-dropdown .footer .class{white-space:pre}#search-dropdown .item .title strong,#search-dropdown .item .class strong,#search-dropdown .footer .title strong,#search-dropdown .footer .class strong{background:rgba(0,0,0,0.1);color:black}#search-dropdown .item .title,#search-dropdown .footer .title{font-weight:bold;overflow:hidden;text-overflow:ellipsis}#search-dropdown .item .title.private,#search-dropdown .footer .title.private{color:gray}#search-dropdown .item .title.removed,#search-dropdown .footer .title.removed{color:gray;text-decoration:line-through}#search-dropdown .item .class,#search-dropdown .footer .class{font-size:.85em;overflow:hidden;text-overflow:ellipsis}#search-dropdown .icon{position:absolute;float:left;top:6px;left:4px;width:18px;height:18px}#search-dropdown .icon-pkg{background:url(../images/icons.png) no-repeat 0 0}#search-dropdown .icon-class{background:url(../images/icons.png) no-repeat 0 -40px}#search-dropdown .icon-singleton{background:url(../images/icons.png) no-repeat 0 -80px}#search-dropdown .icon-subclass{background:url(../images/icons.png) no-repeat 0 -120px}#search-dropdown .icon-component{background:url(../images/icons.png) no-repeat 0 -160px}#search-dropdown .icon-cfg{background:url(../images/icons.png) no-repeat 0 -200px}#search-dropdown .icon-property{background:url(../images/icons.png) no-repeat 0 -240px}#search-dropdown .icon-method{background:url(../images/icons.png) no-repeat 0 -280px}#search-dropdown .icon-event{background:url(../images/icons.png) no-repeat 0 -320px}#search-dropdown .icon-guide{background:url(../images/icons.png) no-repeat 0 -360px}#search-dropdown .icon-video{background:url(../images/icons.png) no-repeat 0 -400px}#search-dropdown .icon-example{background:url(../images/icons.png) no-repeat 0 -440px}#search-dropdown .icon-css_var{background:url(../images/icons.png) no-repeat 0 -480px}#search-dropdown .icon-css_mixin{background:url(../images/icons.png) no-repeat 0 -520px}#search-dropdown .icon-class-redirect{background:url(../images/icons.png) no-repeat 0 -560px}#search-dropdown .icon-singleton-redirect{background:url(../images/icons.png) no-repeat 0 -600px}#search-dropdown .icon-component-redirect{background:url(../images/icons.png) no-repeat 0 -640px}#search-dropdown .meta{position:absolute;top:6px;right:4px}#search-dropdown .meta .signature{font-size:.6em;text-transform:uppercase;font-weight:bold;padding:0 .5em;-webkit-border-radius:2px;-moz-border-radius:2px;-ms-border-radius:2px;-o-border-radius:2px;border-radius:2px;color:white;background-color:#aaa}#search-dropdown .meta .signature.deprecated{background-color:#a00}#search-dropdown .meta .signature.removed{color:#a00;background-color:transparent;border:1px solid #a00;text-decoration:line-through}#search-dropdown .meta .signature.chainable{background-color:#0a0}#search-dropdown .meta .signature.static{background-color:#484848}#search-dropdown .meta .signature.required{background-color:#484848}#search-dropdown .meta .signature.new{color:#484848;background-color:#f5d833}#search-dropdown .meta .signature.private{background-color:#fd6b1b}#search-dropdown .meta .signature.protected{background-color:#9b86fc}#search-dropdown .item.x-item-selected{background-color:#ffa}#search-dropdown .item.x-view-over{background-color:#ffa}#search-dropdown .footer{cursor:auto;text-align:right;font-size:.85em}#search-dropdown .footer a{padding:0 .5em}#footer{background:#f8f8f8;color:gray;text-align:right;font-size:10px;padding-top:3px;padding-right:40px;border-color:#ebebeb;border-width:0 1px 0 0!important;border-style:solid}#footer a{color:gray}#footer #footer-content{display:block!important}.doctabs{padding-left:10px;height:19px;position:relative}.doctabs .icon-pkg{background:url(../images/icons.png) no-repeat 0 0}.doctabs .icon-class{background:url(../images/icons.png) no-repeat 0 -40px}.doctabs .icon-singleton{background:url(../images/icons.png) no-repeat 0 -80px}.doctabs .icon-subclass{background:url(../images/icons.png) no-repeat 0 -120px}.doctabs .icon-component{background:url(../images/icons.png) no-repeat 0 -160px}.doctabs .icon-cfg{background:url(../images/icons.png) no-repeat 0 -200px}.doctabs .icon-property{background:url(../images/icons.png) no-repeat 0 -240px}.doctabs .icon-method{background:url(../images/icons.png) no-repeat 0 -280px}.doctabs .icon-event{background:url(../images/icons.png) no-repeat 0 -320px}.doctabs .icon-guide{background:url(../images/icons.png) no-repeat 0 -360px}.doctabs .icon-video{background:url(../images/icons.png) no-repeat 0 -400px}.doctabs .icon-example{background:url(../images/icons.png) no-repeat 0 -440px}.doctabs .icon-css_var{background:url(../images/icons.png) no-repeat 0 -480px}.doctabs .icon-css_mixin{background:url(../images/icons.png) no-repeat 0 -520px}.doctabs .icon-class-redirect{background:url(../images/icons.png) no-repeat 0 -560px}.doctabs .icon-singleton-redirect{background:url(../images/icons.png) no-repeat 0 -600px}.doctabs .icon-component-redirect{background:url(../images/icons.png) no-repeat 0 -640px}.doctabs .doctab{position:relative;display:block;float:left;overflow:hidden;top:0;margin-left:-8px;cursor:pointer;height:28px}.doctabs .doctab .l{position:absolute;top:0;left:0;width:9px;height:29px;background:url(../images/tabs.png) no-repeat -8px -141px;z-index:3}.doctabs .doctab .r{position:absolute;right:0;top:0;width:26px;height:29px;background:url(../images/tabs.png) no-repeat 0 -239px;z-index:5}.doctabs .doctab .m{z-index:5;position:relative;padding:6px 3px 0 6px;margin:0 7px;background:url(../images/tabs.png) repeat-x 0 -173px;height:29px;overflow:hidden;white-space:nowrap;text-shadow:1px 1px 0 rgba(255,255,255,0.5);font-family:"Helvetica Neue","Helvetica","Arial","Lucida Grande",sans-serif;font-weight:bold;font-size:11px}.doctabs .doctab .m span,.doctabs .doctab .m a{padding-bottom:5px;line-height:16px;display:block;color:#2e3841;white-space:nowrap;overflow:hidden;float:left}.doctabs .doctab .m a.ov-tab{overflow:hidden;padding:0 14px 0 17px}.doctabs .doctab .m a.ov-tab-text{overflow:hidden}.doctabs .doctab .m a.main-tab{overflow:hidden;padding:0 14px 0 17px;width:140px}.doctabs .doctab .m span.icn{display:block;position:absolute;left:3px;padding-left:15px;padding-bottom:0}.doctabs .doctab a.close{position:absolute;width:11px;height:11px;top:8px;right:9px;z-index:6;background:url(../images/tabs.png) no-repeat -8px -111px!important}.doctabs .doctab a.close.ovr{background:url(../images/tabs.png) no-repeat -8px -123px!important}.doctabs .doctab.highlight{border-width:0}.doctabs .doctab.highlight .l{background:url(../images/tabs.png) no-repeat -9px -271px}.doctabs .doctab.highlight .r{background:url(../images/tabs.png) no-repeat -9px -335px;width:10px}.doctabs .doctab.highlight .m{background:url(../images/tabs.png) repeat-x 0 -303px}.doctabs .doctab.active{border-width:0}.doctabs .doctab.active .l{background:url(../images/tabs.png) no-repeat -9px -369px;z-index:6;width:13px}.doctabs .doctab.active .r{background:url(../images/tabs.png) no-repeat 3px -479px;z-index:5;width:28px}.doctabs .doctab.active .m{background:url(../images/tabs.png) repeat-x 0 -405px;z-index:5}.doctabs .doctab.overview .m{z-index:6}.doctabs .doctab.index .m a{background:url(../images/tabs.png) no-repeat 1px 1px;padding-left:16px;padding-right:12px;padding-bottom:20px}.doctabs .doctab.classes .m a{background:url(../images/tabs.png) no-repeat 2px -20px;padding-left:16px;padding-right:12px}.doctabs .doctab.guides .m a{background:url(../images/tabs.png) no-repeat 3px -55px;padding-left:16px;padding-right:12px}.doctabs .doctab.videos .m a{background:url(../images/tabs.png) no-repeat 2px -38px;padding-left:16px;padding-right:12px}.doctabs .doctab.examples .m a{background:url(../images/tabs.png) no-repeat 1px -93px;padding-left:16px;padding-right:12px}.doctabs .doctab.comments .m a{background:url(../images/tabs.png) no-repeat 2px -72px;padding-left:16px;padding-right:12px}.doctabs .tab-overflow{position:absolute;right:5px;top:8px}.doctabs .tab-overflow button{cursor:pointer;display:block;width:14px;height:20px;background:url(../images/tabs.png) no-repeat -7px -513px;border:0}.tab-menu .x-menu-item-link{padding-top:5px}.tab-menu .overflow{background:#e3e3e3}.tab-menu .close-all{background:#e3e3e3;border-top:1px dotted #aaa;font-weight:bold}.tab-menu .close-all a .x-menu-item-text{color:#666}.tab-menu .x-menu-item-icon.close{background:url(../images/x12.png) no-repeat 4px 4px}.class-overview .x-toolbar.member-links{border-radius:2px;border-color:#e4e4e4;padding:5px;border-width:1px!important}.class-overview .x-toolbar.member-links .icon-pkg{background:url(../images/icons.png) no-repeat 0 0}.class-overview .x-toolbar.member-links .icon-class{background:url(../images/icons.png) no-repeat 0 -40px}.class-overview .x-toolbar.member-links .icon-singleton{background:url(../images/icons.png) no-repeat 0 -80px}.class-overview .x-toolbar.member-links .icon-subclass{background:url(../images/icons.png) no-repeat 0 -120px}.class-overview .x-toolbar.member-links .icon-component{background:url(../images/icons.png) no-repeat 0 -160px}.class-overview .x-toolbar.member-links .icon-cfg{background:url(../images/icons.png) no-repeat 0 -200px}.class-overview .x-toolbar.member-links .icon-property{background:url(../images/icons.png) no-repeat 0 -240px}.class-overview .x-toolbar.member-links .icon-method{background:url(../images/icons.png) no-repeat 0 -280px}.class-overview .x-toolbar.member-links .icon-event{background:url(../images/icons.png) no-repeat 0 -320px}.class-overview .x-toolbar.member-links .icon-guide{background:url(../images/icons.png) no-repeat 0 -360px}.class-overview .x-toolbar.member-links .icon-video{background:url(../images/icons.png) no-repeat 0 -400px}.class-overview .x-toolbar.member-links .icon-example{background:url(../images/icons.png) no-repeat 0 -440px}.class-overview .x-toolbar.member-links .icon-css_var{background:url(../images/icons.png) no-repeat 0 -480px}.class-overview .x-toolbar.member-links .icon-css_mixin{background:url(../images/icons.png) no-repeat 0 -520px}.class-overview .x-toolbar.member-links .icon-class-redirect{background:url(../images/icons.png) no-repeat 0 -560px}.class-overview .x-toolbar.member-links .icon-singleton-redirect{background:url(../images/icons.png) no-repeat 0 -600px}.class-overview .x-toolbar.member-links .icon-component-redirect{background:url(../images/icons.png) no-repeat 0 -640px}.member-filter{height:20px;border-style:solid;border-color:#bebebe;border-width:1px;margin-left:-1px;background:white url("../images/text-bg.gif") repeat-x 0 0}.member-filter .x-form-trigger.reset{background:url(../images/x12.png) no-repeat 2px 3px;padding:0;margin:0;border:0}.member-filter input{background:transparent;border:0}.expand-all-members{background:url(../images/expandcollapse.png) no-repeat -12px 2px}.collapse-all-members{background:url(../images/expandcollapse.png) no-repeat 2px 2px}.hover-menu-button{padding-left:20px;cursor:pointer}.hover-menu-button sup{font-size:.8em;position:relative;top:-4px}.hover-menu{font-size:12px;position:absolute;padding:5px 15px 10px;background:#eaeaea;z-index:8;top:21px;border:1px solid #e4e4e4;border-top:1px solid #eaeaea;left:-16px;-moz-border-radius-bottomleft:5px;-webkit-border-bottom-left-radius:5px;border-bottom-left-radius:5px;-moz-border-radius-bottomright:5px;-webkit-border-bottom-right-radius:5px;border-bottom-right-radius:5px}.hover-menu table{width:100%}.hover-menu td{vertical-align:top}.hover-menu .item{position:relative}.hover-menu a{display:block;position:relative;padding:2px 30px 2px 0;color:#0464bb;white-space:nowrap}.hover-menu a:hover{color:#083772;text-decoration:underline}.hover-menu a .signature{font-size:.6em;text-transform:uppercase;font-weight:bold;padding:0 .5em;-webkit-border-radius:2px;-moz-border-radius:2px;-ms-border-radius:2px;-o-border-radius:2px;border-radius:2px;color:white;background-color:#aaa}.hover-menu a .signature.deprecated{background-color:#a00}.hover-menu a .signature.removed{color:#a00;background-color:transparent;border:1px solid #a00;text-decoration:line-through}.hover-menu a .signature.chainable{background-color:#0a0}.hover-menu a .signature.static{background-color:#484848}.hover-menu a .signature.required{background-color:#484848}.hover-menu a .signature.new{color:#484848;background-color:#f5d833}.hover-menu a .signature.private{background-color:#fd6b1b}.hover-menu a .signature.protected{background-color:#9b86fc}.hover-menu a{font-family:Helvetica,Arial,clean,sans-serif;font-size:12px}#treecontainer{background:#f8f8f8;border:0;background:-moz-linear-gradient(top,white 0,#f8f8f8 10px);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,white),color-stop(10px,#f8f8f8));background:-webkit-linear-gradient(top,white 0,#f8f8f8 10px);background:-o-linear-gradient(top,white 0,#f8f8f8 5px);background:-ms-linear-gradient(top,white 0,#f8f8f8 5px);background:linear-gradient(top,#fff 0,#f8f8f8 5px)}#treecontainer a{color:#000}#treecontainer .x-grid-cell{background:0}#treecontainer .x-grid-cell-inner{font-family:"Helvetica Neue","Helvetica","Arial","Lucida Grande",sans-serif;font-size:13px;position:relative;-webkit-transition:background-color .15s linear;-moz-transition:background-color .15s linear;-o-transition:background-color .15s linear}#treecontainer .x-grid-cell-inner .icon-pkg{background:url(../images/icons.png) no-repeat 0 0}#treecontainer .x-grid-cell-inner .icon-class{background:url(../images/icons.png) no-repeat 0 -40px}#treecontainer .x-grid-cell-inner .icon-singleton{background:url(../images/icons.png) no-repeat 0 -80px}#treecontainer .x-grid-cell-inner .icon-subclass{background:url(../images/icons.png) no-repeat 0 -120px}#treecontainer .x-grid-cell-inner .icon-component{background:url(../images/icons.png) no-repeat 0 -160px}#treecontainer .x-grid-cell-inner .icon-cfg{background:url(../images/icons.png) no-repeat 0 -200px}#treecontainer .x-grid-cell-inner .icon-property{background:url(../images/icons.png) no-repeat 0 -240px}#treecontainer .x-grid-cell-inner .icon-method{background:url(../images/icons.png) no-repeat 0 -280px}#treecontainer .x-grid-cell-inner .icon-event{background:url(../images/icons.png) no-repeat 0 -320px}#treecontainer .x-grid-cell-inner .icon-guide{background:url(../images/icons.png) no-repeat 0 -360px}#treecontainer .x-grid-cell-inner .icon-video{background:url(../images/icons.png) no-repeat 0 -400px}#treecontainer .x-grid-cell-inner .icon-example{background:url(../images/icons.png) no-repeat 0 -440px}#treecontainer .x-grid-cell-inner .icon-css_var{background:url(../images/icons.png) no-repeat 0 -480px}#treecontainer .x-grid-cell-inner .icon-css_mixin{background:url(../images/icons.png) no-repeat 0 -520px}#treecontainer .x-grid-cell-inner .icon-class-redirect{background:url(../images/icons.png) no-repeat 0 -560px}#treecontainer .x-grid-cell-inner .icon-singleton-redirect{background:url(../images/icons.png) no-repeat 0 -600px}#treecontainer .x-grid-cell-inner .icon-component-redirect{background:url(../images/icons.png) no-repeat 0 -640px}#treecontainer .private .x-grid-cell-inner,#treecontainer .private .x-grid-cell-inner a{color:#666}#treecontainer .x-grid-row-over .x-grid-cell-inner{-webkit-transition:background-color .15s linear;-moz-transition:background-color .15s linear;-o-transition:background-color .15s linear}#treecontainer .x-panel-body{border-color:#d4d4d4;background:#f8f8f8}.x-scroller-vertical{border:0}.x-tree-arrows .x-tree-elbow-plus,.x-tree-arrows .x-tree-elbow-minus,.x-tree-arrows .x-tree-elbow-end-plus,.x-tree-arrows .x-tree-elbow-end-minus{background:url("../images/arrows.png") no-repeat 2px 1px}.x-tree-arrows .x-tree-expander-over .x-tree-elbow-plus,.x-tree-arrows .x-tree-expander-over .x-tree-elbow-end-plus{background-position:2px 1px}.x-tree-arrows .x-grid-tree-node-expanded .x-tree-elbow-plus,.x-tree-arrows .x-grid-tree-node-expanded .x-tree-elbow-end-plus{background-position:-12px 1px}.x-tree-arrows .x-grid-tree-node-expanded .x-tree-expander-over .x-tree-elbow-plus,.x-tree-arrows .x-grid-tree-node-expanded .x-tree-expander-over .x-tree-elbow-end-plus{background-position:-12px 1px}#tree-container .x-grid-cell-inner{font-family:Helvetica,Arial,clean,sans-serif;font-size:12px}#treecontainer>.x-panel-body{background:transparent;border-color:#ebebeb;border-width:0 1px 0 0!important}.x-resizable-over .x-resizable-handle-east{cursor:col-resize}.x-resizable-handle-east{width:6px}.x-resizable-over .x-resizable-handle-east,.x-resizable-over .x-resizable-handle-west,.x-resizable-pinned .x-resizable-handle-east,.x-resizable-pinned .x-resizable-handle-west{background:0;border:solid #bbb;border-width:0 1px 0 0}.cls-grouping button,.cls-private-cb{font-size:11px;color:#4d4d4d;font-weight:bold;-webkit-font-smoothing:antialiased}.cls-grouping{padding:5px 0 2px 0;text-align:center}.cls-grouping button{display:inline-block;float:left;margin:0 3px;padding:1px 13px 2px 13px;border:1px solid transparent;cursor:pointer;background:transparent}.cls-grouping button.selected{color:#fff;border:1px solid #727a81;background-color:#646b72;background:#646b72;background:-webkit-gradient(linear,left top,left bottom,from(#646b72),to(#8d949b));background:-moz-linear-gradient(top,#646b72,#8d949b);-webkit-box-shadow:#5b6167 0 0 1px 0 inset;-moz-box-shadow:#5b6167 0 0 1px 0 inset;box-shadow:#5b6167 0 0 1px 0 inset;-webkit-border-radius:10px;-moz-border-radius:10px;-ms-border-radius:10px;-o-border-radius:10px;border-radius:10px;text-shadow:1px 1px 0 rgba(0,0,0,0.35)}.thumb-list{padding:2px}.thumb-list dd{cursor:pointer;float:left;height:100px;margin:10px;width:300px;zoom:1;line-height:1em}.thumb-list dd.over{background:#f5fde3 url(../images/sample-over.gif) no-repeat}.thumb-list dd .thumb{float:left;height:90px;margin:5px 0 0 5px;width:120px}.thumb-list dd .thumb img{border:1px solid #ddd;max-height:88px;max-width:118px;margin:auto}.thumb-list dd div{float:left;margin-left:10px;width:160px}.thumb-list dd h4{color:#555;font-size:11px;font-weight:bold;padding:3px 0}.thumb-list dd h4 span.new-sample{color:red}.thumb-list dd h4 span.updated-sample{color:blue}.thumb-list dd p{color:#777;font-size:13px}.thumb-list h2{border-bottom:2px solid #99bbe8;cursor:pointer;padding-top:6px}.thumb-list h2 div{background:transparent url(../images/group-expand-sprite.gif) no-repeat 2px -45px;color:#3764a0;padding:4px 4px 4px 17px}.thumb-list .collapsed h2 div{background-position:2px 5px}.thumb-list .collapsed dl{display:none}.touch-examples-ui .thumb-list dd .thumb{border:1px solid #ddd;background:white;background:-webkit-gradient(linear,left top,left bottom,from(white),to(#f9f9f9));background:-moz-linear-gradient(top,white,#f9f9f9)}.touch-examples-ui .thumb-list dd .thumb img{border:0;margin:7px 0 0 22px}.class-categories h1.top{margin-bottom:12px}.class-categories .notice{background-color:#ffc;text-align:center;color:#434343;font-weight:bold;padding:8px 0;margin:0 20px 15px 0;-webkit-border-radius:8px;-moz-border-radius:8px;-ms-border-radius:8px;-o-border-radius:8px;border-radius:8px}.class-categories .section{-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;-o-border-radius:5px;border-radius:5px;background-color:#f7f7f7;border:1px solid #ebebeb;padding:20px 10px 20px 20px;margin:0 10px 20px 0;clear:both}.class-categories .section .left-column{float:left;width:250px;margin-left:20px}.class-categories .section .middle-column{float:left;width:280px}.class-categories .section .right-column{float:left}.class-categories .section .links{margin-left:1.5em}.class-categories .section .links .new-class,.class-categories .section .links .new-members{-webkit-border-radius:2px;-moz-border-radius:2px;-ms-border-radius:2px;-o-border-radius:2px;border-radius:2px;padding:0 .5em;background:#f5d833}.class-categories .section .links .new-members{position:relative;top:-3px;font-size:5px}#failure{padding:1em}#failure h1{padding:10px 0;font-family:"Exo",sans-serif;margin-bottom:16px;font-size:2em;color:#66ab16}#failure p{margin:0 0 .8em}#center-container h1{font-family:"Exo",sans-serif;padding-bottom:5px;padding-top:2px;border-bottom:1px #f1f1f1;font-size:2em;color:#66ab16}#center-container h1 .class-source-link{color:#66ab16;margin-left:-3px;padding:.1em 0 .4em 2.3em}#center-container h1.class .class-source-link{background:url(../images/class-m.png) no-repeat 0 -5px}#center-container h1.component .class-source-link{background:url(../images/component-m.png) no-repeat 0 -5px}#center-container h1.singleton .class-source-link{background:url(../images/singleton-m.png) no-repeat 0 -5px}#center-container h1 span{color:#929292;letter-spacing:0;margin-left:10px;font-size:.5em}#center-container h1 span.class-source-tip{font-size:.5em;position:absolute;top:35px;left:100px;color:#fff;-webkit-transition:color .2s linear;-moz-transition:color .2s linear;-o-transition:color .2s linear}#center-container h1 span.class-source-tip.hover{color:#929292}#center-container h1 .signature{font-weight:bold;text-transform:uppercase;font-size:.4em;letter-spacing:2px;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px;margin-left:2px;margin-right:0;padding:0 5px;color:white;background-color:#aaa}#center-container h1 .signature.deprecated{background-color:#a00}#center-container h1 .signature.removed{color:#a00;background-color:transparent;border:1px solid #a00;text-decoration:line-through}#center-container h1 .signature.chainable{background-color:#0a0}#center-container h1 .signature.static{background-color:#484848}#center-container h1 .signature.required{background-color:#484848}#center-container h1 .signature.new{color:#484848;background-color:#f5d833}#center-container h1 .signature.private{background-color:#fd6b1b}#center-container h1 .signature.protected{background-color:#9b86fc}#center-container .guide-container table{width:900px;font-size:.9em}#center-container .guide-container table th{background-color:#eee;font-weight:bold;text-align:center;color:#333;padding:1px 2px}#center-container .guide-container table td{padding:3px}#center-container .print{background:url(../images/print.png) no-repeat;position:absolute;right:0;top:5px;display:block;text-indent:-9999px;width:32px;height:32px}#center-container .print.guide{right:15px;top:15px}.card-panel{line-height:1.5em}.card-panel h3{font-size:1.2em;padding:1em 0 .4em 0;font-weight:normal}#welcomeindex .markdown{margin:2em;color:#484848}#welcomeindex .markdown p{margin-bottom:1em}#welcomeindex .markdown h1{color:#66ab16;font-family:"Exo",sans-serif;font-size:2em}#welcomeindex .markdown h2{font-family:"Helvetica Neue","Helvetica","Arial","Lucida Grande",sans-serif;letter-spacing:-1px;line-height:20px;border-bottom:1px solid #f1f1f1;font-size:20px;font-weight:bold;color:#314e64;margin:30px 0 15px;padding-bottom:5px}#welcomeindex .markdown h3{font-weight:bold;color:#314e64;margin-top:.5em;padding-top:16px;font-size:16px;line-height:16px;margin-bottom:4px}#welcomeindex .markdown h3{font-weight:bold;font-size:1.1em}#welcomeindex .markdown h4{font-weight:bold}#welcomeindex .markdown ul{margin:0 0 1em 2em}#welcomeindex .markdown ul li{list-style:disc outside}#welcomeindex .markdown ol{margin:0 0 1em 2em}#welcomeindex .markdown ol li{list-style:decimal outside}#welcomeindex .markdown em{font-style:italic}#welcomeindex .markdown strong{font-weight:bold}#welcomeindex .markdown pre{background-color:#f7f7f7;border:solid 1px #e8e8e8;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;-o-border-radius:5px;border-radius:5px;color:#314e64;font-family:"Menlo","Courier New","Courier",monospace;padding:10px 12px;margin:10px 0 14px 0;overflow-x:auto;overflow-y:hidden}.class-overview .x-panel-body,.guide-container .x-panel-body,.comments-index .x-panel-body{min-height:100px}.class-overview .x-panel-body .clr,.guide-container .x-panel-body .clr,.comments-index .x-panel-body .clr{clear:both}.class-overview .x-panel-body p,.class-overview .x-panel-body ul,.class-overview .x-panel-body ol,.guide-container .x-panel-body p,.guide-container .x-panel-body ul,.guide-container .x-panel-body ol,.comments-index .x-panel-body p,.comments-index .x-panel-body ul,.comments-index .x-panel-body ol{color:#484848;max-width:900px}.class-overview .x-panel-body p,.guide-container .x-panel-body p,.comments-index .x-panel-body p{padding:0;margin:0 0 1em}.class-overview .x-panel-body p:last-child,.guide-container .x-panel-body p:last-child,.comments-index .x-panel-body p:last-child{margin:0}.class-overview .x-panel-body ul,.guide-container .x-panel-body ul,.comments-index .x-panel-body ul{margin:0 0 1em 2em}.class-overview .x-panel-body ul li,.guide-container .x-panel-body ul li,.comments-index .x-panel-body ul li{list-style:disc outside}.class-overview .x-panel-body ol,.guide-container .x-panel-body ol,.comments-index .x-panel-body ol{margin:0 0 1em 2em}.class-overview .x-panel-body ol li,.guide-container .x-panel-body ol li,.comments-index .x-panel-body ol li{list-style:decimal outside}.class-overview .x-panel-body em,.guide-container .x-panel-body em,.comments-index .x-panel-body em{font-style:italic}.class-overview .x-panel-body strong,.guide-container .x-panel-body strong,.comments-index .x-panel-body strong{font-weight:bold}.class-overview .x-panel-body h3,.guide-container .x-panel-body h3,.comments-index .x-panel-body h3{font-weight:bold;font-size:1.1em}.class-overview .x-panel-body h4,.guide-container .x-panel-body h4,.comments-index .x-panel-body h4{font-weight:bold}.class-overview .x-panel-body table,.guide-container .x-panel-body table,.comments-index .x-panel-body table{margin-bottom:10px}.class-overview .x-panel-body table tr:first-child td,.guide-container .x-panel-body table tr:first-child td,.comments-index .x-panel-body table tr:first-child td{color:#000;font-weight:bold}.class-overview .x-panel-body table td,.guide-container .x-panel-body table td,.comments-index .x-panel-body table td{color:#484848;padding:2px 20px 2px 0}.class-overview .x-panel-body blockquote,.guide-container .x-panel-body blockquote,.comments-index .x-panel-body blockquote{padding-left:1em;border-left:solid 1em #e8e8e8}.class-overview .x-panel-body pre.notpretty,.class-overview .x-panel-body pre.prettyprint,.guide-container .x-panel-body pre.notpretty,.guide-container .x-panel-body pre.prettyprint,.comments-index .x-panel-body pre.notpretty,.comments-index .x-panel-body pre.prettyprint{background-color:#f7f7f7;border:solid 1px #e8e8e8;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;-o-border-radius:5px;border-radius:5px;color:#314e64;font-family:"Menlo","Courier New","Courier",monospace;padding:10px 12px;line-height:1.3em;margin:10px 0 14px 0;max-width:900px;overflow-x:auto;overflow-y:hidden}.class-overview .x-panel-body pre.notpretty code,.class-overview .x-panel-body pre.prettyprint code,.guide-container .x-panel-body pre.notpretty code,.guide-container .x-panel-body pre.prettyprint code,.comments-index .x-panel-body pre.notpretty code,.comments-index .x-panel-body pre.prettyprint code{font-family:"Menlo","Courier New","Courier",monospace}.class-overview .x-panel-body pre.notpretty i,.class-overview .x-panel-body pre.notpretty em,.class-overview .x-panel-body pre.prettyprint i,.class-overview .x-panel-body pre.prettyprint em,.guide-container .x-panel-body pre.notpretty i,.guide-container .x-panel-body pre.notpretty em,.guide-container .x-panel-body pre.prettyprint i,.guide-container .x-panel-body pre.prettyprint em,.comments-index .x-panel-body pre.notpretty i,.comments-index .x-panel-body pre.notpretty em,.comments-index .x-panel-body pre.prettyprint i,.comments-index .x-panel-body pre.prettyprint em{font-style:normal}.class-overview .hierarchy,.class-overview .aside{-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;-o-border-radius:5px;border-radius:5px;background-color:#f7f7f7;border:1px solid #ebebeb;padding:0 15px 15px 10px;float:right;clear:right;margin:0 0 10px 60px;color:#484848;font-size:12px}.class-overview .hierarchy h4{font-family:"Helvetica Neue","Helvetica","Arial","Lucida Grande",sans-serif;font-size:90%;padding:11px 0 5px 0;text-transform:uppercase;color:#999}.class-overview .hierarchy .dependency,.class-overview .hierarchy .alternate-class-name{padding:0 0 0 12px;margin-top:3px}.class-overview .hierarchy .alternate-class-name{color:#484848}.class-overview .hierarchy .subclass{background:url(../images/elbow-end.gif) no-repeat -5px 0;margin-top:3px;padding:0 0 0 12px}.class-overview .hierarchy .subclass.first-child{background:0;padding-left:15px}.class-overview .aside{width:180px}.class-overview .aside h4{margin:4px 0;font-size:larger;color:#526c83;padding-left:22px}.class-overview .aside img{width:50px;float:left;margin-right:10px}.class-overview .aside.guide h4{background:url(../images/tabs.png) no-repeat -5px -55px}.class-overview .aside.video h4{background:url(../images/tabs.png) no-repeat -6px -38px}.class-overview .aside.example h4{background:url(../images/tabs.png) no-repeat -7px -93px}#center-container .doc-contents h1,#center-container .doc-contents h2{font-family:"Helvetica Neue","Helvetica","Arial","Lucida Grande",sans-serif;letter-spacing:-1px;line-height:20px;border-bottom:1px solid #f1f1f1;font-size:20px;font-weight:bold;color:#314e64;margin:30px 0 15px;padding-bottom:5px;letter-spacing:0}#center-container .doc-contents h3{font-weight:bold;color:#314e64;margin-top:.5em;padding-top:16px;font-size:16px;line-height:16px;margin-bottom:4px}.class-overview p.private{border:1px solid #999;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;-o-border-radius:5px;border-radius:5px;color:#600;background-color:#fee;padding:10px 50px;text-align:center}.class-overview p.enum{border:1px solid #999;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;-o-border-radius:5px;border-radius:5px;color:#060;background-color:#efe;padding:10px 50px;text-align:center}.class-overview .signature{font-weight:bold;text-transform:uppercase;font-size:.7em;-webkit-border-radius:2px;-moz-border-radius:2px;-ms-border-radius:2px;-o-border-radius:2px;border-radius:2px;margin-left:5px;padding:0 3px;color:white;background-color:#aaa}.class-overview .signature.deprecated{background-color:#a00}.class-overview .signature.removed{color:#a00;background-color:transparent;border:1px solid #a00;text-decoration:line-through}.class-overview .signature.chainable{background-color:#0a0}.class-overview .signature.static{background-color:#484848}.class-overview .signature.required{background-color:#484848}.class-overview .signature.new{color:#484848;background-color:#f5d833}.class-overview .signature.private{background-color:#fd6b1b}.class-overview .signature.protected{background-color:#9b86fc}.class-overview .new-keyword{margin-left:0;margin-right:3px;color:#083772}.class-overview .cfgGroup{margin:10px 0 3px 0}.members{color:#444;padding-top:10px;clear:both;first-child-padding-top:0}.members h1,.members h2{font-family:"Helvetica Neue","Helvetica","Arial","Lucida Grande",sans-serif;letter-spacing:-1px;line-height:20px;border-bottom:1px solid #f1f1f1;font-size:20px;font-weight:bold;color:#314e64;margin:30px 0 15px;padding-bottom:5px;font-size:14px;margin:15px 0 5px}.members .pre{font-family:"Menlo","Courier New","Courier",monospace;font-size:.9em}.members .definedBy{float:right;padding:0 20px 0 0;font-weight:bold;color:#666}.members .subsection .definedBy{padding-top:0}.members h3.pa{padding:10px 0 5px 0}.members .members-section,.members .comments-section{margin-bottom:40px}.members h3.members-title{margin:20px 0 5px 0;padding:0 0 0 25px;font-size:1.3em;font-weight:bold}.members .icon-pkg{background:url(../images/icons.png) no-repeat 0 0}.members .icon-class{background:url(../images/icons.png) no-repeat 0 -40px}.members .icon-singleton{background:url(../images/icons.png) no-repeat 0 -80px}.members .icon-subclass{background:url(../images/icons.png) no-repeat 0 -120px}.members .icon-component{background:url(../images/icons.png) no-repeat 0 -160px}.members .icon-cfg{background:url(../images/icons.png) no-repeat 0 -200px}.members .icon-property{background:url(../images/icons.png) no-repeat 0 -240px}.members .icon-method{background:url(../images/icons.png) no-repeat 0 -280px}.members .icon-event{background:url(../images/icons.png) no-repeat 0 -320px}.members .icon-guide{background:url(../images/icons.png) no-repeat 0 -360px}.members .icon-video{background:url(../images/icons.png) no-repeat 0 -400px}.members .icon-example{background:url(../images/icons.png) no-repeat 0 -440px}.members .icon-css_var{background:url(../images/icons.png) no-repeat 0 -480px}.members .icon-css_mixin{background:url(../images/icons.png) no-repeat 0 -520px}.members .icon-class-redirect{background:url(../images/icons.png) no-repeat 0 -560px}.members .icon-singleton-redirect{background:url(../images/icons.png) no-repeat 0 -600px}.members .icon-component-redirect{background:url(../images/icons.png) no-repeat 0 -640px}.members h4.members-subtitle{padding-left:25px;margin:10px 0 7px 0}.members ul ul{list-style:circle;margin-top:1em}.members .sub-desc{margin:.5em 0 1em}.members .description .short p{margin:0}.members a{text-decoration:none}.members .member{position:relative;min-height:2.5em;border-style:solid;border-color:#e0e0e0;border-width:0 0 1px 0;padding:10px 22px}.members .member.open>a.side.toggleComments,.members .member.open>a.side.expandable{background:#ebf3fe}.members .member.open>a.side.toggleComments span,.members .member.open>a.side.expandable span{background:url(../images/member-expanded.gif) no-repeat 2px 12px}.members .member a.side{display:block;position:absolute;top:0;left:0;bottom:0;cursor:default!important}.members .member a.side span{display:block;width:15px;height:30px}.members .member a.side.expandable,.members .member a.side.toggleComments{cursor:pointer}.members .member a.side.expandable span,.members .member a.side.toggleComments span{background:url(../images/member-collapsed.gif) no-repeat 3px 13px}.members .member a.side.expandable:hover span,.members .member a.side.toggleComments:hover span{background:url(../images/member-hover.gif) no-repeat 3px 13px}.members .member.first-child{border-width:1px 0}.members .member .long{display:none}.members .member .meta{float:right;text-align:right}.members .member .defined-in,.members .member .view-source{font-family:"Helvetica","Arial",sans-serif;font-size:.9em}.members .member a.defined-in{color:#888}.members .member a.defined-in:hover{color:#0464bb}.members .member a.view-source{color:rgba(0,0,0,0);-webkit-transition:color .2s linear;-moz-transition:color .2s linear;-o-transition:color .2s linear;font-size:.9em}.members .member a.view-source:hover{-webkit-transition:color .2s linear;-moz-transition:color .2s linear;-o-transition:color .2s linear;color:#0464bb}.members .member:hover a.view-source{color:gray;-webkit-transition:color .2s linear;-moz-transition:color .2s linear;-o-transition:color .2s linear}.members .member.open a.side.expandable{background:#ebf3fe;background:-webkit-gradient(linear,left top,right top,from(#ebf3fe),to(#d9e8fc));background:-moz-linear-gradient(left,#ebf3fe,#d9e8fc)}.members .member.open a.side.expandable span{background:url(../images/member-expanded.gif) no-repeat 1px 2px}.members .member.open .short{display:none}.members .member.open .long{display:block}.members .member .name{font-weight:bold}.members .member .title{padding-bottom:3px}.signature-box{border:1px solid #999;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;-o-border-radius:5px;border-radius:5px;padding:10px 50px;text-align:center}.signature-box.template{background-color:#eee}.signature-box.deprecated,.signature-box.removed{color:#600;background-color:#fee}.signature-box.deprecated strong,.signature-box.removed strong{text-transform:uppercase;-webkit-border-radius:2px;-moz-border-radius:2px;-ms-border-radius:2px;-o-border-radius:2px;border-radius:2px;padding:0 3px}.signature-box.deprecated strong{color:white;background-color:#a00}.signature-box.removed strong{color:#a00;border:1px solid #a00;background-color:transparent;text-decoration:line-through}#center-container .guide-container{padding:10px;font-size:14px}#center-container .guide-container .toc{float:right;background-color:#f7f7f7;border:solid 1px #e8e8e8;padding:10px 20px;margin:0 14px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;-o-border-radius:5px;border-radius:5px}#center-container .guide-container h1{background:url(../images/doc-m.png) no-repeat -5px -5px;padding:10px 0 10px 55px;font-family:"Exo",sans-serif;margin-bottom:16px;font-size:2em;color:#66ab16}#center-container .guide-container h2{font-family:"Helvetica Neue","Helvetica","Arial","Lucida Grande",sans-serif;letter-spacing:-1px;line-height:20px;border-bottom:1px solid #f1f1f1;font-size:20px;font-weight:bold;color:#314e64;margin:30px 0 15px;padding-bottom:5px}#center-container .guide-container h3{font-weight:bold;color:#314e64;margin-top:.5em;padding-top:16px;font-size:16px;line-height:16px;margin-bottom:4px}#center-container .guide-container hr{display:none}p.screenshot img{display:block;margin:0 auto}p.screenshot span{display:block;text-align:center;font-size:smaller}#video object,#video p,#video h1{margin:15px}#exampleindex,#videoindex,#guideindex,#classindex{padding:15px 10px 10px 10px}.x-panel-body-default{border-width:0}pre.inline-example{margin-top:0}.inline-example-tb{background:none!important;border:0}.inline-example-tb .x-btn table{margin:0}.inline-example-tb .x-btn table td{padding:0}.inline-example-tb .x-btn button{display:inline-block}.inline-example-tb span.x-btn-inner{line-height:16px}.inline-example-tb .active span.x-btn-inner{color:#57a7dc}.inline-example-tb span.x-btn-icon{background:url(../images/example-icons.png) no-repeat;filter:alpha(opacity=60);opacity:.6}.inline-example-tb span.x-btn-icon.code{background-position:-2px -17px}.inline-example-tb span.x-btn-icon.preview{background-position:-3px -63px}.inline-example-tb span.x-btn-icon.copy{background-position:-2px -86px}.inline-example-tb .active span.x-btn-icon{background:url(../images/example-icons.png) no-repeat;filter:alpha(opacity=100);opacity:1}.inline-example-tb .active span.x-btn-icon.code{background-position:-30px -17px}.inline-example-tb .active span.x-btn-icon.preview{background-position:-31px -63px}.inline-example-tb .active span.x-btn-icon.copy{background-position:-30px -86px}.inline-example-editor{border:0}.inline-example-editor .x-panel-body{border:solid 1px #e8e8e8;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;-o-border-radius:5px;border-radius:5px;padding:5px 15px!important;background:#f7f7f7}.inline-example-editor .CodeMirror-scroll{height:auto}.inline-example-editor .CodeMirror pre{line-height:1.3em}.inline-example-cmp{margin-bottom:10px;padding-right:25px}.tablet.landscape{padding:83px 87px;background:url(../images/tablet-l.jpg) no-repeat}.tablet.portrait{padding:87px 80px;background:url(../images/tablet-p.jpg) no-repeat}.phone.landscape{padding:22px 79px;width:637px;height:367px;background:url(../images/phone-l.jpg) no-repeat}.phone.portrait{padding:78px 25px;width:368px;height:637px;background:url(../images/phone-p.jpg) no-repeat}.miniphone.landscape{padding:79px 22px 6px 25px;width:368px;height:303px;background:url(../images/phone-small-p.jpg) no-repeat}.miniphone.portrait{padding:22px 6px 25px 79px;width:303px;height:368px;background:url(../images/phone-small-l.jpg) no-repeat}.example-container h1{padding:15px 0!important}.example-toolbar{height:35px;padding:7px 5px;width:100%;border-radius:2px;border-color:#e4e4e4;border-width:1px!important;border-style:solid;background:#f1f1f1;background:-webkit-gradient(linear,left top,left bottom,from(#f1f1f1),to(#e9e9e9));background:-moz-linear-gradient(top,#f1f1f1,#e9e9e9);-webkit-box-shadow:rgba(255,255,255,0.5) 0 1px 0 0 inset;-moz-box-shadow:rgba(255,255,255,0.5) 0 1px 0 0 inset;box-shadow:rgba(255,255,255,0.5) 0 1px 0 0 inset}.example-toolbar .separator{border-left:1px solid #ccc;margin:0 10px;display:inline-block;float:left;width:1px}.comment-btn{background:url(../images/comment-bubble.png) no-repeat;color:#fff;text-align:center;line-height:16px;height:20px;text-shadow:1px 1px 0 #58b0e0;font-weight:bold;cursor:pointer}.comment-counter-small{cursor:pointer;background:url(../images/comment-bubble.png) no-repeat 2px -55px;padding-left:21px;font-weight:normal;font-size:11px}#center-container .comments-large-expander{clear:both}#center-container .comments-large-expander .comments-expander.open>a.side.toggleComments,#center-container .comments-large-expander .comments-expander.open>a.side.expandable{background:#ebf3fe}#center-container .comments-large-expander .comments-expander.open>a.side.toggleComments span,#center-container .comments-large-expander .comments-expander.open>a.side.expandable span{background:url(../images/member-expanded.gif) no-repeat 2px 12px}#center-container .comments-large-expander .comments-expander a.side{display:block;position:absolute;top:0;left:0;bottom:0;cursor:default!important}#center-container .comments-large-expander .comments-expander a.side span{display:block;width:15px;height:30px}#center-container .comments-large-expander .comments-expander a.side.expandable,#center-container .comments-large-expander .comments-expander a.side.toggleComments{cursor:pointer}#center-container .comments-large-expander .comments-expander a.side.expandable span,#center-container .comments-large-expander .comments-expander a.side.toggleComments span{background:url(../images/member-collapsed.gif) no-repeat 3px 13px}#center-container .comments-large-expander .comments-expander a.side.expandable:hover span,#center-container .comments-large-expander .comments-expander a.side.toggleComments:hover span{background:url(../images/member-hover.gif) no-repeat 3px 13px}#center-container .comments-large-expander .comments-expander.open>a.side.toggleComments.drop-target-hover{background:#94b773}#center-container .comments-large-expander h3.icon-comment{padding:0 0 5px 25px;margin:30px 0 5px 0;background:url(../images/comment-bubble.png) no-repeat 1px -26px}.comments-expander{color:#484848;border-width:1px 0;border-style:solid;border-color:#e0e0e0;position:relative;padding:0 0 10px 25px}.comments-expander.open>a.side.toggleComments.drop-target-hover{background:#94b773}.comments-expander.open{min-height:40px}.comments-expander .loading{font-weight:bold;background:url(../images/ajax-loader.gif) no-repeat 0 9px;padding:8px 0 0 25px}.comments-expander .name{padding:10px 0 0 0;display:block;font-weight:normal!important}.auth-form form{position:relative;display:inline-block}.auth-form form .username,.auth-form form .password{border:1px solid #bbb}.auth-form .before-text{display:inline-block;line-height:22px;margin:10px 10px 1px 4px;font-weight:bold}form.commentForm{position:relative;border:1px solid #c7d1d9;padding:10px 15px 15px 15px;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px;background:#ecf5fc;margin:10px 55px 0 0}form.commentForm.newComment{margin:20px 55px 10px 5px}form.commentForm .subscribe{margin-right:5px;color:#444}form.commentForm .subscribe .sep{color:#aaa}form.commentForm .subscribe input{color:#000;margin-right:5px;margin-left:5px}form.commentForm .com-meta{position:relative;margin-top:8px;text-align:right}form.commentForm .com-meta .toggleCommentGuide{font-weight:bold}form.commentForm img{-webkit-border-radius:2px;-moz-border-radius:2px;-ms-border-radius:2px;-o-border-radius:2px;border-radius:2px;position:absolute;left:0;margin-right:10px}form.commentForm .form-author{font-weight:normal;line-height:25px;position:absolute;left:35px;margin-bottom:10px}form.commentForm .CodeMirror,form.commentForm textarea{border:1px solid #ccc;background:#fff;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px;width:100%;padding:3px;border:auto}form.commentForm .CodeMirror .CodeMirror-scroll,form.commentForm textarea{height:auto;min-height:8em}form.commentForm input.sub{-webkit-box-shadow:#b3f33d 0 1px 0 0 inset;-moz-box-shadow:#b3f33d 0 1px 0 0 inset;box-shadow:#b3f33d 0 1px 0 0 inset;color:#fff;text-shadow:rgba(0,0,0,0.3) 0 -1px 0;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px;cursor:pointer;border:1px solid #264901;background:#91c632;background:-webkit-gradient(linear,left top,left bottom,from(#91c632),to(#519700));background:-moz-linear-gradient(top,#91c632,#519700);font-weight:bold;width:120px;margin-left:20px;padding:5px 8px;font-size:12px}form.commentForm input.sub:hover{background:#74b61e;background:-webkit-gradient(linear,left top,left bottom,from(#74b61e),to(#3d7e00));background:-moz-linear-gradient(top,#74b61e,#3d7e00)}form.commentForm input.sub.disabled{border-color:#707070;cursor:auto;background:#bbb;background:-webkit-gradient(linear,left top,left bottom,from(#bbb),to(#9c9c9c));background:-moz-linear-gradient(top,#bbb,#9c9c9c);-webkit-box-shadow:#d7d7d7 0 1px 0 0 inset;-moz-box-shadow:#d7d7d7 0 1px 0 0 inset;box-shadow:#d7d7d7 0 1px 0 0 inset}form.commentForm .commentGuideTxt{border-top:1px solid #c7d1d9;margin-top:15px;padding-top:10px}form.commentForm .commentGuideTxt .markdown.preview{float:left;width:310px}form.commentForm .commentGuideTxt .markdown.preview pre{border:0;padding:0;margin:0;line-height:1.5em;background:transparent}form.commentForm .commentGuideTxt .markdown.result{margin-left:320px;width:260px}form.commentForm .commentGuideTxt .markdown{background:#fff;padding:20px;position:relative;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;-o-border-radius:5px;border-radius:5px}form.commentForm .commentGuideTxt .markdown h4{position:absolute;top:0;right:0;padding:5px 10px;background:rgba(0,0,0,0.05)}form.commentForm .commentGuideTxt code{padding-left:5px}form.commentForm .commentGuideTxt ul{margin-top:5px}.comment{padding-top:10px;padding-left:2px}.comment.drop-target-hover{background:#94b773}.comment:hover>.com-meta>.top-right>.command,.comment:hover>.com-meta>.top-right>.vote,.comment:hover>.comments-replies-expander>.replies-button{-webkit-transition:opacity .2s linear;-moz-transition:opacity .2s linear;-o-transition:opacity .2s linear;filter:alpha(opacity=100);opacity:1}.comment .target{color:#666;font-size:90%;font-weight:normal}.comment .com-meta{position:relative;text-size:13px}.comment .com-meta img{-webkit-border-radius:2px;-moz-border-radius:2px;-ms-border-radius:2px;-o-border-radius:2px;border-radius:2px}.comment .com-meta img.drag-handle{cursor:all-scroll}.comment .com-meta .author{position:absolute;left:40px;font-weight:bold;top:2px;font-size:14px}.comment .com-meta .author.moderator{color:#3d7e00}.comment .com-meta .top-right{position:absolute;right:20px;top:0}.comment .com-meta .top-right .command,.comment .com-meta .top-right .time{display:inline-block;margin-left:10px}.comment .com-meta .top-right .tag{-webkit-border-radius:2px;-moz-border-radius:2px;-ms-border-radius:2px;-o-border-radius:2px;border-radius:2px;padding:0 1em;font-weight:bold;color:white;background:#484848;position:relative}.comment .com-meta .top-right .tag a{color:#484848;position:absolute;top:-5px;right:-5px;background:white;width:13px;height:13px;text-align:center;line-height:7px;border:2px solid #484848;-webkit-border-radius:7px;-moz-border-radius:7px;-ms-border-radius:7px;-o-border-radius:7px;border-radius:7px}.comment .com-meta .top-right .tag a:hover{border-color:red;color:red}.comment .com-meta .top-right .add-tag{color:#999;background:white;width:13px;height:13px;text-align:center;text-indent:-1px;line-height:9px;border:2px solid #999;-webkit-border-radius:7px;-moz-border-radius:7px;-ms-border-radius:7px;-o-border-radius:7px;border-radius:7px;filter:alpha(opacity=0);opacity:0;-webkit-transition:opacity .2s linear;-moz-transition:opacity .2s linear;-o-transition:opacity .2s linear}.comment .com-meta .top-right .add-tag:hover{border-color:#3d7e00;color:#3d7e00}.comment .com-meta .top-right .editComment,.comment .com-meta .top-right .deleteComment,.comment .com-meta .top-right .readComment{color:#999;filter:alpha(opacity=0);opacity:0;-webkit-transition:opacity .2s linear;-moz-transition:opacity .2s linear;-o-transition:opacity .2s linear}.comment .com-meta .top-right .readComment.read{color:white;-webkit-border-radius:2px;-moz-border-radius:2px;-ms-border-radius:2px;-o-border-radius:2px;border-radius:2px;background:#3d7e00;font-weight:bold;padding:0 1em;filter:alpha(opacity=50);opacity:.5}.comment .com-meta .top-right .time{color:#999;text-align:right;width:90px}.comment .com-meta .vote{position:absolute;left:2px;top:33px}.comment .com-meta .vote .voteCommentUp{position:absolute;display:block;width:20px;height:18px;background:url(../images/vote-arrows.png) no-repeat}.comment .com-meta .vote .voteCommentUp.selected{filter:alpha(opacity=40);opacity:.4;background-position:-22px 0}.comment .com-meta .vote .voteCommentUp:hover,.comment .com-meta .vote .voteCommentUp.selected:hover{filter:alpha(opacity=100);opacity:1;background-position:-22px 0}.comment .com-meta .vote .voteCommentDown{position:absolute;display:block;width:20px;height:18px;top:36px;background:url(../images/vote-arrows.png) no-repeat 0 -35px}.comment .com-meta .vote .voteCommentDown.selected{background-position:-22px -35px;filter:alpha(opacity=40);opacity:.4}.comment .com-meta .vote .voteCommentDown:hover,.comment .com-meta .vote .voteCommentDown.selected:hover{filter:alpha(opacity=100);opacity:1;background-position:-22px -35px}.comment .com-meta .vote .score{position:absolute;font-weight:bold;width:20px;top:15px;color:#aaa;text-align:center;font-size:16px}.comment .content{min-height:65px;padding:0 0 30px 40px;border-bottom:1px solid #eee}.comment .comments-replies-expander .replies-button{position:relative;top:-20px;height:0;display:block;padding-left:40px;font-weight:bold;filter:alpha(opacity=0);opacity:0;-webkit-transition:opacity .2s linear;-moz-transition:opacity .2s linear;-o-transition:opacity .2s linear;color:#94b773}.comment .comments-replies-expander .replies-button.with-replies{filter:alpha(opacity=100);opacity:1}.comment .comments-replies-expander .replies-button:hover{color:#3d7e00}.comment .comments-replies-expander .comments-list-with-form{padding-left:1em;border-left:1em solid #ebf3fe}.comment .deleted-comment{text-align:center;background:#ffd76e;border:1px solid #e1ba53;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px;font-weight:bold}.comments-tageditor{padding-top:10px}.comments-tageditor-boundlist .x-boundlist-item-over{background:#94b773}#commentindex{padding:5px}#commentindex .comments-full-list .comments-list{margin:0 auto;max-width:1000px}#commentindex .comments-full-list .x-mask{opacity:.9;background:white url(../images/ajax-loader.gif) no-repeat center}.recent-comments-pager{display:block;padding:10px 0 5px 35px;position:relative;color:gray}.recent-comments-pager span{display:block;position:absolute;left:0;top:5px;width:27px;height:28px;background:url(../images/comment.png) no-repeat 0 -25px}.recent-comments-pager:hover span{background-position:-59px -25px}.comments-header-menu h1 a{margin-right:1em;color:gray}.comments-header-menu h1 a:hover{filter:alpha(opacity=70);opacity:.7}.comments-header-menu h1 a.selected{color:#66ab16}.comments-users .x-panel-body .users-list ul,.comments-users .x-panel-body .users-list li{margin:0;padding:0;list-style:none}.comments-users .x-panel-body .users-list li{height:30px;-webkit-border-radius:2px;-moz-border-radius:2px;-ms-border-radius:2px;-o-border-radius:2px;border-radius:2px;cursor:pointer}.comments-users .x-panel-body .users-list li:hover{background:#eee}.comments-users .x-panel-body .users-list li.x-item-selected{background:#94b773}.comments-users .x-panel-body .users-list .score{display:block;float:left;width:40px;padding:0 5px;line-height:30px;font-weight:bold;color:#aaa;text-align:center;font-size:16px}.comments-users .x-panel-body .users-list img{-webkit-border-radius:2px;-moz-border-radius:2px;-ms-border-radius:2px;-o-border-radius:2px;border-radius:2px;display:block;float:left;margin-top:2px;margin-right:10px}.comments-users .x-panel-body .users-list .username{line-height:30px;font-weight:bold}.comments-users .x-panel-body .users-list .username.moderator{color:#3d7e00}.comments-users .x-panel-body .users-list .x-item-selected .score{color:#484848}.comments-users .x-panel-body .users-list .x-item-selected .username.moderator{color:#083772}.comments-toplist .x-panel-body .top-list ul,.comments-toplist .x-panel-body .top-list li{margin:0;padding:0;list-style:none}.comments-toplist .x-panel-body .top-list li{height:30px;-webkit-border-radius:2px;-moz-border-radius:2px;-ms-border-radius:2px;-o-border-radius:2px;border-radius:2px;cursor:pointer}.comments-toplist .x-panel-body .top-list li:hover{background:#eee}.comments-toplist .x-panel-body .top-list li.x-item-selected{background:#94b773}.comments-toplist .x-panel-body .top-list .score{display:block;float:left;width:40px;padding:0 5px;line-height:30px;font-weight:bold;color:#aaa;text-align:center;font-size:16px}.comments-toplist .x-panel-body .top-list .x-item-selected .score{color:#484848}.comments-toplist .x-panel-body .top-list .text{float:left;width:250px;overflow:hidden;line-height:30px;font-weight:bold}.comments-filter-field table{border-style:solid;border-color:#bebebe;border-width:1px;background:white url("../images/text-bg.gif") repeat-x 0 0}.comments-filter-field .x-form-trigger.reset{background:url(../images/x12.png) no-repeat 2px 3px;padding:0;margin:0;border:0}.comments-filter-field input{background:transparent;border:0}#extjs-welcome{-webkit-font-smoothing:antialiased;color:#434343;font:14px/1.4em "Helvetica Neue","Helvetica","Arial","Lucida Grande",sans-serif}#extjs-welcome .logo{background:url(../images/logo-screen-noglow.png) no-repeat;width:155px;height:72px;margin:0 0 0 -13px;position:relative;z-index:99}#extjs-welcome .logo a{display:block;width:100%;height:100%;text-indent:-9999px}#extjs-welcome a{color:#126499}#extjs-welcome ul{font-size:13px;margin-bottom:1em;margin-left:18px}#extjs-welcome ul li{list-style:square}#extjs-welcome h1,#extjs-welcome h2{text-rendering:optimizeLegibility;text-shadow:rgba(255,255,255,0.8) 0 1px 1px}#extjs-welcome h2{color:#314e64;line-height:1.0em;margin-top:60px;margin-bottom:8px;font-size:25px;font-weight:normal;font-family:"Exo",sans-serif;font-weight:normal}#extjs-welcome h2 strong{font-size:1.2em;color:#4c8e0e}#extjs-welcome h3{font-size:16px;line-height:20px;margin-bottom:4px;margin-top:1em;font-weight:bold;color:#314e64;padding:0}#extjs-welcome p{margin-bottom:1em}#extjs-welcome p.intro{color:#314e64;font-size:16px;line-height:22px}#extjs-welcome .auto_columns{width:100%}#extjs-welcome .auto_columns::after{clear:both;content:'.';display:block;height:0;visibility:hidden}#extjs-welcome .auto_columns .auto_columns p{font-size:13px;line-height:16px}#extjs-welcome .two .column{width:48%;padding-right:2%;float:left;position:relative;box-sizing:content-box}#extjs-welcome a.button-link{font-family:"Helvetica Neue",Helvetica,Arial,"Lucida Grande",sans-serif;border-color:#274807!important;background:#4c8e0e url(../images/link-green-standard.png) 0 0 repeat-x;color:white;-webkit-background-clip:padding-box;border:1px solid #477a09;font-size:15px;font-weight:bold;line-height:1.0em;padding:6px 8px 9px;text-decoration:none;text-shadow:rgba(0,0,0,0.3) 0 -1px 0;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px;display:inline-block}#extjs-welcome a.button-link:active{position:relative;top:1px}#extjs-welcome a.button-link:hover,#extjs-welcome a.button-link:focus,#extjs-welcome a.button-link:active{background:#38690a url(../images/link-green-standard-over.png) 0 0 repeat-x}#extjs-welcome a.more-icon{background:url(../images/more.png) no-repeat right center;font-size:12px;font-weight:bold;padding-right:16px}#extjs-welcome .button-group a{margin-right:12px}#extjs-welcome .right{padding-top:140px;overflow:hidden}#extjs-welcome .content{margin:0 auto;text-align:left;width:900px;padding-top:30px}#extjs-welcome section{padding:36px 18px;background:white url(../images/welcome-bg-js4.gif) left bottom no-repeat;min-height:300px;position:relative}#extjs-welcome .meta{color:#8f8f8f}#extjs-welcome .inline-social{text-indent:-9999px;margin-top:6px}#extjs-welcome .inline-social li{display:block;float:right;margin-bottom:8px}#extjs-welcome .inline-social li a{color:#314e64;display:block;line-height:1.0em;width:16px;height:16px;margin-right:4px;background-position:top left;background-repeat:no-repeat}#extjs-welcome .inline-social li a.facebook{background:url(../images/facebook-16.png) no-repeat}#extjs-welcome .inline-social li a.linkedin{background:url(../images/linkedin-16.png) no-repeat}#extjs-welcome .inline-social li a.tumblr{background:url(../images/tumblr-16.png) no-repeat}#extjs-welcome .inline-social li a.twitter{background:url(../images/twitter-16.png) no-repeat}#extjs-welcome .inline-social li a.vimeo{background:url(../images/vimeo-16.png) no-repeat}#extjs-welcome .inline-social li a.rss{background:url(../images/rss-16.png) no-repeat}#extjs-welcome .feature-img{position:absolute;right:20px;top:-100px}#extjs-welcome footer{color:#b9d4e7;padding:8px 18px;font-size:13px}#extjs-welcome .news{width:860px;margin:20px auto}#extjs-welcome .news h1{padding-bottom:15px}#extjs-welcome .news .l{float:left;width:450px}#extjs-welcome .news .r{margin-left:470px}#extjs-welcome .news .item{padding-bottom:3px}#extjs-welcome .news .date{color:#666;font-size:.8em;width:90px;display:block;float:left;font-family:"Menlo","Courier New","Courier",monospace}.doc-test-ready{font-weight:bold;color:#333}.doc-test-failure{font-weight:bold;color:red}.doc-test-success{font-weight:bold;color:green}.CodeMirror{line-height:1em;font-family:monospace}.CodeMirror-scroll{overflow:auto;height:300px;position:relative;outline:0}.CodeMirror-gutter{position:absolute;left:0;top:0;z-index:10;background-color:#f7f7f7;border-right:1px solid #eee;min-width:2em;height:100%}.CodeMirror-gutter-text{color:#aaa;text-align:right;padding:.4em .2em .4em .4em;white-space:pre!important}.CodeMirror-lines{padding:.4em;white-space:pre}.CodeMirror pre{-moz-border-radius:0;-webkit-border-radius:0;-o-border-radius:0;border-radius:0;border-width:0;margin:0;padding:0;background:transparent;font-family:inherit;font-size:inherit;padding:0;margin:0;white-space:pre;word-wrap:normal;line-height:inherit}.CodeMirror-wrap pre{word-wrap:break-word;white-space:pre-wrap;word-break:normal}.CodeMirror-wrap .CodeMirror-scroll{overflow-x:hidden}.CodeMirror textarea{outline:none!important}.CodeMirror pre.CodeMirror-cursor{z-index:10;position:absolute;visibility:hidden;border-left:1px solid black;border-right:0;width:0}.CodeMirror-focused pre.CodeMirror-cursor{visibility:visible}div.CodeMirror-selected{background:#d9d9d9}.CodeMirror-focused div.CodeMirror-selected{background:#d7d4f0}.CodeMirror-searching{background:#ffa;background:rgba(255,255,0,.4)}.cm-s-default span.cm-keyword{color:#708}.cm-s-default span.cm-atom{color:#219}.cm-s-default span.cm-number{color:#164}.cm-s-default span.cm-def{color:#00f}.cm-s-default span.cm-variable{color:black}.cm-s-default span.cm-variable-2{color:#05a}.cm-s-default span.cm-variable-3{color:#085}.cm-s-default span.cm-property{color:black}.cm-s-default span.cm-operator{color:black}.cm-s-default span.cm-comment{color:#a50}.cm-s-default span.cm-string{color:#a11}.cm-s-default span.cm-string-2{color:#f50}.cm-s-default span.cm-meta{color:#555}.cm-s-default span.cm-error{color:#f00}.cm-s-default span.cm-qualifier{color:#555}.cm-s-default span.cm-builtin{color:#30a}.cm-s-default span.cm-bracket{color:#cc7}.cm-s-default span.cm-tag{color:#170}.cm-s-default span.cm-attribute{color:#00c}.cm-s-default span.cm-header{color:#a0a}.cm-s-default span.cm-quote{color:#090}.cm-s-default span.cm-hr{color:#999}.cm-s-default span.cm-link{color:#00c}span.cm-header,span.cm-strong{font-weight:bold}span.cm-em{font-style:italic}span.cm-emstrong{font-style:italic;font-weight:bold}span.cm-link{text-decoration:underline}div.CodeMirror span.CodeMirror-matchingbracket{color:#0f0}div.CodeMirror span.CodeMirror-nonmatchingbracket{color:#f22}.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} \ No newline at end of file diff --git a/docs/resources/css/reset.css b/docs/resources/css/reset.css new file mode 100644 index 0000000..9d68206 --- /dev/null +++ b/docs/resources/css/reset.css @@ -0,0 +1,59 @@ +/* line 1, ../sass/reset.scss */ +html { color: #000; background: #FFF; } + +/* line 1, ../sass/reset.scss */ +body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, code, form, fieldset, legend, input, button, textarea, p, blockquote, th, td { margin: 0; padding: 0; } + +/* line 1, ../sass/reset.scss */ +table { border-collapse: collapse; border-spacing: 0; } + +/* line 1, ../sass/reset.scss */ +fieldset, img { border: 0; } + +/* line 1, ../sass/reset.scss */ +address, caption, cite, code, dfn, em, strong, th, var, optgroup { font-style: inherit; font-weight: inherit; } + +/* line 1, ../sass/reset.scss */ +del, ins { text-decoration: none; } + +/* line 1, ../sass/reset.scss */ +li { list-style: none; } + +/* line 1, ../sass/reset.scss */ +caption, th { text-align: left; } + +/* line 1, ../sass/reset.scss */ +h1, h2, h3, h4, h5, h6 { font-size: 100%; font-weight: normal; } + +/* line 1, ../sass/reset.scss */ +q:before, q:after { content: ''; } + +/* line 1, ../sass/reset.scss */ +abbr, acronym { border: 0; font-variant: normal; } + +/* line 1, ../sass/reset.scss */ +sup { vertical-align: baseline; } + +/* line 1, ../sass/reset.scss */ +sub { vertical-align: baseline; } + +/* line 1, ../sass/reset.scss */ +legend { color: #000; } + +/* line 1, ../sass/reset.scss */ +input, button, textarea, select, optgroup, option { font-family: inherit; font-size: inherit; font-style: inherit; font-weight: inherit; } + +/* line 1, ../sass/reset.scss */ +input, button, textarea, select { *font-size: 100%; } + +/* line 1, ../sass/reset.scss */ +body { font: 13px/1.231 HelveticaNeue, helvetica, arial, clean, sans-serif !important; *font-size: small; *font: x-small; } + +/* line 1, ../sass/reset.scss */ +select, input, button, textarea, button { font: 99% HelveticaNeue,helvetica,arial,clean,sans-serif; } + +/* line 1, ../sass/reset.scss */ +table { font-size: inherit; font: 100%; } + +/* line 1, ../sass/reset.scss */ +pre, code, kbd, samp, tt { font-family: monospace; *font-size: 108%; line-height: 100%; } diff --git a/docs/resources/css/scrollbars.css b/docs/resources/css/scrollbars.css new file mode 100644 index 0000000..190869b --- /dev/null +++ b/docs/resources/css/scrollbars.css @@ -0,0 +1,17 @@ +/* line 2, ../sass/scrollbars.scss */ +.iScroll ::-webkit-scrollbar, .iScroll::-webkit-scrollbar { width: 6px; height: 9px; } + +/* line 9, ../sass/scrollbars.scss */ +.iScroll ::-webkit-scrollbar-button:start:decrement, .iScroll ::-webkit-scrollbar-button:end:increment, .iScroll::-webkit-scrollbar-button:start:decrement, .iScroll::-webkit-scrollbar-button:end:increment { display: block; height: 0; background-color: transparent; } + +/* line 15, ../sass/scrollbars.scss */ +.iScroll ::-webkit-scrollbar-track-piece, .iScroll::-webkit-scrollbar-track-piece { margin: 10px 0; -webkit-border-radius: 0; -webkit-border-bottom-right-radius: 4px; -webkit-border-bottom-left-radius: 4px; } + +/* line 22, ../sass/scrollbars.scss */ +.iScroll ::-webkit-scrollbar-thumb:vertical, .iScroll::-webkit-scrollbar-thumb:vertical { height: 50px; background-color: rgba(0, 0, 0, 0.12); -webkit-border-radius: 4px; } + +/* line 28, ../sass/scrollbars.scss */ +.iScroll ::-webkit-scrollbar-thumb:horizontal, .iScroll::-webkit-scrollbar-thumb:horizontal { width: 50px; background-color: rgba(0, 0, 0, 0.12); -webkit-border-radius: 4px; } + +/* line 36, ../sass/scrollbars.scss */ +#treecontainer .iScroll ::-webkit-scrollbar-thumb:vertical, #treecontainer .iScroll::-webkit-scrollbar-thumb:vertical { height: 50px; background-color: rgba(0, 0, 0, 0.06); -webkit-border-radius: 4px; } diff --git a/docs/resources/css/welcome.css b/docs/resources/css/welcome.css new file mode 100644 index 0000000..8975af0 --- /dev/null +++ b/docs/resources/css/welcome.css @@ -0,0 +1,84 @@ +/* line 17, ../sass/welcome.scss */ +#extjs-welcome { -webkit-font-smoothing: antialiased; color: #434343; font: 14px/1.4em "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif; } +/* line 22, ../sass/welcome.scss */ +#extjs-welcome .logo { background: url(../images/logo-screen-noglow.png) no-repeat; width: 155px; height: 72px; margin: 0 0 0 -13px; position: relative; z-index: 99; } +/* line 30, ../sass/welcome.scss */ +#extjs-welcome .logo a { display: block; width: 100%; height: 100%; text-indent: -9999px; } +/* line 38, ../sass/welcome.scss */ +#extjs-welcome a { color: #126499; } +/* line 42, ../sass/welcome.scss */ +#extjs-welcome ul { font-size: 13px; margin-bottom: 1em; margin-left: 18px; } +/* line 46, ../sass/welcome.scss */ +#extjs-welcome ul li { list-style: square; } +/* line 51, ../sass/welcome.scss */ +#extjs-welcome h1, #extjs-welcome h2 { text-rendering: optimizeLegibility; text-shadow: rgba(255, 255, 255, 0.8) 0 1px 1px; } +/* line 56, ../sass/welcome.scss */ +#extjs-welcome h2 { color: #314e64; line-height: 1.0em; margin-top: 60px; margin-bottom: 8px; font-size: 28px; font-weight: normal; font-family: "klavika-web-1", "klavika-web-2", sans-serif; font-weight: normal; } +/* line 67, ../sass/welcome.scss */ +#extjs-welcome h2 strong { font-size: 1.2em; color: #4c8e0e; } +/* line 72, ../sass/welcome.scss */ +#extjs-welcome h3 { font-size: 16px; line-height: 20px; margin-bottom: 4px; margin-top: 1em; font-weight: bold; color: #314e64; padding: 0; } +/* line 82, ../sass/welcome.scss */ +#extjs-welcome p { margin-bottom: 1em; } +/* line 86, ../sass/welcome.scss */ +#extjs-welcome p.intro { color: #314e64; font-size: 16px; line-height: 22px; } +/* line 92, ../sass/welcome.scss */ +#extjs-welcome .auto_columns { width: 100%; } +/* line 94, ../sass/welcome.scss */ +#extjs-welcome .auto_columns::after { clear: both; content: '.'; display: block; height: 0px; visibility: hidden; } +/* line 101, ../sass/welcome.scss */ +#extjs-welcome .auto_columns .auto_columns p { font-size: 13px; line-height: 16px; } +/* line 107, ../sass/welcome.scss */ +#extjs-welcome .two .column { width: 48%; padding-right: 2%; float: left; position: relative; box-sizing: content-box; } +/* line 116, ../sass/welcome.scss */ +#extjs-welcome a.button-link { font-family: "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif; border-color: #274807 !important; background: #4c8e0e url(../images/link-green-standard.png) 0 0 repeat-x; color: white; -webkit-background-clip: padding-box; border: 1px solid #477A09; font-size: 15px; font-weight: bold; line-height: 1.0em; padding: 6px 8px 9px; text-decoration: none; text-shadow: rgba(0, 0, 0, 0.3) 0 -1px 0; -moz-border-radius: 3px; -webkit-border-radius: 3px; -o-border-radius: 3px; -ms-border-radius: 3px; -khtml-border-radius: 3px; border-radius: 3px; display: inline-block; } +/* line 136, ../sass/welcome.scss */ +#extjs-welcome a.button-link:active { position: relative; top: 1px; } +/* line 140, ../sass/welcome.scss */ +#extjs-welcome a.button-link:hover, #extjs-welcome a.button-link:focus, #extjs-welcome a.button-link:active { background: #38690a url(../images/link-green-standard-over.png) 0 0 repeat-x; } +/* line 145, ../sass/welcome.scss */ +#extjs-welcome a.more-icon { background: url(../images/more.png) no-repeat right center; font-size: 12px; font-weight: bold; padding-right: 16px; } +/* line 152, ../sass/welcome.scss */ +#extjs-welcome .button-group a { margin-right: 12px; } +/* line 156, ../sass/welcome.scss */ +#extjs-welcome .right { padding-top: 140px; overflow: hidden; } +/* line 161, ../sass/welcome.scss */ +#extjs-welcome .content { margin: 0 auto; text-align: left; width: 900px; padding-top: 30px; } +/* line 168, ../sass/welcome.scss */ +#extjs-welcome section { padding: 36px 18px; background: white url(../images/welcome-bg-js4.gif) left bottom no-repeat; min-height: 300px; position: relative; } +/* line 175, ../sass/welcome.scss */ +#extjs-welcome .meta { color: #8F8F8F; } +/* line 179, ../sass/welcome.scss */ +#extjs-welcome .inline-social { text-indent: -9999px; margin-top: 6px; } +/* line 185, ../sass/welcome.scss */ +#extjs-welcome .inline-social li { display: block; float: right; margin-bottom: 8px; } +/* line 190, ../sass/welcome.scss */ +#extjs-welcome .inline-social li a { color: #314e64; display: block; line-height: 1.0em; width: 16px; height: 16px; margin-right: 4px; background-position: top left; background-repeat: no-repeat; } +/* line 201, ../sass/welcome.scss */ +#extjs-welcome .inline-social li a.facebook { background: url(../images/facebook-16.png) no-repeat; } +/* line 202, ../sass/welcome.scss */ +#extjs-welcome .inline-social li a.linkedin { background: url(../images/linkedin-16.png) no-repeat; } +/* line 203, ../sass/welcome.scss */ +#extjs-welcome .inline-social li a.tumblr { background: url(../images/tumblr-16.png) no-repeat; } +/* line 204, ../sass/welcome.scss */ +#extjs-welcome .inline-social li a.twitter { background: url(../images/twitter-16.png) no-repeat; } +/* line 205, ../sass/welcome.scss */ +#extjs-welcome .inline-social li a.vimeo { background: url(../images/vimeo-16.png) no-repeat; } +/* line 206, ../sass/welcome.scss */ +#extjs-welcome .inline-social li a.rss { background: url(../images/rss-16.png) no-repeat; } +/* line 211, ../sass/welcome.scss */ +#extjs-welcome .feature-img { position: absolute; right: 20px; top: -100px; } +/* line 217, ../sass/welcome.scss */ +#extjs-welcome footer { color: #b9d4e7; padding: 8px 18px; font-size: 13px; } +/* line 223, ../sass/welcome.scss */ +#extjs-welcome .news { width: 860px; margin: 20px auto; } +/* line 226, ../sass/welcome.scss */ +#extjs-welcome .news h1 { padding-bottom: 15px; } +/* line 229, ../sass/welcome.scss */ +#extjs-welcome .news .l { float: left; width: 450px; } +/* line 233, ../sass/welcome.scss */ +#extjs-welcome .news .r { margin-left: 470px; } +/* line 236, ../sass/welcome.scss */ +#extjs-welcome .news .item { padding-bottom: 3px; } +/* line 239, ../sass/welcome.scss */ +#extjs-welcome .news .date { color: #666; font-size: 0.8em; width: 50px; display: block; float: left; font-family: "Menlo", "Courier New", Courier, monospace; } diff --git a/docs/resources/css/welcome_ie6.css b/docs/resources/css/welcome_ie6.css new file mode 100644 index 0000000..83e8b32 --- /dev/null +++ b/docs/resources/css/welcome_ie6.css @@ -0,0 +1,72 @@ +/* +Syntax error: Undefined variable: "$scope-reset-css". + on line 1 of /Users/renesaarsoo/work/jsduck/template/extjs/resources/themes/stylesheets/ext4/default/core/_reset.scss + from line 1 of /Users/renesaarsoo/work/jsduck/template/extjs/resources/themes/stylesheets/ext4/default/_core.scss + from line 10 of /Users/renesaarsoo/work/jsduck/template/resources/sass/welcome_ie6.scss + +1: /Users/renesaarsoo/work/jsduck/template/resources/sass/welcome_ie6.scss + +Backtrace: +/Users/renesaarsoo/work/jsduck/template/extjs/resources/themes/stylesheets/ext4/default/core/_reset.scss:1 +/Users/renesaarsoo/work/jsduck/template/extjs/resources/themes/stylesheets/ext4/default/_core.scss:1 +/Users/renesaarsoo/work/jsduck/template/resources/sass/welcome_ie6.scss:10 +/Library/Ruby/Gems/1.8/gems/sass-3.1.7/lib/sass/../sass/script/variable.rb:50:in `_perform' +/Library/Ruby/Gems/1.8/gems/sass-3.1.7/lib/sass/../sass/script/node.rb:40:in `perform' +/Library/Ruby/Gems/1.8/gems/sass-3.1.7/lib/sass/../sass/tree/visitors/perform.rb:126:in `visit_if' +/Library/Ruby/Gems/1.8/gems/sass-3.1.7/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.1.7/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.1.7/lib/sass/../sass/tree/visitors/perform.rb:18:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.1.7/lib/sass/../sass/tree/visitors/perform.rb:145:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.1.7/lib/sass/../sass/tree/visitors/perform.rb:145:in `map' +/Library/Ruby/Gems/1.8/gems/sass-3.1.7/lib/sass/../sass/tree/visitors/perform.rb:145:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.1.7/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.1.7/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.1.7/lib/sass/../sass/tree/visitors/perform.rb:18:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.1.7/lib/sass/../sass/tree/visitors/perform.rb:145:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.1.7/lib/sass/../sass/tree/visitors/perform.rb:145:in `map' +/Library/Ruby/Gems/1.8/gems/sass-3.1.7/lib/sass/../sass/tree/visitors/perform.rb:145:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.1.7/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.1.7/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.1.7/lib/sass/../sass/tree/visitors/perform.rb:18:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.1.7/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.1.7/lib/sass/../sass/tree/visitors/base.rb:53:in `map' +/Library/Ruby/Gems/1.8/gems/sass-3.1.7/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.1.7/lib/sass/../sass/tree/visitors/perform.rb:27:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.1.7/lib/sass/../sass/tree/visitors/perform.rb:39:in `with_environment' +/Library/Ruby/Gems/1.8/gems/sass-3.1.7/lib/sass/../sass/tree/visitors/perform.rb:26:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.1.7/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.1.7/lib/sass/../sass/tree/visitors/perform.rb:47:in `visit_root' +/Library/Ruby/Gems/1.8/gems/sass-3.1.7/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.1.7/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.1.7/lib/sass/../sass/tree/visitors/perform.rb:18:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.1.7/lib/sass/../sass/tree/visitors/perform.rb:7:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.1.7/lib/sass/../sass/tree/visitors/perform.rb:7:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.1.7/lib/sass/../sass/tree/root_node.rb:20:in `render' +/Library/Ruby/Gems/1.8/gems/sass-3.1.7/lib/sass/../sass/engine.rb:293:in `_render' +/Library/Ruby/Gems/1.8/gems/sass-3.1.7/lib/sass/../sass/engine.rb:240:in `render' +/Library/Ruby/Gems/1.8/gems/compass-0.11.5/lib/compass/compiler.rb:136:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.11.5/lib/compass/compiler.rb:122:in `timed' +/Library/Ruby/Gems/1.8/gems/compass-0.11.5/lib/compass/compiler.rb:135:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.11.5/lib/compass/logger.rb:45:in `red' +/Library/Ruby/Gems/1.8/gems/compass-0.11.5/lib/compass/compiler.rb:134:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.11.5/lib/compass/compiler.rb:114:in `compile_if_required' +/Library/Ruby/Gems/1.8/gems/compass-0.11.5/lib/compass/compiler.rb:99:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.11.5/lib/compass/compiler.rb:97:in `each' +/Library/Ruby/Gems/1.8/gems/compass-0.11.5/lib/compass/compiler.rb:97:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.11.5/lib/compass/compiler.rb:122:in `timed' +/Library/Ruby/Gems/1.8/gems/compass-0.11.5/lib/compass/compiler.rb:96:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.11.5/lib/compass/commands/update_project.rb:37:in `perform' +/Library/Ruby/Gems/1.8/gems/compass-0.11.5/lib/compass/commands/base.rb:18:in `execute' +/Library/Ruby/Gems/1.8/gems/compass-0.11.5/lib/compass/commands/project_base.rb:19:in `execute' +/Library/Ruby/Gems/1.8/gems/compass-0.11.5/lib/compass/exec/sub_command_ui.rb:43:in `perform!' +/Library/Ruby/Gems/1.8/gems/compass-0.11.5/lib/compass/exec/sub_command_ui.rb:15:in `run!' +/Library/Ruby/Gems/1.8/gems/compass-0.11.5/bin/compass:25 +/Library/Ruby/Gems/1.8/gems/compass-0.11.5/bin/compass:39:in `call' +/Library/Ruby/Gems/1.8/gems/compass-0.11.5/bin/compass:39 +/usr/bin/compass:19:in `load' +/usr/bin/compass:19 +*/ +body:before { + white-space: pre; + font-family: monospace; + content: "Syntax error: Undefined variable: \"$scope-reset-css\".\A on line 1 of /Users/renesaarsoo/work/jsduck/template/extjs/resources/themes/stylesheets/ext4/default/core/_reset.scss\A from line 1 of /Users/renesaarsoo/work/jsduck/template/extjs/resources/themes/stylesheets/ext4/default/_core.scss\A from line 10 of /Users/renesaarsoo/work/jsduck/template/resources/sass/welcome_ie6.scss\A \A 1: /Users/renesaarsoo/work/jsduck/template/resources/sass/welcome_ie6.scss"; } diff --git a/docs/resources/images/ajax-loader.gif b/docs/resources/images/ajax-loader.gif new file mode 100644 index 0000000000000000000000000000000000000000..e14a0487dc604ad2f12a17257bc8f21af3c3257e GIT binary patch literal 1849 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 J=p$OI{{VRG7AgP$ literal 0 HcmV?d00001 diff --git a/docs/resources/images/arrows.png b/docs/resources/images/arrows.png new file mode 100644 index 0000000000000000000000000000000000000000..499d088e9e6b4354e3ee24f887de53e75f5578b2 GIT binary patch literal 1187 zcmbVMPi)&%7<XEPpjB5*(?BZ|Jb8r+jqPWrPV6>ooH*X1Ep3-%S`eCsW51-PwV!9d z61Nvtq=`&IXcAmNnzWrZaR4E0mu-S+8WJFG<S>DDpdf@aq_G1UAf)o#CWS+_1D5Rf zzW2W0@B8m_^RtIWhQ@{%h8Zax)+=<~Pv6m}o}}MLbDvzI%RW-9lPYeKwizHsvvC7~ zl54h51)28B>95c<!wfc^TAkF(M^y{EoEhtIk?T`5!%WXazG*EY0vf30cv<$rjn7%& z*je_(WLYTt1+?HCUJX!nb+%@$E?SDs&Kv~OkxB_%L`)F5OJ1l(S$30GrTh4pXThcl zS<JFqPSwlvpnwAeCOIK#39<lW$U!NUPNye;C_sT1L>`Jsm{uiG6$H?GSZXb>n`%Wj zdbX&PWfutXRi1CR+gw}XaM0qRq9`$kC?=^!GF<V986~~&K%YTJp%pkjaj*wsMzevJ zNtUIaZiV3b<?=SM7xofGQ^rT8&qGe&T{n(vQ#<^sgH`YKOHIAMq6w;^n}i^=KaG zgK6#_Zzxuz-l%hdLyKZA>DXF!kw;2;mZdkG?bxc2Qi__c6%|bs<P3ybUdR}FN>3Y5 z($a$7=hz9W$q=SQC`v_9g0Lv$4TI8%azT-0MUo4BY{?6W=~<|6*P(WMSom11S_qIy za8Sc|sow$f3z*<=0sEj(odjjma=ciM%d-`&jsoWmWE%l?!DfC{X9xR=GAZeXp+Rvg z?u?evbc1FhpHg%Krq~|V{y#b6sWW`s9RF#S{t@lKc)Q*DRM;LK<k5)<=xDI-UVKEy z>f4g8)uQhje{XEe3}zF11}`M;C2j5JiIdmK*!hnV>+SB<aaA3=JSwgIA-~^z>Gp(t z<*$v%KX?i39cY}N;}f60oEUyHaXRt*pHsQ%3wJZ!f%TKQo4Y#4f4lPi&=+@eiSDuS z7eCB_&xY>&5Or$<4^K7r=ifQYpUDh&POKjb_jOvk_jHdwv3_}P=lEL0?cP<Gy;r^X z@X*z>_t)yrz5eC1Y;|L5{K%{4zJ5FBk95Md=!Fkn@t*0n9(1nFj~@Byy@A|n`^W07 g%&)`v3^T}l^GoLU<kZu*;@?K8IIDl0f9<V*0E7F2SpWb4 literal 0 HcmV?d00001 diff --git a/docs/resources/images/class-m.png b/docs/resources/images/class-m.png new file mode 100644 index 0000000000000000000000000000000000000000..c8e8c63f907fc43158475250bcdb94fcdfa3fc89 GIT binary patch literal 5910 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 GqW%X?0KIAe literal 0 HcmV?d00001 diff --git a/docs/resources/images/comment-bubble.png b/docs/resources/images/comment-bubble.png new file mode 100644 index 0000000000000000000000000000000000000000..b092c31faf3e3174d94ce7ba92fe35660a3c73b5 GIT binary patch literal 1250 zcmV<81ReW{P)<h;3K|Lk000e1NJLTq000&M005H+1^@s6ipl9v00001b5ch_0Itp) z=>Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2ipoB z4-Ex?!?V5s00d%5L_t(&-tC#sYujcR$G^4}+ez%Kq)XWk5){}7406h8ko*lZJsApx zLf*p$h5Z4A9k;)rP;}^NVCW7x?zB@*WrIRk52H}I*$lN^$%=kN{_*PFA(q|PvL(HG zHRz%T1h)11!|O-V^L+h$fs`T#0QD2~YXCn3*cHG$15lU7Z=Qa&{qgQ6x7HI=|9)rg z|JBl-Nc9u7Qpo4_XmK4)JNb4C<#hnsz67Aaki)<eliSgl<EH{169e`+>4Rw+U<SYw zlw;<lv}2Z5j<186KrsG;R8WA4yLe-8zEP7c#@L&IYlAW*K8CIX0I&U2+#g(Yp8?&i z=ry5=Lb)<|PhAVtH38rafa4tRPp+S+zt4R1OQR<LgxQP75eNCo9e7ro0(kU3G$|OK z)z$#qYt-alXU`=8zXb42qb9!++SBSMY6V$j@js8;%uUau;m!cm8#VdmvPU|$hV!)= zfTKV#uZHur+Oi_VrQt>k*3VV9xJ`9YcbB3rOb(8j3NK137)L4?ODV@uz!WULa9IS- z`!9Uq;$FrRF7D-(KnY95eWw>JTvk@ASXrI6x#6XS;pJ4IEUgtW1<LbAP5y4t`Z(?X zpm^(3uu&gFOM4CAhh>ZNaV}JzjWDz{W2`4S!oaT4834H3sL5xcn}}Jzj~g}lH_^)H z$E+{L4pmiImW3=rBv!!Fwh!PjfWv^(e*pNtQIk)3%I4#}&o&P~zg?X>@wR6l{CVDe z3gAl~@D5#Bg=)>8C>GZNbid#(^v(#7r0CKrGMF*|93zLYdfagw7efzohh^J=-8m}w z*zCPK?flckg|1=b0k&mAd)vZ=)_nos0oUy|bL%zBA8qZpM#lhf6xN>N_B@(a&wH3g z&-*qjR9W1})}$y(dd`h3%e$MKn~ABNPG|r8{QQZeC`u)t&+kc+gkG<g7+fqC0pQBH z0RT#=klgy5>F{6B$lK>g(|?#^l&8;0AN=8^Le!40ff-{T*2SY~q{1&k%}S-RGkzQs zMZe#NZQCy<&W&YR&j3VrZc3#RN~O{@V87p=3`V$}8%0s(oEt)j80ThfZ4Hj&PymnK zhb9HXaU2c6Jwk|h=Y|j>*11s>C39}FxLIQbP7QYkpiT%`?%c%HaK2W<BIkxz!}(fm zSrOvWaEsPUiv&kpff5Ri+pQO^zkxfB0;Y^HVc^NUf)H}$+_>&U%SAa{*A1Kv%{e!Q zVFU`7a=DChxjdb=xULUP=G+7bl;?yHG0x4##s)^C5gf-6>)bHL;5d#k))V5K8`Crg z0PYe(#5*^H5V2D%MNu;6CVphjO%@R(R>0F1>f8`Q_?(;V?d`*@t@%H!nx-A7s><)& z6bc3Cx<3EKE7yhJxfu?JJ|tE*4+VRk$2F6S;M_RyJa6u>lR7tsVVt&FE$F%qN+~SM zLc86DuIpl)8%0r?)oOLeG))7*QCNG5+w*8zJ?~)}Juh=^vPc;J0^&N~BnfwSXaE2J M07*qoM6N<$f`Y$Kb^rhX literal 0 HcmV?d00001 diff --git a/docs/resources/images/comment.png b/docs/resources/images/comment.png new file mode 100644 index 0000000000000000000000000000000000000000..5bf3391ecd12763a4078d4d8a628df2d56b0c44b GIT binary patch literal 5163 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 Z9{^V0BcfHYtWf{}002ovPDHLkV1g<)@nZl0 literal 0 HcmV?d00001 diff --git a/docs/resources/images/component-m.png b/docs/resources/images/component-m.png new file mode 100644 index 0000000000000000000000000000000000000000..e002685db56a163f2f6459729e640ca019a31ff3 GIT binary patch literal 3287 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 MoV$IEZE*5`01;TesQ>@~ literal 0 HcmV?d00001 diff --git a/docs/resources/images/default-guide.png b/docs/resources/images/default-guide.png new file mode 100644 index 0000000000000000000000000000000000000000..a8f9f7a047e37e238c5c4e6ad52f0fd95961f9bd GIT binary patch literal 13215 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 RnjioG002ovPDHLkV1hq!UH1S0 literal 0 HcmV?d00001 diff --git a/docs/resources/images/doc-m.png b/docs/resources/images/doc-m.png new file mode 100644 index 0000000000000000000000000000000000000000..c1b8639d43aea3b6ae06e968d91007825e79a8ea GIT binary patch literal 3368 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 literal 0 HcmV?d00001 diff --git a/docs/resources/images/down-arr.png b/docs/resources/images/down-arr.png new file mode 100644 index 0000000000000000000000000000000000000000..2b9e3ffb957a1cfc6ff1c7bd7f2cb2e796c5e04b GIT binary patch literal 963 zcmaJ=J#W)M7&ambrBW9r%5=CD10p_OnvdFwsT|vFBh^)vMj}WIIQFHnQv1yLLYz!h zH#X?R&d$KffU?2FiueU=3@i+Ya8Bctfne!;cdy>(dB2`}adf!1wt8n(5QMeHzS-pa z4Zd!!<oW-1yYhx_>&$AiW71_qhhjnZNC$&P;GEzlcD&KEPq-!s*EjuEo3-r&)g^)C zq&`v-L>w&$wVfn#+&*TYgHQZW6TiRzAOhdh#7AXYwj%@g{QWV-$K%76JMO!RC+<81 zwM69v0cH+Jg3~Zo6HT1)s{EXqp$KL!tgnfeNww`GU=WHyS&|E`TtT2xl2A!jO3DLJ zl#vWk5z5s9lGSoml@XYKB9BJBuG%zr=dt)r6MKwBDulz~P#SJYgq}d8C<>H|uvjc` zk3u{OnUfU4cq3ylaqLn*Vm=8$%II{+fN3Jn^s<B?TF{2^yiL4eFmWP?Bsnc9bF}UM zy9U9+J7!IMmG3`^<JKs`u!&<bpe`R=cOwlIsRqRkBeX@xY1YM~9$_Tzkq8*aWeEY> zas4p0%n-J%Ho}-Wp^F=)CUOqR_dVWB#n@6RidEN5ge+On>&PnVb*qYuN=e_!uqJT_ z0S;M)^{%k`Qfw-QAmWitO#SEB+odD`v!Ydhc`ntZd~>X~JeTdISjdxs>1h8Nb!OuF zNskNR^2<W{IOKY#T-Z-Oem>`qqTDd`R`Rv;b2^>=ntqw&@?dgiO>!@{4{kl4<X+!? px4E)+_s9C=ek9z>*Uok?gll<$esf<P^wo>>Sv9Of^KJd<`5zq3E3W_m literal 0 HcmV?d00001 diff --git a/docs/resources/images/elbow-end.gif b/docs/resources/images/elbow-end.gif new file mode 100644 index 0000000000000000000000000000000000000000..f24ddee799ccebea4dfe60fd65a5703a6a59d44f GIT binary patch literal 844 zcmZ?wbhEHb6krfy_|CxK^xx^&v19*7!DtAK$PiHc$->A01UeuBlqVQCG#MB<WIQ%3 qIM~R@rxjCSpm?~QTh?igM}U%R7pF1PhKh}gkM}D$xAAZ=SOWkgb`0hK literal 0 HcmV?d00001 diff --git a/docs/resources/images/example-icons.png b/docs/resources/images/example-icons.png new file mode 100644 index 0000000000000000000000000000000000000000..8db4ee09cef5301197c79d6c217f4ec5e57c61ec GIT binary patch literal 2639 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 literal 0 HcmV?d00001 diff --git a/docs/resources/images/expandcollapse.png b/docs/resources/images/expandcollapse.png new file mode 100644 index 0000000000000000000000000000000000000000..e2cf2dda2c0d9f1ad7fdf917d6f275036548ed30 GIT binary patch literal 1051 zcmbVLJ#W)M7&a}S(yB;^sb%2gc0p?Fvz<7x6{mG#yNw{FN+X&P$G$XHYoD>N#Hm>5 z1RK8qp$Z9!fq{XAfdQ7Pe*iJU#DtK_M5S`hM`5TsV9CA@zt8i$pHJ6Tm!~IZCmDvB zuC5q$y3W$~%EV>*U6?5TrppX5n`9lgN!N}Lqr13;K-IT5Q61TC@4*2oGR%0}Ycxr- zc1Lxv&)KOBm-rz?GfZ(Y32kQ!5zs=LUZAl*-hW_$=W6Umt_Evi1$DfY-3YDkt~Q+A zEk|+L#S$ncDkbm{u|eW*2eF!HY@b)9`}CS;LEnUIY3#tMW^D~raD+gPgBb_P5Xb^2 zNZEWozW_uiKpu*`AZCQTDv2tDVEC|9Epppx-LQsQ^rW#JLPC}2yWK9=l{g%2@`9o$ zDTgR#s6{631;kD=K|D8NFi`A7UPwF~fRxd0;T@u})YCx-epsuW5(n`xQ8Z<IVu!rI zLEiV%xcb&HsiVJcoM|05dLiQLD8@UHL+jC=8-Z!=&KF7zsW<A~$fHHEw+-y<_$VM% zLu2V5&h=asW))L6bW_nqC>I1lFT;XmWR1KfNO~R`BaXAMx(q9M!-A42N`hd*vSm>k zQLZSmtVnWYgslcKu>%K<bUms&z?#;%ShW%%o8YK{@%E?#);gHrxPwDbS<iu*?RY_Y zPRlch)<BW>5V=-_ebCRZ>YbslC^^ZnEL{)>aToN0Zdf!E<*Z^@LY5t3-T%oMPo3e@ z=J=;sMpv{0)9q>N)5GcTpny(HL`Ner51-Mox?MH&M)IX~d~&ilt}%yum!_7ox84b5 zZ~xc){5*X7!fS(%<*$z}emY({empky<mb%i<(mgb*Q%u(&rAEg*W=&qmm8(A3CI** VUBB?{=-$<IT&w1)@uqx#?+;DfN234$ literal 0 HcmV?d00001 diff --git a/docs/resources/images/gettingstarted.jpg b/docs/resources/images/gettingstarted.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6b9080a60d3495ac361280c306e88fb5a9a481fe GIT binary patch literal 20437 zcmdSAWmp_f(>FT1?Bee3?ry=|-QC^Y6WrYbArM@G2lt>sg1ZF?1PKHufe_x!|9<ZK zdCvQu>zps=%jxTy-rrPLSJzBc_jJ|FKCeFS0)(;wj&=Z`sK^W;0{>l}zXMn@zShox z00@A<$hrXVyhrp~QCiwuLrYywQAHL2fdGK$yQPPR3m6jsT-|)UwB)5I4GfJa5jJ3b zZ~!C#9}uv#_V$p}&`|kr(f>QTTZWARD+_FYW&Q81|1alQHn!f@007c}@mbk;Tf4$= z3jlzntUbJZ008bMj6Un{;{n5vPcV$@1yc})H~(V$f8mS2*y<k){d=vrUOHOR001Qf z07O(vOD}r>K%<4xDgCVNVRF!90017_&BoCU0B{UoSj^hN(gt=fUc-1;U0vP(;$awO zwE7=%?EeS0w6yw<OiN4q|KNXJ3#=z>U>Qem4;Rb8e@_0ttXy4uVfX8wf(@%t-CWfE z+6EtX9NAdPD8qh9VaFd2mw#*q;{g%dy6I}eXn!%Qo0XdSe_=5@FF7q3hV=z$c=$;D z#jtw@vh(oK(D^TVSdfFX8VsYt=vlVjvj3Lz&dE~gug%b5^ky$#Etr1+v@ks2?WZjZ z!!VBmeGPKZ(f===8yj1h|DuDzc8+q2|Kb5-JNhX89Sav`b82UI<-a<>#sc#L%76=C z3-|(Fu-Xk^15^NMK<2+{Hoy+Bgthp=+Pnd0;1GsgVLjYoecWM~^1t|`{|}1XKmF`s z{r;~KDFJI3ukU}x{MTrdurdEF(-E+N;eXRDVPpJl`>UO|xnsnCkNIzozw-XkhVwn= zG3W1p>ja^Pa6|YYQV>yy7(@u5gy2Jn0X7IPL=Ykg5r@2hwFv=oz*m@L`+w{BSH5er zo!@KsKw&)xSnJ<wxB7Q0p!W~A<A2Wo4-Ejv>F@2||E&Q4_}B)(<^cdmyL$wBIodn; zP)fpPt}QF2qMJ24D<wB47uVnB|KF6qYu3M%z1I3?Edt@s{5Q=Vb}>SK*O<uvrdgZ= zK)VxcnqvPqjlLZKFt`C=JlERS%kN+EAb)?L05X69^H3sy9H0RhVfUFE;0Im+5`ZkA z1gHZ#fFWQ8^B)J84|)OqKnM^H!~lsv8jua-14Te7PzBTh%|JWQ1AGKVfk|K%SOPYH z9pC^s1ulR);1L7@A%M_8I3OYr1&9vB0^$Y<g2X_wAQg}n$Pi=!vIn_=d_f_gNKhgu z1C$Rc233QaK%JnEpmER~XbrRrItE>V9>8#5R4^`>3``H^01JX8!OCDAuqoIc><JD6 zM}bqoufZkYT5ucqBX|<L1l|Fkf^XpfI21U1I4U?cI6*jRICVH9I6F8mxG=Z`xE#0= zxO%uQxG}f|xE;9faK9k%5F7|4gbn7W3J_h0HN+DV21$bCL#iNckYUIIWEXM)`2$6R zl0sRa!cax10n{Gq4~>E5Kr5iF&=Keo^Z<GX4-bzI&j2p~uK;fd?*tzVp9KFFz5#v! zehz*g{uTiNfe3*GK@>q9!4km-AqF82p%$SZVIJWC;U^*rA_XEhq8y?Tq8nlaVh&;r zVjto>;y1)cBupeaBw-|VBpakaq*SCbq%NcxqywZ!WGrL`WKm=tWGCcs<k!gc$Ro&` z$k!++DAXuID4HmaD6ddnqcoy?LfJ+6g^G>Jj4F+4g6fN!f?A0>fVzfyjfRFsk0ya; zgyw^mf>w<-gtm?L6CDSg9bFOK2K^=a8}v5xdGvD(Bn&zXNenZLAdDQ04;V8T-!YLe z=`p1-EiuC|-(YrPu3+9`;b3uLsbjffC1KTIjbj~QBVf~G%VOJLM`4#@4`J`)z~Ru~ zNaI-JMB<d;jNlyL!s9aFD&jifCgRrNPUBwSVdL@Q>EQ+7y}|3n+rfv!r^i>scfn7^ zZ^mE7e;^<ukR-4rh$pBgm?yX=Bq5X_v?WX+Y#>}Bd?2DEk|lB`N+)V3+9HM!GZSkP z`x6%uj}U(+!6kV?Voj1j(oC{W3MOSH)glchEhU{Iy(J?jlPB{a%Oe{i`%aEeE<x@@ zo<-hAeoTQwAx7aykwwu@aYBhlDM{%<`I>T=@`8$#N`cCks+ek;>XDj(T9-P4x`BF& z2AM{X#*QY7W{~EBmV#E5HiY&)?K&M2ogke9T`t`i-90@6y*_;`eLMXT10jPVLlDDz zhD}B^MsY?@#uCOwCU_=6CTFI%OtZ{jW<F*I<~PhUEMOLX7Dtx1EOV?-Rv}h5))Lkg zHdHoAHb1uaY`g6E>?-UL?CtF59JCxp9O)cm9Dg|ZI9)i)I5)Vkxs<pfxVpHmxS6@F zx!-Uv@}Tj^@x0{e;JM^w;kD&0<Xz>%;Zx;{<s0OC;uqle;;-jF7N8Zd5GW8>5yTbL z5KI#MBm@<b5_&1rBlJs{U)V>uS@_2bwinJXYF-?PFo@WSl!@$%Qj1!O7K`qPQHoiJ zy%XCJrxLdmFA?99ppmeVsF3(3$t39{Su1%i#VO?_)hcx_Ei4@>Js<-oBQKL6GcAiP zt1Fu?yDdj8XD|0&?n0hVK3IN00ji*^kgl+zNTz75Sgm-WB%l<kG^~uOtgW1{yr;sf z;-%813RYE8%~ah~qf>KJYgY%<71cA<w=@_uJT<yC;Wafh-)J6cacPBUjcMa(n`_r- z-|0x{r0Q(wGV1#34(eg(ndnvP-RsNfXXx)3a2SLdOd1j!IvREuAsFcyRT$kG%Nl1J zADHl&#F#9bGMEOKj++sixtR5uW0+f-f3SdB=v&lS{I*oLEU~<`QnV_ty0DhE&b2<Z zk+8|KIkpwG&9MDuCu)~rcVsVWpJ{*WAnuUk@ZC|`G2ijhNx`Ye>E2o0xzhRBMc<{t z717ngwbKpT&Dm|(o!mXZea?f$BgSLLQ`j@x^TJEntHK-PZR*|OgA3anPWdwWM*Hsi ziTS<p`{}Re{~-V?z%5`ZkU20u@LP~vP<b#U*gAMHgeoLFWH(eYv^WeDW)(L0lICU9 z%Y#?)ud2e4!=1xFM{q`DMBGH`M|MS#MZJpJkCu;qAA=s_6|)liBDN?F66Y8<9nTY= z7yl>0CSf9xGchOecan9|L^4<M>*VJYyOilv{?x)W_%ye)<#h4%stl}*pp5-Y)y%dm z%B+N}n{4y!@f_ZqqFm%$-`t(oDz7{8X!FwYe&;*nFTIg^(@;QK5MOZr*5>Vep+sSQ z5m`}U(Zf5(cdNzn#cd_@B{`+=rGBM{WqM^}<$~qa6~q;Z6;G9Jl{-~hRm0T+)zvkm zHL35x?|t7N*P7JM*2&a$)U(wWH{drUHUf>ljVDbOP0P*7&4V8VKh(F-wG_1Cv?jEH z+5+1y+8x?=It)AJI+Z#HyIyp)cC&X^_E7b_>BZ|!?L+R1>U-`F>c1WE82J9t{^S0j z`QXNo!O-Hc=J520^2n!AxzV99$+7-VqMv%kg~vN51Si@j`6t_^_@-Jv^L=ie=AUkx z5t!+i6`Jju6PfFq7oY#QAhR&KsJJ+}q_#A-th>CrVzRQcYO{K@=CXFV?zjH9@oE#g znXrYqm9tH{UGjzLOT!NTPVcVF?$n<4-p0Q5{^?imufGqX4$%&CzEOOuKH@&=IhH$~ zJuyBxIQ2Mv{2p_LbyjfBc;50u;>Xm5!NtL)*X8q7(lya_<qhx6;H}2(_MPk9<9)(U zqMud21b>Y^=s$dW^#6_U`}GskQ`aBmKbz04&(9u~UY7st1>j&c*bWwIT~)$j2t!!x zFbe?4=>Li-{^5XyD<BvT3?smH3QDjYz&?l>_S_x-6M=oe>u`#2LlAk$BGeTg3w{tG z1W^nL0ci`l6Quw(6|E9|6B83l89N?l91jcMgrJrPLTpLWOGZhaMDdf#hI*Y=jc%NQ zgE58altq!Xi0zI;nlqVemIsYjiqD(BKwv;{N9gGVfe4GJkeIBvmV~vWw^WpLuFQMc zez^ttV})lWJY`lDX;ou2M|D4qXw3|*BJKA&?XX!tsXuS9X86Tu-}uPn%=E}?(|p>Z z-?G7~&^p;B$kxtI)Bc46ts}bQozoZRQI~4hWH%3YZ4UuYV$a`R+uj2{rM}UAcK(V1 zEP=>@CqYxejUlf?qr&`OdcN`s4~j^LERO1p{t}B6Clc?GP@1@$jGQ8p>Y7%VKArKD z#hPuLlaSl?dM6*{4PSxz+xWufqK#rm30tXN*~{{(in+?4)s!_V??Y;v>n<CF8&jKp zd@ydAX;W`s>=fzp>8|eC>_h428PNOaIT$^ZKAba>GnzgY_bGBbb|QH)c`Ev|&$Rvw z`^@9)z+CV=|NPy;%3|kI{&MJw`Kr_!-8$0x*~Z*v>sJ1D=ogC}nO&wm%)MXxhhLWu z#t%P!>pto{?mQ_!P5JJ3W_B+7gXIGA;`Va=s_(k^Ci>RlPWhhWC(h6NUz-mDk0rmO zo^1cfJX1eE!|V?a5W{wd0l)}sN2dZx1APJW!1i9(aOQB!uwBy@)B_$Jz8%39kr;6u zsQ}p?MG93EO$Xfp;}zyRtdH2oxOjLn_<;lsgg=PcNxVpV$WbWtC~K&mX(VaG>H6t^ zGYT*{F~4P*WW8d?<KW>`;4<d6=keqX<O}5w5^xeU7E%!weZeV0Es7_GDE1(JCb28I zBsC%3C-XtJQtq{UoPxiigOZ`Lf{LIjgBqSXMEyo%PjgOdK)X?=P&ZD`Ti?t;(U8Z8 z%oyJI9JbQ;nw6R-Sh!p2Sn*n;TJPC(+NRps*^4+}IUG86JEc3@x(K^sxbC~PyT^GL zda}U$V%qzikC(5sAD-Vg|IUD<K(ipuU~uqCNJD61nCna3S2E$k5kiroQ3}xpF>bN3 zapmzt3A>4Zl1Wp9QuWfj)6+6)Gsm+IbHKTzule&d^IhL07Sz6-Exdb2U93?OS=w24 zS;1cES=CZ~|6Zszq^_?4Xq0S<Y#wQWw#v7~wU2cobjfx{^z`=L^wSS$e+(Wh9O@ok z8aW=l{{$JwnV_2Fm=gW0GHo>DFzY`TGoQUsve>ZHvpl}Cyn3*9vjMk>yG6Gx_(f&M zez$b*_$$MK(P7NDnxnDf-IJf+(a-44#eW!Iyt<sd=DEqdy}sA_+44a682$U_AOC;s z4*{?MW<U*i1q{IU^}-+@P&*h5Rt3KUKf;;8O+Z8-ZBRkzAiM_rK0+`e3E~)1GO{&_ z2r3EcAGAI6NsLy^a;(?bDL8Ss(ReZVi3FL1MMUq3J4kv-d&&C9`ziV;yQx~K-_yLM zO{DXsH(`)qq-Fw`HkjL45?S@wDA`WfTRC2FDs$m;?Q*~8@#PigL*iTDe=Fc1$Se3$ zs82Zhg|Y~?$hv5Wn3FiS_-~0($#f}GX=dqrnIYL!Ib(SS`74D!#RMfiWh&)Ul{VE^ zYAWjZ>bn~6HNCZ7XoIyUbTV{}^eFYd>DL?h8on?B8;u*MnrNHio35F?F*mg!v)HnH zYh`LpYQ1jr+E&jF$8N?x(LvS`fccA`Gneysmr7SFH&VA1_e>8pPejj;UP0bG-rs%7 zea-v`{AT=P1H=P<1~vvc22%#Fg=B^5gb{@uyzF?D6&@I27ikh@7;PM58|xbv9iNj> zk=T|rn!J>9kb092mw}T>oyD0goFkp9^jb5|FyHEpd%?@MnT54Qlka|%(3J+3%~mi} zhE*-su)U9}-Kghkh-=(#=Kqk`@}-TZJ+@=Bi>EuGXRlAB|MkG#pw3Y12*YUEC${mC zN$1bB)8A*u=9?C)mm60<u5WDtUpRLwzs7t^IB7q}xQx3c{Mq_j|F8Z3m0SAzOn~PH zfbx9+&?^Q2O=AG4WB~xWH?Xt`EZ?Dl1^_xj09Yy&0IlT#Ao=?LJU`F?23VAD2gJf6 z$8q2kgbv~Y>4JhlZ$Ukv4bX2`d?yaJ0>^-Bz%$?*I1)HXI0v{ixK6k|2nsBJU;&HB zIv`)6*idn(8?+d@1dj|a2_FF84F4U05y2jz65$w;9nlxD9|;A?2&onsglvG^jDn8h zhBA*Ti24o<5zPy28(jN3>W9}^8T9P=K_9Tu-xV}HT1!uf{lihG9_j*pK2mVkp` zh|rkumMEQ=i+F*=pOlPrmMoTBiUOecNEuC~N=-z4MAJ>1PUl1~$3Vx3%6QAP$2`w6 z%-Y5FfxVHVfwP&bgL{Byl6RZ$QUD@|CqyI6_JT`<Q<PbZQXE?XEb&8fL#ki8L?%ww zUCuyWN`XU>TnR%NPWh+Gh3bjgf%=}tuI5**Q|)V=Cp{#60s{s^AtO~|Ym;EpY_mq# zbL`9t-I~Y7(DtQWsr`t<zT=ZKwhNUjvm3iRn+KC8wHLlOlJ|qpu^+L&YCu$Af6$*0 z+0e|e(^snD-I2UeoiU2B`|+`fR7v$I5~(}s>6r%EqPdEB{%=MKN#3ECfJ=XsUsax0 ze}DhI?nlFI(^Cs#8%YO8mrRdgpW}evVA$}h(a=wR6E0I0(}}Yk^CwGGE2e8j8;9Fm zJK=jv2Q1&>j=z1EKd-sOybiuS`)T*^?aAYx^#cQ72Q*>XsC=Lw_zFUSWdn>sQLu=A z67&NW-3x;)z;WP4@ERN(EM_-^i-v20`vO6Ott!rtH;~V;_?ruA11*5r9RpqkJ|6xP z0y2UsLI%P*A|0X^;vf<}k_*x(G7WMB@&SqxN*5{%Y7rV9S`s=udISc55snFm8Ha_A zm5WV{-GC#3vxMu42ai{RFNwcL5JSjDxJ(pI%t^dMl1ZvS1|b_HkED>JM5SD&DxvnK zk)tK2{Yke>-_G!kF_$TwIfW&KHG?gmy@I2a^Ap!L_dPEjpD@3*K#E|m(2o~%BIcrR z#5N?zC2gb{q#tEv<r3v56`@K3%2p~dsugM<)z>vHv>@8}I?TEfdWQPm2C0ViM$^WZ zrub%}=5`k8mVH*|HZ-;dcB%HG4o^<J&W<jHu5<2S4{lEjuN3cYpCdmEe}Mptz{H@A z;BTP>VTvz9Up0rHMAAf=M(4+@#u3CDCKM)qO=e38NF7Zl%y7?~%I3^@^BO%b{taqD zb|FL2Sg~U%YFTrIQ5B@R@x6H+X8llOKr_dOqt?oH$4<7ctDdgDhyj&Bf}#D9#<7rb zrAeZx*=gOG{kfn8^2O=p#8vHe`c2T*-j~tc_xq^_Uf;BjNluEsGn_U35WASZGQa+D z`|2L!XWj$(W6=}wpVWWsPXI^)9<a>O4DbxIy&WhIGy=K?Q-if&Ih=OzcUZ2*05;#p zA#ku9Vi2Sqatq~y`ayf)q44VPZ{SZ5ULd3)93jdemLVY`c_3{fs~``c2*4~Yg*t_1 zh<1V=hJlCCh^dZwiIsybhJB3l7FQb&4Q~QJo<M~Vn{b_|oY;#*k`#yZlx&o|j3S28 znM#LRl7^d>fsTTngn^iml8J>`h((#zk}ZTipQD%aD>pii2(K4kJ^v3uKA~{oc@aj@ zD6vBc70GsK7MU_RD)~}HCZ$#t8P!#F4^339Mjd0=eC;*#Gv+n<X*OVyY-MJ{Z-;8X z=9urS=yL29=>FT&$LqjH!}o(fR)AOFVz6*XaTv<WfLGrl3?iqZrDD3`c;nj=MU%!; z3{y|j!!oh5N^&@IJM+Zy`wK+gwiQ9&sT60Id?{lt_pcbK!mGBc>8eGqv#IZC#B1_s zo@`-+MLuU8nw{<4<UKLH=l%Kv9|u{6vWK5XoyHc&B_`fa;eYm?o|q+>bC|DPI9Z}u z)?bNOty-H{KiK%ag}F`fg=L3tS9nisU*fC8f!Lw&H-RIrW9Ad;Q}om0@11A<=X~ei zf0SPsULs%iT-jY?UU%G>+yb{HcT#tI_b-2v{_Omv`|IK%>5<`a@VD9TpHG>8IR1=3 z+x)e^w;c~G4+$$ER4G{car^oCnjRKZWB|ZZ`t$Q+$@BA5DJ<B4y#pC=`Pci3zs&Hk zoO=O`{(oPd&jEBv8+R*Pz-9o(0eap5q5v=~?+60HYFOS7cEG_lDX{uq1qug&6*wpq z3QN~Pp$G_whzJPCe+%k=3JAszb3z1IGcqCq;{Ry*56k~Ecpd<-5P=rp0uF=)fU!Vu zSfJ-&Seg{38RTy;_3r|K!h_)ukN^-OG6(=cVM_nI<!`_Rf`hdqAYuX_Fa!dIhay6e zphz$d*d+m25GWNFHoPQ)rX@8u4x(pxIxbRi)5kd}EgHNFD=&QH-G~ex=?}ELGR=e9 z-UOE=^VX4>HgtSMFnwV61Of*SyAd!sumTf@MFruK#D;3(z*~BzH&Nq;7k`}NzSzBl zN#n6Xkk-b3UI$QNii5G>umEuYifhx#q-56dV9qcs#4$gI6pfWC!-F71$iKm2C!zQ; zX=)eUyj+1BqGTv-0Ux6?z(52;y!`OIbp*I?X>=YbQB`ITP2_CahMIC79m7sScrR=j zT0$A3sFOF!TH;ySjgF2<&@_2-=CU%l#4_`4hj7ao*bJ2NZKF;@6{P~Q(-2yQY&0WX ziv5F06wkymAE}g{0UJV>9Q<wd^ihAdWbqAB!7PrGxWi^evYr*HrTSZkI&vKK5+_2i zPu?>itoc?T#yDE*f@5(3fdqy8i;6N4$kuA*?sMDG#8BOF6~#KWr1>PAJ?7CH1!dz_ z7PeQ_(!=FDdmg!G=vaF0M7&4&8Fx|I+O+)eCJ4=({@jb*gh!+!oV*r==U7I0PcmD= zApKcq4+UjVfw>;A2dC|ZO`8PJTaoij5-X6scj^IG`(@dPdV~fgaLsn)BOxhKz0I?k z0M6&}gcTpfMTqkV6s7g{PJZhmRd|nmO}O9s#5nX?vppe5tK1VRb1Ug;y*Qrbk@T`> zo1>?t%+E6==k+e`_Z&lnE^XWh+xVfA#0$!_h_1It`B|c(cJvZu!%I`8crzlY<Jhte z3enkUujtY~eY6m9!Z`ObE8(0{!@<h#U1W8Vm^{3du$j(au`0k3Qut~)V5zhCkZPks zE*57%N~w9oLqr}Yy<_QC>Q_Cy(DGKDF{+$~+Y<F6M<u$oEfc>@dImTcIBaMxESvcj zvtwiaGOuJu#JJ@K^>IWif|yKPUcH7WZM2;siv6YUqOh{wP0ac;5Lb;yA@NC~`6*bY zBj?!F-?;0yPO&@A-Ll7@jK=VBerv2u68x`af0#Gqbtd9&L5%j4rbpk-@f0Aj^Xf(_ z{8IW2aBckA+XZ2m${CNb6jtR#-BsSQ`Spn?wi|V=!q|Fqd+VbVb9z`1+lU{zB$(4< z9jkt&TlGk2BDH+zyW%p6HWTJ<dpEQ`H;jf%T9T63l<`x9bwU{{s9e4qj=|0PrV`>q zNO)~xV+JQlWG9Eo!sL4Id=|$xeI|k0y=c8q*{HsZB~wIArMMx5#6k;pN<1HLC$Fif z;p{0A{Alx>Kg6_!9UMGFHt8vGCnc|1B5WzGYCf>$YYxJxR?8_oDvzDUGx#B9fuT)o z<1I+aICz!}^h(8_G`m@PrwbYje-VyJHa8%q+($=}nUkWR7?q20wQG$_1!3hcV;`2k z{}6keWg3r|vMW_yRX599_@jhDLCR>IGeYvXNaH9{fhwr(6Ky7?JtbWM<}diF3QgMZ z#ZZkw?nE>=8WDIhE1*2$G|9RethkS!M_PiTG|QCs`bpSwOj4nO-r{!;Rjk4rm*kc= zp@JQ{^uF~-WmubvyT_bAx$pITMc5HDbeEc(iuu$ZFw^t1XDNvw%-#VqAwpi8d_x*6 zp7Iy#YKmmqzjh2O3FTT8&q(-F;^-cB_jN+QG>V#pdVEe(yZec;CYJ^der3ZMw+5Cc z>oPVJHVp-tXjiGPa>Y0l@+n?1dOZVHj^!e^+76CDowFg6k^~NIW>h)q9If9~ND{#m zMgl>Gn<3kBjeiga0sO~j0Ij{chNbn-<dH&!_+wLg*LjxgOV-DfBI~2={orSyq5S37 z`QIIX<Z!+`1LP^H3*23*(T#5UQJ<pN?~RpRL55Jr3RTNV(y<yY`)!L3n%cEz;B<23 zDQ6@&^Q8!(c;IihUthec4A;7yMjXpEg+&keS{o=;u;_kHm4?GRaA{57Gkl~8Dtda^ zZa(ehz83u;o`>8OV%u}A!|!-z++4V(o+gV|vRKWamIu{syc$zOfXmX!^(~68G%xYv z3iNP&G=3tc;d=(~+(q%uf1Y1cf6b0M$`)o^Rm5SyZJyUs6PoZeGd>n$?Zr^~UOHI* z>(AaZ@C;Ol`AEzQ#rw{Crg;|q#zNktRp{mU08?I?MSaA4`sppBtk|Dw4@%tB;L_G5 zi&7C)RpD<-BJY-uQo^#<CZB=i5ThrR_~t+SeU2_Oyl)rOZTmILK7Z7g>9SWSS~JC| zqb0{-q^Y5c`2p{?KS$#D3=lB>5$`-UlMitXMCoH*ZMjYuH*9exC~ufz(*IQs_9EWA znB9_sTxJ-VbXh5yF1B#`hoyAYIXfv2MLzZOtacmwxlG%*uA6Q&x@EP$eXqy2u(Dz9 zRvi7x6Xcpfj}9S~9N5PibS16d%hPAiqc4g?clyFzxlEh2L(R0Ycp*=C&DJw-RB38l z+RUAdR_isUj6zG`)z#I$c=FgZKS%1I`DVII_<Saz+>s(yD9Dz0=}0>${p7^9#=>9b zK#a?cF*)9i5tci#;KX8=4Hva0r=6PW?H3`&gsWwv(bzrB!W<75-J9A|O5tq8SE;HI zM?J;Ky2x##VYUXLF3cdQ5K8ZKB~VYak{|D)zh)PtI74A}%cZSboKDYU8<4aAo?1a# z*I6Xvvp0UlG`o&_8msI`oRA7|akAx25Yc2Wxtlvj7(w2Vp$aUj^j46-*YQ=!<eZ(N z@CSKhCL6tC7y5H_61S$db}Me-8ak1`re6Q<vwcT+eiG;V>d99T^^e}2Z|ThN#DDXK zGVnm>&7+aUu7+I8$zO-ylwowPEw#BZgjc+LESKSTBsga%4)we*m3mRQck0f>B#25g z;g2s;r0jY+fyLf=duWyU#&*ewkwdt4ir>JL@l^XQ=iuy#Qk2j#XLRv+m5n6|0$d6M z4MuvSS!JgV=R3*Bq;;@{%8Zzb$ho)jM9!1lQ%lW?W{VT4M4#*ZvMQZ74#+f<Ggc}% zg#pupM`hl1#olO0=+EVv^VSfy(N)OG-5p8aK`uAHyKtww^`SgR(f!-X&<eL*m2dV& zTDABK;k2*zosp%6FEnVPnBOfdUWsmR>#UyS;@)zc$9{$45TSlb{#+24^&=!s_p(=h z%ZTVc$>)V{3LOgHY|`fOEJ9TH8lhaaa~>p@3Of24k`37NFt%a~VVy>cjMG}!<CMV# z;4RK$+R3c2GNfPz;7gcUt055<3X<-Av{3(0ZluK}sNyp?ke=lr;pftT=R2%M>uHJB zLgcN8qq1ueV!_rXqBc(Gaq|srAOt5g*&f#~ZEwtV&xH0yO^WOTi^sJ{0Q9`8!LI~Y zm5A*+^?N1G*&q=@YXkR8xVz2Te0lxJUa*2N$;~A-vCNxzYbixjz0YXGr{w39HarZk zFp-=j5q(9l>}yWgIr3{F`3m7Eg&~TOYM7b^vZI*3YKA`2ob!lir~_j(ptLS!lJrj3 z;Dqwnu0_jdpv;PdT${c))OkC#=xH(Y2Xc{0Apd^+&Ggn09a6$7n@ts!JQWI@&3EqI zU5xOqlmPS_se!KaIag~g6u7TtaV{8{C53U8S6VVu7X5C4s$$4$oE`x--iC7PeUOmN zn!YRJK(DsFUGwuZU%KgSd{1Qoy-lgv)FtJt5&61M&vLxQxr6P-jhedT#H1WCim!LJ z8^aP>OHV=j!7eGtE-5Asn~JpLYg40J!r2d=Kd?5Lh!qQ(5-%1LjHtzZ%0Q4L-8llv zgas?&2`uW}AL_rTLqI?9^=2a?E78Szb~5l~eQ{;AmE?$s9xY-%F(2`Q%hjw&sbb}% zY(bsriTySM)a+^N{EH7h9WPAjiH?XDEoD_2aCwG5p?BEVmtJt&;(-k--15kl=P||e z>9D>|WSj)j7?&%B-Ly@s(lO#pvdMpor#9Od!lJ_`#*%fm%%Js&W|^;_i(AwBY_r<$ zuahmZ)hoVK7LagLfG`flHP~25md!eg=!NA!*>>2_(&)gmKj}g`4_d?StF$LI?dIn) zQ^L8`w^V+PplzRN^p-7Yvyfx49JVw1*?!1)tSu?%xME%5Lm<^;&~h;0xf{jX8XTv0 zaq+{_lV|JIpZe9==h}Yqg+<CPb5w}M!L{&AZ&wyuwfNvgk?|Mx^RS6NQ*4hFNvHZy z8X}eIwol-|49n7{%&(IEfhGM1f(;`?0<OQAMSi%+&7NU!IOj<{R_xrOVXQ5s_Vp|_ z9`DC^(yZNF^3>hR&6B#A$C!^3A-MlW4Y@O`#xc5$*peB{AP{~((yOJ1BYAI6Hmp9k z0<KPEQD5qIs6FWa7_;&lG34AhU%8c6&mAp*w&G-NSG*fUhZqif3f)bP?MVAS10VZm z>?T|LgDTgQde@IXvY2hxmNo=@Qd1~*oCz{~%1PpNPFjwx5!G&eGp0v!sTvl7!RDq~ z=e@B)aHb#R&*bJasm+Ibi>U3^vWKLU*1`&<lZeNZ8P;#E#3`$|<;%K?I+0Y&l9+Sk z&R{?lQ>qTXjAFdR?I5B33I9Q__qKmitzmM(r9D=HK|ao@;NljwlCm>s-`aiP+T3`* zg8cr9U((Y;rKfm(m^PHFv)w>sx85e`XgNZuNiz@3cVeSuK+~=}E<=8~ORP&>o+Rt3 zh+OC_6xWH}jnlJcGT1?3qY^%Vrb<X#NFx?U>A?|{23Ew0z=j58D;E~Ya315>9b<ps zP1TVR$Lz9G%0ew`O2TXuYU7N3f4soDDRG;Ph~LQj3?y=sF@rNJ&oE46=HBAUvQGuv zw>Rb|mW#cs<6;dU)-*`C$KlU=oi-rjnl~XtBXBpF8yoQfLK~C;Q6`5^=6cYSr9pa> zChu^>rp4LGCMuKo8bb68<Sgf$1xv-ejY?Ut93jtU!M4u&vbJQ+cZWGl(DKsQy8TO? zF23>yrl1vrg{&pkS~7Ot6BK8~TyTbD(%Pq$dcq}7YGaagGm}85+(JSBnx1MOUvX5o zUCTU|#@>uaE}{E~QR7sGRr2y^Yi<cY|6I4PSj^^|gY=hNej|8va{?QZ=teB)%<g39 z6HZdGYx)X;ah+zzre@kg+xr^_E$tP`NEc7hEm=%KY3)pt95UL?+f}VQ(uB4anJzKE zjg=SG{NLz|)hZt)Es1)mn*^2YO?JOc*5i8LGe0&NyMX32PGYX!VcLp|xg>L?B>4<D z$bL>14ri!PRe6c2&vGZX{f&O^5G^6Q#&xNqZpopyI;xz$*axE+RcuGinbD(EbBYoj z%e`~9B=hpc7pe0~;cxIai3^w0s;)Zi#q;o*GYU5WIXZ>Z5ZcKs)zc8ffI7L%+4V02 z3^v4Orrs!FUGWudZEFsWb_T(j7&?ORIAhzIA_0gir7Gmsr^>>$Q6V@lDK3HsPr$k~ z>pnXOGOijP-ZTV}#j;2lg?sgJYa3%y<*9pe^{U782JaJ+ob;;=i|L%C5;73%e^9s> zCr}ME7uPX-h+V*@l&E>5b%-3GjL6j`p*J8g-?Ro>$}dpAx%_m*CW>4_boUg-E$xfs znZx{QfL2^7{V7LHYKPbmqn+FF^tIt5JC)gp8on3r-o^OS3q>XSbfRI^ye1i^uTdoz z4+k6Qc)@B_=^lJ6h6(gZZFzK~m#z{NI?@@jie#I(P=VYm`Cz43lX+?bWvSbj!_5g+ z>k-9Q<eWo9mBe-d2Uv<JcH3&(tG%u<N4S!8C7|rel=Lkfuczrsq+2h$FRmF`K_Ox? zYx$0^%It(`@Vy0CY9p>WJoVQ7E2gcoZCjb2ob<}_aMMmwAaV@8MZaCiV#{l^wq&p6 z91p*-{__6J(mPT375&Q=bLhp^)qK?W7<fXXX2L6*ZjX*>$97bxuHw(<?kTfEgmV7| zb=U5<q5N!td?P#vZrkSWZt7z2e=IRvN3di3$!eKSol7Yzk$v%T1IovPto;g)Q79rs zV!ML`yc^vVeTPQEO3A8~^8GeLu^Ej%DiTK1(h^0U#_x2LW*&Rk2Y+U=+H48U#Z41m zr{Fb+3Q8kj<w8sP>9h2HcNOk{UYIRrLr1f7k9Fb4SVLH;XJFmC^(1zm$FL!JrPH8r zr0SZguui4430J{ogc8ah?l@x+q6D*xH)osuTMQ2zn=1zrZ=#Y)bJLGJS*y8+ZNZqT z#czFSN<8V5HCTg4+J6eUM7D?|tesmn$KI1ooCfI(C$#jj#fu77qy?24y*>#<sBu5t z;@io1dZ|6v&RdPl`eD7AC%;S7v$b9MLdY>#F#XLCV<kk*S(I?<R&EJ}PH~UcYi~Z) zb()CQMwF}E=z`LDSW{Q6oCQQXQdJA=twME$=6&vW77)rz9&JDH#0xzGYY5>YU>&Y1 zRc$yyN)+^kMq)9F+gMbp3u;@LJZ49+QoPkk&1hi&PCg(kPfF%BMmf^B={Y>~U3!`$ zc76?i&D`C5Hj!_VRd)`NlJ0JtfNb|bckrP0nlI(Un9c7&+Nc{gtsB}$SF>M^wu^`9 zyBzaLVh#~rLo@|^Z0CvGWm`dzd2uuwA3L$vL1!jNPA1U~B}yO2>al1V^Tz1z9JAmv zxUfiHm&9Xm{Ah4>9r!#Vs9kjwDtOE&^vIK7{E5Y4ZxYwwG$Z3{5d1pPd&{mI)Y(0$ z`FaScb$maUtC+lZo022n)X3(Y4OdT_^{}F2pV8D9#juWrKhq)V_fP>d0W3S`&0Lzt z5%c(GfcqJ^uMmn{ny!27+I4gEiDwF0y<iMWDMt!=yO>U$-Lj*FI;IfCqj*V^8)oP_ zadj}3-9SAS=5gxv*{qy-_T->KHBGXzkZeHvp{cm-9J@ijM)1%5(OKX9N$i}sJ;D#_ z+(hWfS%AHh8?x`3TNT}Ky9Wq#_i<rQn*-97H!VvqT$gfJeNwa&XzzK`b{_9DA<S{> zH86cSc~<)2Zpn1{+MvR<<@*amL%oOj4OjjJTW3!vK}b1ehC1RA|Hd&xiGiHoY11I* zvT9rBOO;<u*OSwSozK9bdZ4#ey0UJ`rB|Te7h=ng?p8W2mKJ-6m99VvR{Ewtxyxp% z-1lI-))Ks*95ac(rzrbw_UYanwUu3jqdK-ZqO>w$@8dJ380ve9&>a1k@Xs+_m^738 z9;U9nkPw_)GUQC4UjU)1X|Kk9(ja3PGunIT;xbha-+w%->wdeHz+!UwHJ9Vlr`yd) zAAZNY21W0)I!5jyL!k#6spQRomI-~oZkn5s%1f?$&Q9r&byVgZJ?0|@1_~EUO|kR= zdFc;ZQZx3AWBty;g+0GspC8B&<>y{KX*QT#57h65iz-`WR)U6Kf57HvuAQgP+6%JM zi7OlNRp6oYn5I=g4HsD-&+4To#m?qVOUp`C6dEMV(kd6X*dLHFK%#u`4}NFS;g*(3 zsGZgc7ZJq@ugb6bkz*s7B=(Yso1(c^ep0Z(g^#jbj%ySDW?3WPbLyzg>FL5<pNbV8 znN*D;cXFoQXHmrx!%PlRdN1><1I#TXd|SvZJw;B-HFBkoldY8ud0$5{3$e9a58|oc z_1%3BgLZXkq8n=5!w&g1wA|2U<CTV1sKq{#y9V|vX&vMt3>$gTbt_Ho8Cn7A?TQy> zO-65RoGKT+<#AJGyq`WZ+;R*bKcXL09`up+TZtd?NWVyR=uTHXU$uF8$SlP6`vZPZ zYUN(fR~xo*f5lC{Z_hx+Kkj`!|Eix~g^HBG19j9RigfzCqPo3isMC?C>#SXYeQp_! zDU!2Ha7{U0V@InPO4QNwj<uf0AY;P5=nq{%_%+u|DzpB!Q6Og@b<=5yw0~%Kphw9? zcaU9sHRCCUrGuX&^CezY8SWmg^}99y6=?kFnULtWa%XSt1{JTbA>X|da|?zJ)Nbom zLuOiZ4F!Br66`8sb|%(5k;#<7*0q)dZ%;mJ)947dIK)<Ygj>F)Yu<Z>$%K))RD>kX z#8>FjbM*ZzTvx5qPqwT0MXpaLQ*pO$({SI3UI4=8oEiprC(-a~=Zlz}+0|0yu~ZXs zm3qXCRT2BAGnNx9t=Cm2xAp>lc8x9OZwPcZ=I3dDST^0s(etvjiy-r#>F9M)zvwt} zbUrF<>ssZVp)EEV9)F#z+Olbs9@`gXOMu&0G<-FB+1zQ<t7}YwFk(4E(>lv7_UYU) zS4-7fu+!FaPu6*^Dlc#3s05#_x^fW-?gM<d1Lz@?XVeZ6J{(U8H%NGQ^rLigabCQt zi6x5U0U@>42<InOcwRoDg53*RGG$KQ3(i$E2jPtsIM)uky_dipY3`OtsNsN`ki;5! znR>NOHhNZp9e0*ax*m0KU9sQ9yC=bC0C6|p_D)@X35s8q*g8r3#>M>UsaR3N)*ziV zY?d^XOX<P0289h9-o&k({8aB%+l-oLo-b17k{fw>!W;4ky#aKdS=*{m&s?{Kk2@W; z>hYFc^d$N*Em<7z;zKUqxa!Nt6w~2zHRqlQ;Jf*tENDzbe1z9NCU3%J-BJ=(qg@&* zua-SYEVN=j+tO~~KvgK#54NPV%ZAoijEVO-(x-nH%k7`evc0^|U>gZG+{7Exe~9hx z;YtW{Ao%9|I2+}C-THJSCG>0k&kYrxK$veX_BG4wiCS4Ty$sf{6c*Ms%_noVKR#^@ z=P&cgT9%G)_-lg5##FREA4anftB31oHNzX=reo{7yt~T7%NiYtNmlrE{u6rrB`rzc zTYQpF{Ymy~x8i*))6pEu0U~p5%mF6d*ek;9wmhG35?p^M8(k?^J6R_zb)1T9#9ue3 z?`<FUcGwj2TX%h)f`*SUUZtc=Wlew*KU1t;1>c>Ir&t{912A-dk&M8=r|*Zll-5O$ zOQ<Vf3_UQg*JNJlD!ZK+NhPM*ZU}oK!ZV-ylX(pX(7@jxDszN?uLKmnBQcciVtvHy zBSv9oYXfO5Dn6MYw2UUR<*kgcv!<FPaKXOB7~?rhR??53Ik)K~e|ZgODNBB)I$*J- zZ5fu$&>R-`z1uXefgFLXCss9eqdJLY!-cVGvWA~}O|i*TBahlZCS3y1X;uSNZV;&& z(QD}5_r8kpq9|{Uo~MFC-R+9dK(<AH2d(gmRHqS4V%nynVkZB@ib|k#lJshf)iR2^ zTmynfB+)d-wYFkY*W_BG@9<Kq;XbVDy-#4e8tFKX&*Bmqu~FXwGWIBQr?n2FGAg)Y z;;ek<)afnjBRcA+5Rr}L+XUHF-Z8zzM+x}TMI^$2NO1!!snws**?84P%@w{q?XKwC za*0vXd4~^(Oi=pGyhG6@sY&pa2adXuF||z40GHf&<|rHCLgBrARei8m@`!3I``sR$ z2rj9P#l1nbwBQoiGf;ewPEt;;l6Foq_6)o<P5sBUCJXnFetkTSqA4mMe+~1j|3GG| zy(jJBe9O9pK?@8+K}0E$Ux$->`v;SsuD06dw-&mD7Nh>)Z#4Gl#OQgD-(0<5BBNv+ zzBxOvo{cygb~Z{kkLjmsuPmhCstr*VS#Wu;_od#2ZY#d^%x~1eu@!7$cd3*0%EVK+ zVj>4Qp&us#X<dChRw^Xm<v*e_=?A30iT0GZJ)=PeBDSfpzTIVkuDyAq4JfWL?wf zm~KkdtYVy5tMZJiQj6;z&D$#IA`cr$ESzz!YOMEhO7oC<mbtd2U52vSrNdZL1iLAA zl8nK=kR*P}Uoceh4?K2l3GJOWpS)a|-Oa0RH-kKXND3H9g$|H+)cBN#y(`AKWk^v8 z=*lvU8eGIm+n8$XHRYIUNHkxwurtC>r4mw(>YN<`q@kRiHeP7u3fPF#q@+nqZ<w>L zURiU!Win<)Rx=!S*ZhgY_MsC?BWpn)Gxq|~QyLl+gkfU8g$g&fqePgIUOZf`T7XDx zF@lsKWx%TATA|lKyp5gV$ySA3q{oA0G>Np&VQI;m%i<j#_JdMv!_r(>#qJBY!6$3= zur3E^i__CP^$Bb0Nuxvcf-5Aury!qk-0HEo*9jk*&8StMftC@IKS4(akIuasb4ob= z?HRr`rnepw+}#nmIakwP<~&~pB1EWnu)q8AzT5nS{LjT0XDER5tLmS%M)STHagSZe zQxfg1vJim88D;$paD};bq8&&(H~4t>{rTK$NxNXgv>fZk#|#Idio$N<p{k0PltVWG zWi1Be_gx2HR$t>BiY$5EPo9{qhE(|En0RGdUmGpQ%}f7i1CaEkWSm^PgEJQ=w*2w% zir<8xzJxy12b&y=ECtpUdt8;XsM>9R*qm);{(Yg>5Ll)3NwZ9G82l3V&pYAPN~qGY zNtirQ{|}-7m2LFZ*0Z`gH@7cNwiS*>3R2jU!dh8n3IKKqkfrJSh`Q8m^5x)Z)Tw(T zOYo)iFH1(QKPPPlK?m+R0PNIi7&or6v*AJNp*tJ<5Hl-tdF^5E)=8GcU$+k_M7*QE ze8RT?%(eUO$ukJs&h<lLNFT*!{I%B9=LMS;o^m<`^^`OOT%w!N2DjePMXP(^h3XzQ z@|O+q-x6*(U-^`&S6P#p(63Dk(bCs5DR5(xaVK)wxJd=grz8d0V$-AGE#vxp8jgRp z+Fa)<AXLB;3H{K;0Hl*zjY8AklAO{@oE&2giNOieMzR_DO1WV5l32<p(YW};WGz;6 z=g_lEOYhh#%WV_e3)Tri-YL2e1SMeRP>{26eq!7ch37e6%;7W{kIrwKGprn<Vy9?6 zL^v4au6M<EuCqzg*3vFhp|vK`TQ!T;yg;?g=ZVNy>UX64eOY81buswW^rC9xjH+Vn zTKfjEVR4NmLk|7g)Ig)Re>a}i)b$&Pqphm4KlZoFsVI$|zbDPgM%C}THrQ)yjeCmU zL!{N`78R#d+_eZMR4DfiT>Sp5ZQUE+@^XWM(Wflw)buw=(aN=O=2!JYO{K_KleW=< z1N(lS^vLQBTzN_tGb3AWZTQ(RjaXAVuA05$9M?|FIwS4Ks^4b35J3p*yoM_XuG{)H zHCe9u&1<o$ZoTVX@8nTlCtQ=843Jyiu(5LUub2^oxz#i9@I~A0n(k0<-Qa5}v#j3s z#*(8JK?i<jHHSzhHRDG@)UBtKySK^O6qWH4?gHoIKC*A>id!_-4Ba+lR=PB~quK_U zGO%MdB<8cq8)>oAqhd7EnS6<y8rb%A&m`rNKCvy&o}g1Lchf%D0!5K@S3O!`iyqqV z@~8}+#$JgHp_e~V1%_elKV}o_#bC5o*4m<1?hNYIJM6a4Gy2JtD69@%QU1a=YtvSy zeHd0pA;jL0UuEcBJ$7a+EH`%4GLcG;HONKmZSNgb{5rYqVlAj>>6FUx#Rb>Lw_%P+ zSZ985Tf9bLpDf#NX88J>jtpOpux;VQ)E|Xbvf(uJ=so&|jo}E5+78**=LYDhAhyxb z2Y7}LOHt}%(+XRt>Za}&!*TITYt+6w<k?NEJSWMR9$ckTvv%qwL=mHlZb>N~g!pnd zG&%`%VjW0aW4ua8IaQTHWyG`o5;0i_D)z>mn)E5~i?!@lhJ>H`gMML`@s_(PfCJ^& z?k7yftpwYbmlha)zo=0-DkL9@viq#ig#TN5V>A2Hh%!1kj{*g63IEqfEg{b@RtxT7 z$DW=E#-=>ZRn^s18m?{mu5`{u%dL=dCI#9I8wmIfnrbgLU+Q7--dow3XF%WuLs~&< z$csth-~(dzl`~3`H?`dnOaT=IM4#me1QkV(x+9$`3mGaO1ezz_<F&nHS04Iu_KUoB zlfb6QyJLB&BZe_Q@SZI6w!CdNtyz&-6RbI2*c@>GId}9$CTSAi3;B%X*51y7?Y3ko zotE`#Qn0qxLb<Yr2t1ZmU3a?K)|7>_bCH;B;IG3Ez8t>Z`43Nln!k}DRqb+vUP!K4 zieTxaO5&_DY;N~$e);btK1_~EI6OzmN)B?mkC9Fk&>xX6dTu+6MJ9h0w$&BNHJ2^B zp7rWvM4v<3>~f0~({Uxfinl$b+&m@^RtTn2q|bcm_AXKqF#jcs)=PdYF;Cdezu~&j zG9iWe$&r$hiYX01rKMpr9ikJOFDUyR=0Ii3msE~naY?-45xQFdXUfWCHT+??U9Hux zhwA6ipVq>nW%UZ&;y;r0VWj$a4<+Ar`|`qhJt4Nom}}1Q+{5X!O0e%6*z0FD%^k(6 z*t4m+OajCQ%GLNXtJyfp{8fk}?-Q%NXWLGdvgV~0mcrwynPeYFZj;-&@m56xWGAk) z+E6wF7Ygv_9JgCP)0s!@MUE3<(Z&D1T={-@0GWBQy>zfaS7-x1Fx*v%nwhmFPD@c@ zSM{Q~C+UuV4XFr0=W@b(b!O$X@#Y+=YH+)YQ!^{-B5m&JLsY9m-jt;DE_~b+&``jE z=QXBsahAjNSXg@!rX+3T+zU@rD8!leG}BAUAk&y@k45jOw5_EBwc;^rrr(W_(5{-& zC`pk}PLfx>7p9}kB${7=6sUA{j2M3JQN)Wxb{dqUFwtp#J)B$D*k)?-QFGvuOX@4G z4MLCqpT&da#fC2=%e`;x=3AR<x}!&%EZYbjiK>-E6bC@uiU3$4X?%<>!SaPoDPGQR zG_eq6G1fPgQ(LC`%tCUf%Wjg*yV6m3Jo>>}NT7*4Osz3o?w5|<+(<UrLD!-jO+lWn zmoNB=zV>c^aUZxMpz9oxognu=>vJ-zChah;)vYrjE47tG3E=g0K-QpCpCjs?TEkDd zwoN$5@H{--gT=g`4^FybDq4eIX3zATtZgi}R<|WOc~pxD$FOJ+T_ipD#e4GBZ`+4Q zRMoLIZJ4o>Dhg#1b5_&v`?U$TY9K6Q7l0CVhv<|UBAuQA_@W43d!gjY&jR@yo|RvN zeDu$H8}x8ve|#lVUDSE^N?Ue>a_|242fp#J{Yg`<{VOhk7fD~YLZN*b8%m$addr&R z2DKL0xU-7U+QMmJbNTPT(g_hKK4`slhAyHx8>z`WVTU_Qln$f6W~wAmIAkn}TRSRH zyOniXCNWPCGKj_2)>pB);zB6%ghxinBtGgtAZM)3uW;7hr)ko>i#6e?8<RL`HE3?J z52I9^@4-OtaEmbOahOO5rwHV9W@L@*hz3<hmfd*7m&Ohwka_@hRfcceE7v&_`BrxH zy2d`1BK}HkDSqEdw^oaN?d0los`&aBP1PB{Sdy5^?&D`>0b6f5icUI5$bIHn@+$9? zUOvseEoCL>ILkOnVp`!~d;kPd3R`W$9q?3<^wOySM|BBP>kOB0x3*<ll*aGk@avH+ z(6K2@(>PNmI~2%4_E)gFHel<ju8}RzQQQ_0ff>BdQbbUg0fCnE?N>`x9dw)mNx{^# zQ8Kt5DXZ)z3aXn_COef%@=T(3ODJh$V)A^<kp269Q+!n@3j4B7l}*l?OUH*HN>nRz zQ6JV7@`_x3N0dF1OX@@W0@csI6j++CtTvCmKDTWcP}YLObq&fC1TPf_{56n}J}c?@ zemD|MY`kN>OP?X?<G3-K$va@~`o^rMC^$l-&Y(+ZL8hp5VMYxH!sCyk>7YZ8u^q0R zA@oc-`zoFPN2il#8b2`ou-(B#V0*Q-oMXMM7jAJ%Q%5gamE8p8(2aMqf*7nUdR>NF z<ItW=j%-||q>RPiHg+lV%NMt9zG>p|RD~ZqtC(+jC#zft0MZDh+3L-_Y$oklEhwJ> zT>sn*&V#p))Z#N69S_BYlj0|2u4TsVKTCRg+k9Daa?gvd@1B7goV7>ElzGP-lRu2^ z98Nxhg+}IO^sqixVpV*t275fKGeShJMSG@S>%aGDo}E&#a@23JV|<WRS?QnkD-0c& zhX)FDilJncE%vP$hc5XQ*(%*Xa1Rv))92tYsx8KwbCG;ys`2XT#PHPQX}~AWI*KF< z^RgT|^+_k1OKM&QQ$d#d=nVnaO-p0CdmbiCTUl8k5pQ^kNt^UdIg^j4WXO^z=?H5$ zQj}|=oKvQU<nvB`uj(s*EC^>$R)=PiA=rO7b-b3R`@%HOZ6+>$5qN&|FstD4>5^JF zPLe0j9TIf1OIa|cu45480Y^h%56%jfGuW}3G9aV%+p|HPQE4hrY9&DpmQs>1c{0Tk zP&7?u+GHO3Ujaf3z4RG$^h2nTv@)YE8Fj<3a5baXF35=3x>(APkb6hb5X@K^QaIt3 zoIZG~Ha-~2lSm^})ZySUjJ?Ft4QMu_ZBhl?5y1(=<%}K0u3QPCV^2Ms*Y^j>k23cn zPK`T$;csbU4G!E{Hs*-y3wTSeE6Zrq9HpVF*(vjPb;W<VKZd8ze&DK8l?s{0anIc> zv)*Wq5VRPsS;<gWOd(+G9*BI5b`)V`Y!?wyv}Fa5TuXxGPy~U3>tlIn=jL@^dK;~a z%S9&RQN+UY82(y0`ISL31{<x9<)hLc3oU~0Haz-rmu9?>?IW9(*<V!BrzO){Ul%9P zbmQ7-g$TD?pGz}0*imQG+nSWwGnwN76@#6YS`}5NNhu~sJWm4`;Id@ev8NzGbb5_O zo}(5|PEjM<scMSx-b$y_E&%m!uAlL#v0&z&h*7UPJ|tGj!&q=Fw|-Wf4yO2nn1^&= zdbjT$C{e$fYX1PVE9je%QrcNaJQN0@FJxNTeHJW`cL}R$mN{$iJiT_Bih{A~G1x(1 z<=Gj#rC^n!EX9$yk(;4X!6bHZoTAJ@!5g@`W~7rMI7EpLf#nmcG7)bWD2^zU;)YVf z7z_-lOMs371>jg2(mJdXOh+Mxw5m+UOjfbuh_W`IOOAGBr5s}`ak$3-l5B5Aw%I-# zNd?Y4V<p!sUWBVbtra*U#;jhJ`XbCWk*Q~kBv8(>;CV;mYs@t5uOk(^dYxVyJBsmZ zv}wmvp_Q)dkl+m<IN>>Qlw@}+8-dmOLLO%EV}w(Gr|M}A?B=?I>5fLnsqED)0YZp? zB*9Qr;Rx<<g_FHT5RUa2Lcz^O5U_Qq!WIsRge;x5X0Rb7GiJm;hYObf0KUHwD|X~4 z)QzQKz2Cx)0V;WfSwZXn06iDuq)blY^v8+x0BSTSEkZ~=l@7Qi1E2G7@&j~7gso}* ztyx8?bt&%S)9zx5w-BM=IDcVZL|%+}nD)s(rHY-cdW}W5PvGPU;TAllFL|H$5~<<v z0<EbamzX&9L&hAL1+xDDR9F(O>QODI$wvZ{kr3{T71r(WFef&x%i5cn*1`z4RZaSH zzysb-sK-UMpIj3tD=^$&FOdbf)iU@h8GO-tC^pFD>Cli*+3F%EiX9P~tF4*hL5WaG zBibiZfy>zz%+|)#l>%LpFkzSsV@S1=hFvBFj5eV{mnf}msSBmC%?nMjC9l8H(-~J- z<T{Q9l!|ro5C)V)aN0TQ!&zfCDygV|9p`!?-<F_<a!~h#H(0lS5}?T=x}FiAYIA<U zx|`LS`uOzkbyw})Uh?IaCLVg}czvL79s_JsFrqsAS3o^RF?+>55sLB2-g+82os;mw z`RC+~VAbt<mAptvj#gWC+3GReEEd0YD!%FVK>f1|?orR(O0T+okpBQ|#rG)S+O<RM zpJXq$V*7-4HoZ?2m|twh`-FBjy+;(EWG}X2`-E`qdXKt&kiOZA?h)7Sy-x&~Uu?zq z2;th*e{}mHeY+p-5mOsdr^E!L`ytlZjV;PH?ffqMvrRtg=D#$m5K_8ID>mPxa|tZf zzfoIIk;ZBFX1%<4T6N(VJ;LPLM&9a*LZ&~ea7-S!P+yUkYFYL&%*9PPVMnwwp9q&7 zFCZ`ZBI3kX8geGugp@M+qe8hD8;Y9BVrr#$ptj-diHu^}(8{s(XvEbnu9TD<TkGK# zI(m%RN!IbmTUzo7)x=|j9AZ|nr>PF+#@%ao?N@2iCvjjG>6OP)Mk0M;E$tsfvB{M! zw-|mOBhHl<H))ilIAl^vR1`4;VI$~`o`UQpkP7RHY7;qnOh}2MNAAl&)MbWzB2>v@ zhSWg<TxXUsaLK^#)<MHH9xx5y3=b$7CQ4pWTFU}a8dEqEBp_qc6x>|L8PX{!?XMLM zn4TMCfedQkq1kWbi6+!gE=}+XVf3T%T*ZBHN^x^zB$3*#F21naW@<5RjiOqz8P6jc zAc{ozi!*;RPYAO0(FX|h`^$BAHNLM2wRSpsVrW-_3oLSYFH$&^jU&C&4J0&BTThe# zc;^AqNt^^xZY#|rp;UEFwgH|CRK1gwSGtJHibF<CJfcf(=BDwZYy(x|^*jQ;sLZpr zRWJ0Kb#LyE2|u6Ab86?6)uf+)q;12Nq!N>lR#8&k$p^u-Tc^C+9w{-hIqSDwN?NUD z+I)oM7C-LASJ<ptrkQG8`8A0}uXpr`U88c^?~DhnuchWl%_kA*8HmZhYbvyo!LhgB zLgk~$adky51DawEjR$tL&M{k|@St&+SFpmBc|p~FBr>b333V><B7V$bv@6pF#rGv7 z&Yh?ZFr*;jp4vSJIAt6$O3cNj??7VVq2S`OJ(WcMR#8$ro|$B(>G;hTlZu9YVjis? z2i^TksS&HYiN$j54Ep-xMx=AQsVAtGt@JvQCna^ol(1&bN=pPYdvE&=$zZ*BsYp?o zLkTl+N2wzi(A(`LcLn&FHd!dVElerQK78&C&8~{iItx;#f)C=XezLfFqh^haYWA?a zo~>o@<^9ZQS6bj%T;@rcGsN-6EVvdBx~Af^iKi3{Bp^Boqb4h_y@G!cG6O!iZj#g_ zN@$Yer7Qr#EIA`N#B*+5g#e#S@rWeB9nv_tX(#A_Rpb|_#-69cmZK>|@u?tKN^S~p z=@`lso;U-Hh0|4~9D81vuh7_@fi2ZI@zRrl;}h3PTCyoN#uSQbk-bFrxb?)}$R!mL zm#%KUd^BL5sFoF^K{@2DhX^`zS@|Hqz*{fqRHv3O7|8j-eVUS_sns5#13fendDOj1 z;ZX$fF$B<{f=y0>MDWT7rzFkbAvFWCJ!T{6Bu{~2x$hBQt(+WI0JBq;t;ck<R2qwO z%Vwb`1t7>7bc~EO+jz}ktf8y1r>7ESVCThqATxib4<vtT)RM1QI7TJ?k}p_18g%zt zBmA`_)EwK{wd+orpu>j(m%&Co6O8Hht7FSP;`Do+Z;n^>>?L%U+8e#O6?XTK^J(m; zp+Lxv2h|x<+se6OO9uQmak{kP^MdnLsYnDIQgok0MJmbby8yLLXmv>^u&>ZWky;h) zeJ!p`<5wBAp=Y!^CKInvtG_D`iV*J0#je9hs{5PCW|U(!kTK3eeKB`!RIPZ5$(6mF zYS+ZUT+8R(N}OE|&p~B_H2d4V@8+k6q{mUT?U9bN)tv3FQ+^BcF!lQ3S#_v#uD#Vg zRIF6Bl2l_^B$fpTrNEBX)E3Hs;g~R*BuH0TSBU_OI$@e00($DjNkf6+I2dda#R;xe zYEY0?d<>v^N#bORKNAf-=mt|`IzJj>d48QRqkve^zj(t&cuFRY0b$hsHlEjd8h*ks zx_x>(Iq~{p5!h2+Hj$$~FmT3oBanR#zq8-^VrDW3bKZFOdZI`X%&Cd$!@UH+&?%1+ zXYa!?ij(5V&pt3{jfSVh@ROsv`gFt-;v3)*Pp?`cCOk`(9wxErFrpQO*1h6peyA1{ za$0-dJ>#wkV*@<o8Q&9E>p^l7J5P&-uJ;&?;E@*UHOma=4IUv&fslC<`RBe=_#gf} zkBvFYSJ{_bV)w3&m7Y9}PTAMhrw)GOCa2ycWt@cLn|L=N)%hH&@q85P&R)4dM;XwP z?DVXQF8=_Y`?9|w@c#fZ(}#~eGxbG^x-<3X9>SfTW`2%5%n!`3-%o#Y_shibrgZC{ zhb|g8M_sh?`hVlb40|(|)tviynA-WTO6TkJ#r4F4PGoAk#*owB;V6(8i7tLD)vq~Y nmVHpf%K|E&7G_^0p_qCKs{BbD`1C>zU`cWDxMu{3V}t+ME0ab` literal 0 HcmV?d00001 diff --git a/docs/resources/images/group-expand-sprite.gif b/docs/resources/images/group-expand-sprite.gif new file mode 100644 index 0000000000000000000000000000000000000000..9c1653b48dbd2d4bb00886c379ba3a66813737c4 GIT binary patch literal 955 zcmZ?wbhEHb<YY);XlGzB^h$R6?=)rU-Z?<D_Sn*`*H-SmwfESuttTEI1A<G>uiX3i z{QdXWpZ@~^!zdUHf#DSbia%Kx85kHDbU@w$<p~Ck84S!EG9DWiI5u;0Xvi2iG&C@? z$aqY-(ZJZyA;cIGQc$SGz{btPAn|~q!E>?_tHlbAgvKT&29}T*1_wr_8B7v4Oad0D zH!!O=%UO7AS#fc($7HS8Q(IPEULLU6Yp&PURaaMg2<zqi5P0k|EiT;1;le~EkBKVH pOdgtLjox#NWAF8>6lV0F?{M|skyG2(-{0TB%q{1$Bh!Jw8USBOURwYF literal 0 HcmV?d00001 diff --git a/docs/resources/images/guide-icon.png b/docs/resources/images/guide-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..0a3845c3a41db03bcb177c9d36b5587d4c9d2e36 GIT binary patch literal 1659 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 FV1low2Q2^q literal 0 HcmV?d00001 diff --git a/docs/resources/images/guides.png b/docs/resources/images/guides.png new file mode 100644 index 0000000000000000000000000000000000000000..68e76f62f8d03b79c44bf7c33c9e965f5f85c684 GIT binary patch literal 22038 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 Yc;7sbk)37C1KgF0f~I^m#Pa=r0Dk=4n*aa+ literal 0 HcmV?d00001 diff --git a/docs/resources/images/header.png b/docs/resources/images/header.png new file mode 100644 index 0000000000000000000000000000000000000000..93b09bc78c4394be447bee52ead67a1ff0416bfa GIT binary patch literal 1089 zcmaJ=TSyd97#=doBohowBjGTKLArC<YcsgXy0fbb&8q8``w-OZ%uy$uOEbrI+~}pA zB9bCfB#16AfnbF_6oNfTNCZjskPuy{hzbfKg0kq0y4pkAz?pN-&;Nb@?K`JBlWi5{ z+sX-os7SO6DZH=4D^lkEQO)aHc&kOR4C*#|QBJZT5mAgR1PM**gDEH}!$;;|GeMNp ztLY5Nh<kb2&?w3Ep&ZS`Xo6^NaZE`bfCyw^pQ?w+&(rrvpekXqCm=GS8HN37d)|WG z`D9wo56GNCw(J4T4vz^mh$P@>gSyQ-VRDI=$7k0}lVHgO4TQ<%q%vYBh#D3I0gCa+ zOppaZKgIeP&d)UgFT*l4>!q2Hhh_Lch-X-^@{u^2rS$SCA-)m|-@;@+LMBhsxm=FQ z`6$EcqgjsQXvRx>y&ml0v4?deIUe2KQD6|DEnBLIR6_?Yqm(s<P?*G-E|;L0tF*ek z(k9$6+L26}r5LxQf}<$@-&NCAy=|0&Yx(|@*iH|dkWN9{7_wwMxZWLZD3gy`P(p^4 zHjKeS7d!h6WZ3<N38LKriUp!1tGa7hLWm-t&}}5?GE4|z5_3?hs_?8g6!eC;SZk2; zvuuos2m%-L1^oVCWOuyP=PO_ZLmtwgjtW?14I3|tb;Y2WII;jO^(a*0mZ5>AqItD= zF43ZVD_Es?E<#Z(jgz6>(f&2+f(h%#J+2BDUsk0Lb*y&_3%h1s|ArsMR6>ZPorMEk zU6Un|vMS%)^nn{sCMqk<MK$y=Ub_DK;_;c%+rRfcz3}2#-JOj+^%ozf+d4KJ6qCNr zK%@sf`}75D%D?y5HU6r8Rd#ti@M_o93GVD@YuVW1xOz@2uevtC90PR6;QQIJ>mNoM zer&FP(DS2ys_L%#mCbBfAV)7<IiDXDM{1wX_3d}64>vCCY<l@9`7!$`|6=?6Y5nb+ ncZu4cXKpt5zYI0r|F!iHvHoOarY1WZcOP{kmJ}vi51se}&1-1( literal 0 HcmV?d00001 diff --git a/docs/resources/images/hero-extjs4-alt.png b/docs/resources/images/hero-extjs4-alt.png new file mode 100644 index 0000000000000000000000000000000000000000..ef319124334a23365695da7f8982219e990e6de4 GIT binary patch literal 56899 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 literal 0 HcmV?d00001 diff --git a/docs/resources/images/icons.png b/docs/resources/images/icons.png new file mode 100644 index 0000000000000000000000000000000000000000..e6199cea6a0365d9b2e9eb6241427f7a5647ce59 GIT binary patch literal 11943 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 literal 0 HcmV?d00001 diff --git a/docs/resources/images/link-arrow-next.png b/docs/resources/images/link-arrow-next.png new file mode 100644 index 0000000000000000000000000000000000000000..557b6bd212e57fd1245c3c69d3cdae4210422f07 GIT binary patch literal 501 zcmV<R0Sf+!P)<h;3K|Lk000e1NJLTq000aC000aK1^@s7A#!YS0000PbVXQnQ*UN; zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBUzmq|oHRCwBA{{R0!!_ISe9GQWHGXn!d zI6wd~SolU4Gf66G@B;)8Bal@JWbl4|_xdP60D**AfOslM14Ceba}$UGqL~<w06+kN z^sq3quuKw@Q+WgA9{^&9-#@><VSwpH#xAjWy^J7+Z&pnnD;tLhl1V)P0R)z?^owx> zazcRk9uQAFzG=xHkR5d*(()Xv?3{mK%3nRY)5OHZ%P$BMTsNVn4nzYT63@afD)AX6 z00PhN-8cpGnE}hMA3s=w3R;?Af;<AkAp6!Zy?g$s6Q&v@$SWjz4`{-1fB=KJN&qOH z!^p@e!^y+<os)<E2OB5nZ;;|&-@mhd|MKze_b;F39NW0~1IV?GK!xGL((><seuTRi z<Q~_!e0QM9)-bW(zkX~7X_zW3Dfem1%(hAf8~{n<Uyz1!NhNh|1_nluC&XcjfPs|` zqJhr!0aCs|e|!OIx&e+PE<S-Geh~>CG=uj64Tyv){0ij11mYQBPlJF>Py&mfgp3)` r9~wZe0#wsOAif5~r+|L?3labT>U*fZl3zTU00000NkvXXu0mjfVHwR$ literal 0 HcmV?d00001 diff --git a/docs/resources/images/link-green-standard-over.png b/docs/resources/images/link-green-standard-over.png new file mode 100644 index 0000000000000000000000000000000000000000..0f08df25041c29d5f344059536ac7103939d8bb0 GIT binary patch literal 240 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{I!3-p)H>>^wQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>Jib4W>LR_8d_#);?<g8V5Zxe`LDp#^u+p3t`p@z3;qgM0+ z>HG~Eo*jaLlSN#b_@~~t@aq@OT&?QUBWPX1UA|Q(Y_^zPB~S2l(WK>ym0R^}%XwlK z$)>JUwm5yD8EC$dr;B4q#VwYD?Tiiv3=A7)EKLji{NG+RZF}ru;i+Nsz29EdmhoHc kYP7<KW7F|ve_16Mw7M9pHD8{w2I^+;boFyt=akR{06(@)T>t<8 literal 0 HcmV?d00001 diff --git a/docs/resources/images/link-green-standard.png b/docs/resources/images/link-green-standard.png new file mode 100644 index 0000000000000000000000000000000000000000..e7512aad722fd4389ebf8e883c35e72a1db480a0 GIT binary patch literal 240 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{I!3-p)H>>^wQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>Jib4W>LR|X~SvKs@uHB}QFkh@{i(272+1>-@K7D-M`%R-} zi3Cg(=-6xI*UuL;Ss-MpVEHEHtslI?rwgYn63<#8)wbK9d6(YA!&W656w;SU=B}2B zohv%|u+4pwe4z0RMxHK?Ar-e+4z@Eo7%(twn6Wf1@biCr)v)=(YtKEHAnLXC=+cij l?wU;v*PrRTDDVfX1cT-c#_IDi_ojffd%F6$taD0e0stYmRr3G< literal 0 HcmV?d00001 diff --git a/docs/resources/images/loading.gif b/docs/resources/images/loading.gif new file mode 100644 index 0000000000000000000000000000000000000000..ea83910a143c54d4d2c350b7e204404f3bf385bd GIT binary patch literal 16717 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 literal 0 HcmV?d00001 diff --git a/docs/resources/images/logo-screen-noglow.png b/docs/resources/images/logo-screen-noglow.png new file mode 100644 index 0000000000000000000000000000000000000000..3386268252046b62884c13181a8693e6aebb62c5 GIT binary patch literal 9394 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 literal 0 HcmV?d00001 diff --git a/docs/resources/images/logo.png b/docs/resources/images/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..9d413c8597cb9f13b38fd31c5ac8b3c42d21b21b GIT binary patch literal 1243 zcmeAS@N?(olHy`uVBq!ia0vp^{6H+u!3HF+1dHwgQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS=07?@QuLn2Bde0{8v^K<nQL2C3WatnaE85nHrD+&^mvr|hH zl2X$%^K6yg@7}MZkeOnu6mIHk;9KCFnvv;IRg@ZB<rk7%m7Q#vqGWHUU{hfQG$1#% zBvGLvHz%*ys=`(YY_1iM4HDK@QUEI{$+lI3I4Z(7K*2e`C{@8!&p<cXz|2s=%tX)7 z#K6+TQb)naz|cV7&`96FT-VUR%GBJ-z)%4Slz_GsrKDK}xwt{?0`hE?GD=Dctn~HE z%ggo3jrH=2()A53EiLs8jP#9+bb%^#i!1X=5-W7`ij`p|xTF>*7iAWdWaj57fJ{tG z$}cUkRRX#c;)UD-xUqS~&|m@vn0`fKfxe-h0mw@*g}%P{mFDKcRTq~8r6Sym)!^cg z%7Rq=pw#00(xPNw#HA^NtSYc_E=o--$uA1Y&(DE{Vn9ZINq%ugeu08>u&JJ*f^TAS zW*$fcti#vW$}_LHBrz{J)zigR32261W@d_&vw@L?tD%{xlYz6jp`ojRlckfPrIWL> ztD&iplZk~1Os`9Ra%paAUI|QZ3PP_LPQ9SSkXrz>*(J3ovn(~mttdZN0qkk3Ox$iU z#%Uf@ZwhX=nBdf_4|I$^C~A?S8YToxKOiPN;Q~4Eq@S7xOz%a&ge|+;Gm3$M(bv<( zF{I*FQi221|NsA|vnBB>q@^jaGMN7O`}_O*z@VT>RufKpbh)W3{QLax?{9VoJ#9^? zpZ|eOIgkJUe|~<>u5i?COWK0AuKykk83E=OXYH^1TlLglErRz*7mF!#?yryX)<2k! zeEulKbmh-)`?`kP6Z+-t?f&}9{9rr6sWI#PJloyR>@yGWud`HDJvx<R`C&!_#ai|t zA%nkjqPOS8dURd2ulw`Dp=|H3dwZ+H8GZkHFL~DfB5`?aL`1~bPft(JcClhmR^?*c z=$)RPetUKJ`n<=ND?dJR&5OCH&v|6s4xXRi-rlZWU~@2s+w94aPT}YYrt$k~D%CH( zj1LRDCL-Y>zcBFY_C<@7W=z@C^z!EB^yv<>%HQ1B$aCVks_J>;dZ1sw9&Bd6&bV`y zifCZ{zds-IGc#8*8I^kK-ga21#d~BCPYT1FRz-&fMuv$q+=DD8xyFHt8&6k1mvv4F FO#l@5x}E?4 literal 0 HcmV?d00001 diff --git a/docs/resources/images/member-collapsed.gif b/docs/resources/images/member-collapsed.gif new file mode 100644 index 0000000000000000000000000000000000000000..16bce1d3023a0327127a1a3b01c0052a82be4fdb GIT binary patch literal 856 zcmZ?wbhEHb<YM4uXlGz>`0vot(lTw@wE6SrFI~EH`SRr_PMo-N=g$56_n$p`_VVS+ zSFc{Ze*OCW`}cqT{9zacqaiT7LO}5+3p2<^Iv@g+Cm1+P85lWaJT@$FWMGq$VR2Z% t(A3N##$%B%p@Er|NkU}H3kAmpRu<i)D-uCUM|=7B)nZOeN_Akc1^}U2HFE#} literal 0 HcmV?d00001 diff --git a/docs/resources/images/member-expanded.gif b/docs/resources/images/member-expanded.gif new file mode 100644 index 0000000000000000000000000000000000000000..d72c132c0b6f00f29a973151b3e719226430ef4e GIT binary patch literal 845 zcmZ?wbhEHb<YM4uXlGzxkY217b<yF!gH!X5kVXG@?b_A5{RdEZ6pV(zNC*MNpDfG_ z3``6<AkTvG1OtZ_11pD&$A$$5n>mEJGz1<bFfuUk*qI1SeBi<)${Hs#A<%)LLqW7l JL{fmk8UQU48RY-~ literal 0 HcmV?d00001 diff --git a/docs/resources/images/member-hover.gif b/docs/resources/images/member-hover.gif new file mode 100644 index 0000000000000000000000000000000000000000..9b5339084762ba5148d1f9a2ee1d849c2a6954a8 GIT binary patch literal 861 zcmZ?wbhEHb<YM4uXlGzxkY217b<yF!L&&24z1x56zw!ISw|_w4Q7{?;BOwG7f3h$$ zFfcLbfIJJz6AT<y46Gb79sv!FOl(|IIsy!d2b&ofEMzze8;-OvDGF_{2z-33o13xb ZO#}mjdyk@HP>RLG2aZ#?lG#`otN{>aA`t)p literal 0 HcmV?d00001 diff --git a/docs/resources/images/more.png b/docs/resources/images/more.png new file mode 100644 index 0000000000000000000000000000000000000000..a270ab4a65526cf9780b566b5fa8d9afb5b00d1d GIT binary patch literal 498 zcmV<O0S*3%P)<h;3K|Lk000e1NJLTq000XB000XJ1^@s7-m6Ej0000PbVXQnQ*UN; zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBUzlu1NERCwBA{Qv(y0|+pIi2Q|zECB+D zQ7C1mABZOb5J1d8R>*{|cGeT@hQ0s+!~o>*0<jfX!^}OG^+60E7GV@io1OgU-#_NJ zv(pv;1Q19!FHmzN*i1&oe?a{I<;;}1AQKH3py1#C|2siCfJ_-im<xbF7>L<{_!SWU z0SF+lgmCICD<DS%i1!1{|I9r3sZ=76Bbno_cl*@cm#%NW{CL8`#m@4zHqh*5nzPR5 zL)V|}TYK`3Gt;-9e*`L595V;1etPNA8#{3Uu8)jbC5zQxeE4S1%*6PQkpb+qeJ~fW z0I?Vl{{-T<009QGT>;2(1Y%a0hk$Np0@8m3x!Dih>W{kv76&S{1=4OXg&^>HR_Z=I zIgx!Jd7vwutm;>LgKPm=BhJUk_6g{POFJ(<`T$k`c7JWqPoP0R85tSeUVQk<4~hej z;(ecg{0eH@aK;8^a{ZbU=cnwvqzf_)=!t&~Ar@DF>>u!;1bSQi_^s!L&p&(vnZh6m o^m@6U@gq+Ig>OLa8zBAy0QY>X;`dL66#xJL07*qoM6N<$f`z8qb^rhX literal 0 HcmV?d00001 diff --git a/docs/resources/images/phone-l.jpg b/docs/resources/images/phone-l.jpg new file mode 100644 index 0000000000000000000000000000000000000000..004a88ce2c460a7d77d8d6f413be8e2c1af23560 GIT binary patch literal 23894 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 OlIREs2nYxWKmXas5ieE% literal 0 HcmV?d00001 diff --git a/docs/resources/images/phone-p.jpg b/docs/resources/images/phone-p.jpg new file mode 100644 index 0000000000000000000000000000000000000000..58a99b75b2378b7a7992ab0414007d231fd437cf GIT binary patch literal 24174 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 W4$Hy42P}YqfPjF2fPjF2ga6r8*XQ2= literal 0 HcmV?d00001 diff --git a/docs/resources/images/phone-small-l.jpg b/docs/resources/images/phone-small-l.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e4eaac2df987d2adb600f3a1e70c3755d9ebf20b GIT binary patch literal 12852 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 literal 0 HcmV?d00001 diff --git a/docs/resources/images/phone-small-p.jpg b/docs/resources/images/phone-small-p.jpg new file mode 100644 index 0000000000000000000000000000000000000000..244e55374faffde6b5415f8ef741be2ddb104a7c GIT binary patch literal 12905 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 literal 0 HcmV?d00001 diff --git a/docs/resources/images/preview.png b/docs/resources/images/preview.png new file mode 100644 index 0000000000000000000000000000000000000000..3aac3b48e42088b5de36b285e0cc1bad6fe0a619 GIT binary patch literal 1361 zcmbtTTTC2P7#>4v8)6$JK6r_Coc5uy-JO}e@5owlXK6QfH|wymBtGb{dw`M7rL#j> zNWcKHA}p7n;SxwC1T00X#7KmY03ifYStKAKNGv1}pfN-VSGju@Sn7lL;z{OQ{`}wf zfB$7Zb2+b_jeaQ_L6Ecd>ofz;bK&ny6x=UWKAMHci;68#Nf48j3|0n6oL5W&sGVn1 z00UTW=Iw_d7D1vea_&SW(Q$+Fh`gE&`>6fA1knf*d(|(oo;0AKNg#z2EZCo&-5APw zE!a)HgK$Vzkjh=pl0ib2)9uMh^O(KZ)i=>tKLrVRps=W)za{u6zXdzsrQkhm#xeB3 zMM<+@hoTZ4F4QW@0M)Arm4`5ps6nSDb%a@GzJh89lE6s~P8d}rLFtVYL83<sgVAJf zGR4sGN3r0`f~6{oMB#WwMus{=s}|)HoHU!wIHAEc8Wr?V`7#BC^{WKmg$M%;d>)yT z6iyV-Fe95JrYjZ<Dm_ermyT%#-%*)h!Eiq-;iQ@frxbB?IR4v}=a0R83Im?#{a0e2 zJ5vHU1AJn-?17C-z7P&2QC1nSiYU89@m8dYu2fMGeW{{^S`+kY5_Pa1P6%5L5Do`r z7kmmUcz~U@V30%2abC)5GR6^RtI=#A^dxB`Oa^P5O{df74JL!0)EgpLTJ)szKu{uB z?-Q))L~M8%cnL<Pfy~_j-gsH$(SxKZ?qn_c6Zwv?-jlT$PQ>C+3?6RnKUy6z!TAYa zj|Ue%jz=E|aNcD&*sp#QlHpGga@}y-^78VwwzgJRSGTvfJ32b@^Yb@1HwOj=0)aqL zQBiJgZdX@VX=&-&+S=UQTyJmh&dyFrNlAHmd3$?%c6N4KTU$XvK}AJHb#--NVd2Qg zNGKEv27`@_jpO6vGcz;8!^1f_IV&qG^Yil?8yl08lMM|Gqobphm6hGy-ObI-6B84y zt*!n2{maYCb#-+uEiHY0eG3Z<Wo2c>#l`FE>r+!x)6>&UO-(~XLt|rOOG``j_4R{; zgFQVxv$M0iySsaPd;15gc6aJ4m=~=u&V)nD|Jsq;qh&FWuhve-x&4#wpY<_OanI22 zs<hhLni`9=|3*i0RMmsUQ@?M$wSVr?_sc(BzILkY{pje&pX&k-ev_;22OfR!(XTIS zUuTtz^xZqQ8j=}UOluahf(?I2UsT-ddVv^cn9j#P1TJ$`Q4c#qJ1)i)-+TH~=AEyz zN1r?6D%xC8{dn`ci7U^x>K3t}%Bp?kulX3~>iMN#KK{~p{;8)C|MRcC_sMCS0%an0 Mo0I<b?GN+*2Dy$u>i_@% literal 0 HcmV?d00001 diff --git a/docs/resources/images/print.png b/docs/resources/images/print.png new file mode 100644 index 0000000000000000000000000000000000000000..f19d9a607903b3683c314144720827c3c63a7691 GIT binary patch literal 829 zcmV-D1H$}?P)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F80000PbVXQnQ*UN; zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU!-$_J4RCwCNm)&dAP!zyV*QBuxZC9<% zQEFFpFXBLD8wkD$8%!MdB2y6YK}7Va_-_bKkv=+nn$C5oo9t;+K|~!^Q1n6AY}X++ zrFQ*Xz8de1Sy^kECTU9#9CB~MJ@=P$&doWoNRkBIlpg4^bRB?DyJ@jlc7|@GexxoF zwsS}~kZ$2gqfiq~jQG*QFJ|7XR4M^Y(?dG|hCHxKTw3&6qO5V53PHV8OdJ%wYjgrg zCIF=N0f;7Cpm$AE01+uCh=u|5u4xLup%>xAig5s)Yia-%7ME2FVU<h(NUGnK`V-aE z1NqW6<nnpL04&QI_kd6luc1r$>GMSj&o|<6h$oW3^Stp>P^rM(`w!px1A!_N(wj&h zH3ksG>4D&3%Io#Y^CL$GVd=#Jl*?tq0Cu|_PK}Jh+S<B2_xXGjyIp>u3BU`2(?U{^ z$rY-#YV7<4(}gA$i^0XqSLAUdG7mIG(3&COc|neOyTsvi!}!EGc^nFbfG=dVbAaP` zI5~8zZ2;KT#Ms&Dd~SAD8-PX0_Uz?y$7(;TlFYRL$OBXdTQqE6vm;_TuA|+Ln*IMg zVD0(Glwnek&t+TQ)amMlz55R|^Z-#$ND@|goKC0U!^hQ@0Y*oLp|8JRp9k<Mu#rS{ zOp-*)0QEMTh5%3w+H9meCP}g_iDyH0aBXNBf;5x*{3#YY5gZ5rhmMTZO2E|{x1d-o z8r~RxzL(~o$aWZ%PwPJuz@&b!Y63)N!ne<iPfo@YiR;uJyGIfQ@b`I<0TV~l=>WW* zLtodG=$k+3Uz?9#zlzMkOt`j8@2=0NW*<`i1Hcy?Jm~i9^Q}aq(+tCya{r~NsXMuB zCYkv0J*nJ^qy3Uv05ZD*;lUjldj4*!P&Nh7>vWt}yqrP0iT@GwG$gqD_@+D?#y4m? z)k+?|$92w3Pber}x!2-B(ClW^LQpTqTiE<-gFmLK{1spT!gfpHpLZW~00000NkvXX Hu0mjfOs<3b literal 0 HcmV?d00001 diff --git a/docs/resources/images/sample-over.gif b/docs/resources/images/sample-over.gif new file mode 100644 index 0000000000000000000000000000000000000000..612ee1c59457584dbf5b6f3b178e1dc65a2f2199 GIT binary patch literal 2594 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 literal 0 HcmV?d00001 diff --git a/docs/resources/images/search-box.png b/docs/resources/images/search-box.png new file mode 100644 index 0000000000000000000000000000000000000000..1d2871581f542250bcf848ee4bdff81f3dfeac55 GIT binary patch literal 1988 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 Uz5F7_*VzB75n<87CVo=xU+|qJZvX%Q literal 0 HcmV?d00001 diff --git a/docs/resources/images/sencha-stamp.png b/docs/resources/images/sencha-stamp.png new file mode 100644 index 0000000000000000000000000000000000000000..089455c720a7d881d62c5456a03ae33384cd4f88 GIT binary patch literal 1849 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 SO>fZn3lT&@Fuwi-Dd#^_#SD4? literal 0 HcmV?d00001 diff --git a/docs/resources/images/singleton-m.png b/docs/resources/images/singleton-m.png new file mode 100644 index 0000000000000000000000000000000000000000..212e7007f789f9cf198b5f27a0bcbacf7495e68b GIT binary patch literal 6253 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 literal 0 HcmV?d00001 diff --git a/docs/resources/images/tablet-l.jpg b/docs/resources/images/tablet-l.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a8552d5748011ba65526a09407897d09df88d902 GIT binary patch literal 35936 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 BvQ7X1 literal 0 HcmV?d00001 diff --git a/docs/resources/images/tablet-p.jpg b/docs/resources/images/tablet-p.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ecbec6cf0e4d044b331657bd5e6782c426dd67e6 GIT binary patch literal 34731 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 UnmpSMUgWlwgdFB$)W1{z2a!2dm;e9( literal 0 HcmV?d00001 diff --git a/docs/resources/images/tabs.png b/docs/resources/images/tabs.png new file mode 100644 index 0000000000000000000000000000000000000000..b0795df923bd3d68ed06acf6aae0545e1cee11d2 GIT binary patch literal 5291 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 literal 0 HcmV?d00001 diff --git a/docs/resources/images/text-bg.gif b/docs/resources/images/text-bg.gif new file mode 100644 index 0000000000000000000000000000000000000000..4179607cc1e9486dd6fcc8467c79b5b41dbf4f76 GIT binary patch literal 819 zcmZ?wbhEHbWMmLxXlG!!_xRa|&!0bk{rdI$_wPS{{`~#>&!4}4|NZ;_|3AYh7!85p p9s-I#S%6;r&!7YHC@4=ba0oCkvIrP7I50A^3uwfgFi>Ey1^^@>A+7)b literal 0 HcmV?d00001 diff --git a/docs/resources/images/version-tabs.png b/docs/resources/images/version-tabs.png new file mode 100644 index 0000000000000000000000000000000000000000..0a67c460a5c38f83972a413e24216e3cd3f4ff5d GIT binary patch literal 3594 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 Q9RL6T07*qoM6N<$f|D`mumAu6 literal 0 HcmV?d00001 diff --git a/docs/resources/images/vote-arrows.png b/docs/resources/images/vote-arrows.png new file mode 100644 index 0000000000000000000000000000000000000000..bb94c7c957f8192a27597faf6f6ba79d14f0e1fd GIT binary patch literal 883 zcmV-(1C0EMP)<h;3K|Lk000e1NJLTq002M$001%w1^@s6?1SAD0000PbVXQnQ*UN; zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU#6-h)vRCwC#n!k$^K@`W|dCQ5F)!A4H zf<Z{DSco793Zh`6u$*vcuZ^Ivu#KRN?N!=%2#R1Z_z&19Tyuc~i6B}DLO>!Ga=Wux z-y|>IW-~jP$;`m5nHRofcYb^_d^7v@$LvzK+XaO<PTyZt8o&6_0L9Sa{_ZVX=LQO} z!>D((eH!&^R);iG8l*m#+2_tOfLs0&b%OR^qb{K`Lj(2=ca{N9P!|jP7pUy6;Xvo( zvfMgXX231f9YHxS+d)06>X^u<>fGGa0k_J4bEpl;k8Mzbd9OK8BW{w~=ZXwCM#s*I z1h_(Nc#`>6uG|$L0_I%tAz;J}1R3-#YE>cIu2S2x<xDG>0d}~leQr?7pwCfFP>&|{ zxmL`yrGeVxCib~S10JESfPU~k4^a>P9jlWAwZ=^yaK{F$q3*%_aUb;wwON`0cDadt zE;rx|>M589XM9F&kpZ>fasxi14uZv?fm-LXG`G$Tz(J%bI0=^6XF4%}F-Hclni!B} zZVbrkVgPexfCKK5;scTYHV(johd00*;0^Ewcmuov-T-faH^3X<4e$nd0~RryJP<k3 zh@1@eC+yb4fE?UB63St)=mxNQ7y#hrvGBlwu|Zw_sgVKp7aaImfUlVLhvPO=pIEq) zay3zXRBos~v4+N?aGPNn%MHaDO+Ewo>mxT&Z(y|KJWpiA*clt(f}1(uj;{mSD3fzn zL<}g*0IoJFD(vejBF1oku%|XE8cdeyC?dv04tR_@38STFo!F$lRmbYS=9ZJ-Z5X{{ zcS;eqMSV&!wTfwln>pYHf{|ZFZKICPfPJU7$#k|(zzsLG&J~>od(`j)>QDvj54GuO zoUe_!%mKIRW~hS-C2oe)rXs~wemba7QXf(q;fJBM73!cuNqtCdrs`yOgDq4nD37U5 zdc`JD3l$5>W2&p{%j9aIVnKOKb;5ostHb=|<Lk8j3Uy;vhvmk3m4u|t{i=3_sl`>f z6kdnD_wUy&UbAa+Gqt-xEv||IJb_#-Y%3U`G*E3WbHM#8zyQ0SxO@!1W%>XB002ov JPDHLkV1j<Zm&*VE literal 0 HcmV?d00001 diff --git a/docs/resources/images/welcome-bg-js4.gif b/docs/resources/images/welcome-bg-js4.gif new file mode 100644 index 0000000000000000000000000000000000000000..8bb706d7d35289d463458e9fdd1ed7cacf7b267e GIT binary patch literal 3419 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 literal 0 HcmV?d00001 diff --git a/docs/resources/images/x.png b/docs/resources/images/x.png new file mode 100644 index 0000000000000000000000000000000000000000..2e5197226ca3640876c762bd7c41b22adbfa521a GIT binary patch literal 1299 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+n3Xa^B1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxKsVXI%s|1+P|wiV z#N6CmN5ROz&_Lh7NZ-&%*U;R`*vQJjKmiJrfVLH-q*(>IxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8EkR}&8R-I5=oVMzl_XZ^<`pZ$OmImpPA<wUD9OyvQvjKmn3P{y zVygsnDZ~r81#n~YilM;-3^4tQ!~%UoJp+)JU<!SG@hi>Eg{v+u2}(t{7puX=A(aKG z`a!A1`K3k4z=%sz23b{L<y@4SSdw29lAoUg3&ntp{F40QjQj!x=U`I>-^Aq1JP;qO z-q+X4Gq1QLF)umQ)5TT^Xo6m5W{Q=gg^PiinX#dTiKCIBp{s$Vqk)l&lYxP;v$2Jn zvxy5#uS<S%X>Mv>2~2MaLaz}{y`ZF!TL84#CABECEH%ZgC_h&L>}9J=EN*diayD=^ zcXhTfF*d{Q7Kq*y+-@<z=@xyUWAs50ixkl?Az<nOG2zJ;$bl#P)I4BnF9IfO+g(%U zF)%Q;d%8G=RNR^}+0gs2gUIptNlF}kYOU9NUtBTEJi4%ZHb>Ka$2lc|Tz+-T>gq=w z3tqJgto3#ja53@SqQKE4A(-=6qa@?+{?B@HfgA09Onm(5-~Zj;KPAbS`)i6`P7u{$ z5RW*(u3NzH?n{cXY8*S`4W`WrK2jg5gkw%WH)r;<VcMP0RM%g)f!S|~n&Az$Zj-8l z%HO9JaJ)J>)o1dmdG39=>Njt$ah?|~_I^tQ<JF#+h^+08b~!z;F#GwoLFcs6_86}t zjunf8B7@VLRquY&>^iYc-9A6);|T+vg9!!;G^+fj8y(-qTKjzK?WJV`T#U0d4DT-! zKc3m#^fS4;XX5Oe>CNu7?XREPeRx^3X&2}8#pYqhxTQ_L&Rtn!Cm8?JZtLOoMMXPf zZY@Ynn6f$|W|jWI&Zj|vCdPgDUBu>}d34*az3uSAynxduEbXU!*7v(?H?<>gy}E}h zbIc00yoSy7K94LTF1zpKfA;kLw{Vk`ch$f0-*{h_+`#^BYdQa=J#5pa&UozHz{s#! WuS9_B8h<RPnDTV>b6Mw<&;$U>gU$;8 literal 0 HcmV?d00001 diff --git a/docs/resources/images/x12.png b/docs/resources/images/x12.png new file mode 100644 index 0000000000000000000000000000000000000000..a729b48ee422aa3d301945b9b0b539cd5c6739e5 GIT binary patch literal 1242 zcmbVMTWs4@7<Lv2khV1KCg`R;96VNO(h?s#Y0{XQlE(F#X=%GODt#Czj(yTtt$kek zl%(Arb`jc!kl+!tAr&N;KnQhjn*b3;CpuB7NR<$mA#D^G4_w5=O#-PLH%;N88WNW5 zbNjyUzaF0*9z4(z+!bUPrX@2V=jhn%z4r#_cXay5EjsKZ{bOVVmq<l*5R=kz5rK@U zj-wn>^_i(_sE1+vB_lsZ#<GV*4Vw|w!$hj4P1y|7(_6JwZ2}QcMB|1fu|K{29t#Xz zVju6y!mOP}Wn*C0K_jz+d2Mz=OX_UzqoAiMQUMbY6;#bh%N45<yRIwJxwp-+U>!mx zB)0C<Sauksv4cQY1co&jhak>J_-HJVNbCm!<RJ$Iju*mwLW~L`gka-gsWnG0i8)!> zutirATPDO7Ij&NvL@Ln;cE&kAnM`^bf)J*NusdTBwHmhEJq-mJxte3x#K0Et6xAZ0 zCK5|Mt%qRR+3cpU<!&U3ri`nqHpfRGXPRDI>u8tc&_8Z$iFWfdHsW%~#nX;P>rvX% zAk*C4*^mdM-iSkvL5reJ%2=B=kwr4H#L|<9Zs=k>nTp8?1qzA)<J~-;6#Agd%Sx;} zmhR>giH62jTndV(<2<BLp6B~vsyi(xQ6&X=CEg_`lMQaha*1kbsA1QjcI#ZI+>tA$ z9i$TM<T0LXbii;K6YQ3;4bmfBAggMI<*mK))T5P=V?2d)#la?6&#!1~VgJA5u5<PO zlQWJw!+Fi|uV!g%(GK*co2^e5o0kV!^u{>!YJ@Hyyv;DaU`9^mtDhIIUq0IE-!bo- z+7&v@T-+Oq`hRW%Pqr?socQCxfwrdn#aIaYivB>p(0cXSW8eE1o_k@g6My(h$IkEi zTE5m#ivEXdptihR(95;j($Z4x%9U-UQwz_>zBzt=$Nk$6kB$~Y540CyT+j=;uHU$| z>R%aOe(ChSvv+@12&_Kw4teqB>V=`gNa~s1V}C8$H^17eUwA$G@*}^kt*tHYZeBhf zJOA|5FTaxaUpsXup!$5i`HuEW_uc;BVEIz?`nyM4_XnN8;t$~J?>~Nd;FI}h+d8J^ z3X;ERU(b!s&^egWKHh$YTRnX2o;SX2T3Q)8@#*d}AI)_>bS~H)y{kC?1+%T0>3_4Y U^yjP65$|u4=^vEe>MNZ58#hawrvLx| literal 0 HcmV?d00001 diff --git a/docs/resources/images/x122.png b/docs/resources/images/x122.png new file mode 100644 index 0000000000000000000000000000000000000000..3a1416d7c6ff59992ed52d3d57bb3c955cf8bf84 GIT binary patch literal 1418 zcmeAS@N?(olHy`uVBq!ia0vp^d_XM6!3HE{=IMI@DajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_cg49qH-ArU1JzCKpT`MG+DAT@dwxdlMo3=B5*6$OdO*{LN8 zNvY|XdA3ULckfqH$V{<S3ODsN@GWpo&B*kqDoPEm@(W3>%1*XSQL?vFu&J;D8jzb> zlBiITo0C^;Rbi_HHrEQs1_|pcDS(xfWZNo192Makpx~Tel&WB=XP}#GU}mUbW};_k zVqj@vsiR<IU}&IkXrymou4`yuWom9^V5k5EN<iC+Qqrt~T-=~`0eQAc86_nJR{Hwo z<>h+i#(Mch>H3D2mX`VkM*2oZx<D1W#g%y_i50qe#mX=fTvCgZi!uvJGV}8kKqe+8 z<(HP&Dgj*z@j`9^+}ONgXfOc-Our(rK;KZ$0OTc@LSJ9}N^^7Js*6j4QW5UOYH)E# zWkITbP-=00X;CsT;?k5sRuxz|7o{ea<QIkH=jXseF(4zqB)>Q#zd*q`*i_F@!8b8E zGY=#J*5T`G<(XGpl9-pA>gi&u1T;f0Gc(1?)y&z{z|F+e$<V;f(9qSu$<oQt(#hG` z)zH+)$;840rq?AuximL5uLPzy1)<jrr(RHE$SnZc?2=lPS(cjOR+OKs0QR(1CT_PF z<1`PdHwCv_OmOPe2RcR{6tzfE4HE*U9}p9saDg0n(of9;ruQOX!tSe7IKsfd_{Y=5 zF{I+wl_`6(m>dO;yW843T@l_t>#|aUI7^_sV~B@9O}kC-svm4-nmRnc7#c;qJk(jP z9CmvDWP|XOGxax(pFcHG^gVHi|5@7e{kx6Ny?9+>^<?9uGgG(Rm%J?dpuARmru(sk zIF+_9qW+w>&lq3+RN?6TZtGpA-pT~MPd{y1ofbATnbq8wY&a{pqJK}(PMND&rdcLZ zP7Dc$muJqJYn|ko81jrwzWZoXNvygI17n!l<b^kL)V@7&TGJ)X?ZYtdZk~JdK?fEm zhGmyEdE1?Dz5l*VU?XdJsAr%ESNq}i_Z})rHF5UGS*G7?%`lri<!oA}-F)tZ>#s}G z4+>Z}UP!7^`kWHPz&MXRVR?|Imx>Tj_cZ@9KCf?WOD0awoTU^$F+f3qFIsQ9ivG^D z5^MLlJCnC@Y;Y|*xFkb6xupDg$;?%MbFRNSx%b_|j&%*;&%UYquAA`PXm3-0OXa&s z_tylQ|7)-GDQ32)7B;I%e{ML{FL-6hqN1frEDUBf8M`Nc-tjEVn76rrfhA(qs!Ltg z>3iem&vQR>C&NUjQGj8~?FyTJb#i~}>{*)+p8qei?V+`G|B01BYbTvjPFWMibmM8! z&BzVwKTC8U)sX7tVw}g5aQso>u9W{5ZS21OcK_V5$87dlMRglt_NZy4b#j6aG+H(+ gebN8?qjLiz!-7qBzQib9ssojdp00i_>zopr01O2JKmY&$ literal 0 HcmV?d00001 diff --git a/docs/resources/prettify/prettify.css b/docs/resources/prettify/prettify.css new file mode 100644 index 0000000..d44b3a2 --- /dev/null +++ b/docs/resources/prettify/prettify.css @@ -0,0 +1 @@ +.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} \ No newline at end of file diff --git a/docs/resources/prettify/prettify.js b/docs/resources/prettify/prettify.js new file mode 100644 index 0000000..eef5ad7 --- /dev/null +++ b/docs/resources/prettify/prettify.js @@ -0,0 +1,28 @@ +var q=null;window.PR_SHOULD_USE_CONTINUATION=!0; +(function(){function L(a){function m(a){var f=a.charCodeAt(0);if(f!==92)return f;var b=a.charAt(1);return(f=r[b])?f:"0"<=b&&b<="7"?parseInt(a.substring(1),8):b==="u"||b==="x"?parseInt(a.substring(2),16):a.charCodeAt(1)}function e(a){if(a<32)return(a<16?"\\x0":"\\x")+a.toString(16);a=String.fromCharCode(a);if(a==="\\"||a==="-"||a==="["||a==="]")a="\\"+a;return a}function h(a){for(var f=a.substring(1,a.length-1).match(/\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\[0-3][0-7]{0,2}|\\[0-7]{1,2}|\\[\S\s]|[^\\]/g),a= +[],b=[],o=f[0]==="^",c=o?1:0,i=f.length;c<i;++c){var j=f[c];if(/\\[bdsw]/i.test(j))a.push(j);else{var j=m(j),d;c+2<i&&"-"===f[c+1]?(d=m(f[c+2]),c+=2):d=j;b.push([j,d]);d<65||j>122||(d<65||j>90||b.push([Math.max(65,j)|32,Math.min(d,90)|32]),d<97||j>122||b.push([Math.max(97,j)&-33,Math.min(d,122)&-33]))}}b.sort(function(a,f){return a[0]-f[0]||f[1]-a[1]});f=[];j=[NaN,NaN];for(c=0;c<b.length;++c)i=b[c],i[0]<=j[1]+1?j[1]=Math.max(j[1],i[1]):f.push(j=i);b=["["];o&&b.push("^");b.push.apply(b,a);for(c=0;c< +f.length;++c)i=f[c],b.push(e(i[0])),i[1]>i[0]&&(i[1]+1>i[0]&&b.push("-"),b.push(e(i[1])));b.push("]");return b.join("")}function y(a){for(var f=a.source.match(/\[(?:[^\\\]]|\\[\S\s])*]|\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\\d+|\\[^\dux]|\(\?[!:=]|[()^]|[^()[\\^]+/g),b=f.length,d=[],c=0,i=0;c<b;++c){var j=f[c];j==="("?++i:"\\"===j.charAt(0)&&(j=+j.substring(1))&&j<=i&&(d[j]=-1)}for(c=1;c<d.length;++c)-1===d[c]&&(d[c]=++t);for(i=c=0;c<b;++c)j=f[c],j==="("?(++i,d[i]===void 0&&(f[c]="(?:")):"\\"===j.charAt(0)&& +(j=+j.substring(1))&&j<=i&&(f[c]="\\"+d[i]);for(i=c=0;c<b;++c)"^"===f[c]&&"^"!==f[c+1]&&(f[c]="");if(a.ignoreCase&&s)for(c=0;c<b;++c)j=f[c],a=j.charAt(0),j.length>=2&&a==="["?f[c]=h(j):a!=="\\"&&(f[c]=j.replace(/[A-Za-z]/g,function(a){a=a.charCodeAt(0);return"["+String.fromCharCode(a&-33,a|32)+"]"}));return f.join("")}for(var t=0,s=!1,l=!1,p=0,d=a.length;p<d;++p){var g=a[p];if(g.ignoreCase)l=!0;else if(/[a-z]/i.test(g.source.replace(/\\u[\da-f]{4}|\\x[\da-f]{2}|\\[^UXux]/gi,""))){s=!0;l=!1;break}}for(var r= +{b:8,t:9,n:10,v:11,f:12,r:13},n=[],p=0,d=a.length;p<d;++p){g=a[p];if(g.global||g.multiline)throw Error(""+g);n.push("(?:"+y(g)+")")}return RegExp(n.join("|"),l?"gi":"g")}function M(a){function m(a){switch(a.nodeType){case 1:if(e.test(a.className))break;for(var g=a.firstChild;g;g=g.nextSibling)m(g);g=a.nodeName;if("BR"===g||"LI"===g)h[s]="\n",t[s<<1]=y++,t[s++<<1|1]=a;break;case 3:case 4:g=a.nodeValue,g.length&&(g=p?g.replace(/\r\n?/g,"\n"):g.replace(/[\t\n\r ]+/g," "),h[s]=g,t[s<<1]=y,y+=g.length, +t[s++<<1|1]=a)}}var e=/(?:^|\s)nocode(?:\s|$)/,h=[],y=0,t=[],s=0,l;a.currentStyle?l=a.currentStyle.whiteSpace:window.getComputedStyle&&(l=document.defaultView.getComputedStyle(a,q).getPropertyValue("white-space"));var p=l&&"pre"===l.substring(0,3);m(a);return{a:h.join("").replace(/\n$/,""),c:t}}function B(a,m,e,h){m&&(a={a:m,d:a},e(a),h.push.apply(h,a.e))}function x(a,m){function e(a){for(var l=a.d,p=[l,"pln"],d=0,g=a.a.match(y)||[],r={},n=0,z=g.length;n<z;++n){var f=g[n],b=r[f],o=void 0,c;if(typeof b=== +"string")c=!1;else{var i=h[f.charAt(0)];if(i)o=f.match(i[1]),b=i[0];else{for(c=0;c<t;++c)if(i=m[c],o=f.match(i[1])){b=i[0];break}o||(b="pln")}if((c=b.length>=5&&"lang-"===b.substring(0,5))&&!(o&&typeof o[1]==="string"))c=!1,b="src";c||(r[f]=b)}i=d;d+=f.length;if(c){c=o[1];var j=f.indexOf(c),k=j+c.length;o[2]&&(k=f.length-o[2].length,j=k-c.length);b=b.substring(5);B(l+i,f.substring(0,j),e,p);B(l+i+j,c,C(b,c),p);B(l+i+k,f.substring(k),e,p)}else p.push(l+i,b)}a.e=p}var h={},y;(function(){for(var e=a.concat(m), +l=[],p={},d=0,g=e.length;d<g;++d){var r=e[d],n=r[3];if(n)for(var k=n.length;--k>=0;)h[n.charAt(k)]=r;r=r[1];n=""+r;p.hasOwnProperty(n)||(l.push(r),p[n]=q)}l.push(/[\S\s]/);y=L(l)})();var t=m.length;return e}function u(a){var m=[],e=[];a.tripleQuotedStrings?m.push(["str",/^(?:'''(?:[^'\\]|\\[\S\s]|''?(?=[^']))*(?:'''|$)|"""(?:[^"\\]|\\[\S\s]|""?(?=[^"]))*(?:"""|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$))/,q,"'\""]):a.multiLineStrings?m.push(["str",/^(?:'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$)|`(?:[^\\`]|\\[\S\s])*(?:`|$))/, +q,"'\"`"]):m.push(["str",/^(?:'(?:[^\n\r'\\]|\\.)*(?:'|$)|"(?:[^\n\r"\\]|\\.)*(?:"|$))/,q,"\"'"]);a.verbatimStrings&&e.push(["str",/^@"(?:[^"]|"")*(?:"|$)/,q]);var h=a.hashComments;h&&(a.cStyleComments?(h>1?m.push(["com",/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,q,"#"]):m.push(["com",/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\n\r]*)/,q,"#"]),e.push(["str",/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,q])):m.push(["com",/^#[^\n\r]*/, +q,"#"]));a.cStyleComments&&(e.push(["com",/^\/\/[^\n\r]*/,q]),e.push(["com",/^\/\*[\S\s]*?(?:\*\/|$)/,q]));a.regexLiterals&&e.push(["lang-regex",/^(?:^^\.?|[!+-]|!=|!==|#|%|%=|&|&&|&&=|&=|\(|\*|\*=|\+=|,|-=|->|\/|\/=|:|::|;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|[?@[^]|\^=|\^\^|\^\^=|{|\||\|=|\|\||\|\|=|~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\s*(\/(?=[^*/])(?:[^/[\\]|\\[\S\s]|\[(?:[^\\\]]|\\[\S\s])*(?:]|$))+\/)/]);(h=a.types)&&e.push(["typ",h]);a=(""+a.keywords).replace(/^ | $/g, +"");a.length&&e.push(["kwd",RegExp("^(?:"+a.replace(/[\s,]+/g,"|")+")\\b"),q]);m.push(["pln",/^\s+/,q," \r\n\t\xa0"]);e.push(["lit",/^@[$_a-z][\w$@]*/i,q],["typ",/^(?:[@_]?[A-Z]+[a-z][\w$@]*|\w+_t\b)/,q],["pln",/^[$_a-z][\w$@]*/i,q],["lit",/^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i,q,"0123456789"],["pln",/^\\[\S\s]?/,q],["pun",/^.[^\s\w"-$'./@\\`]*/,q]);return x(m,e)}function D(a,m){function e(a){switch(a.nodeType){case 1:if(k.test(a.className))break;if("BR"===a.nodeName)h(a), +a.parentNode&&a.parentNode.removeChild(a);else for(a=a.firstChild;a;a=a.nextSibling)e(a);break;case 3:case 4:if(p){var b=a.nodeValue,d=b.match(t);if(d){var c=b.substring(0,d.index);a.nodeValue=c;(b=b.substring(d.index+d[0].length))&&a.parentNode.insertBefore(s.createTextNode(b),a.nextSibling);h(a);c||a.parentNode.removeChild(a)}}}}function h(a){function b(a,d){var e=d?a.cloneNode(!1):a,f=a.parentNode;if(f){var f=b(f,1),g=a.nextSibling;f.appendChild(e);for(var h=g;h;h=g)g=h.nextSibling,f.appendChild(h)}return e} +for(;!a.nextSibling;)if(a=a.parentNode,!a)return;for(var a=b(a.nextSibling,0),e;(e=a.parentNode)&&e.nodeType===1;)a=e;d.push(a)}var k=/(?:^|\s)nocode(?:\s|$)/,t=/\r\n?|\n/,s=a.ownerDocument,l;a.currentStyle?l=a.currentStyle.whiteSpace:window.getComputedStyle&&(l=s.defaultView.getComputedStyle(a,q).getPropertyValue("white-space"));var p=l&&"pre"===l.substring(0,3);for(l=s.createElement("LI");a.firstChild;)l.appendChild(a.firstChild);for(var d=[l],g=0;g<d.length;++g)e(d[g]);m===(m|0)&&d[0].setAttribute("value", +m);var r=s.createElement("OL");r.className="linenums";for(var n=Math.max(0,m-1|0)||0,g=0,z=d.length;g<z;++g)l=d[g],l.className="L"+(g+n)%10,l.firstChild||l.appendChild(s.createTextNode("\xa0")),r.appendChild(l);a.appendChild(r)}function k(a,m){for(var e=m.length;--e>=0;){var h=m[e];A.hasOwnProperty(h)?window.console&&console.warn("cannot override language handler %s",h):A[h]=a}}function C(a,m){if(!a||!A.hasOwnProperty(a))a=/^\s*</.test(m)?"default-markup":"default-code";return A[a]}function E(a){var m= +a.g;try{var e=M(a.h),h=e.a;a.a=h;a.c=e.c;a.d=0;C(m,h)(a);var k=/\bMSIE\b/.test(navigator.userAgent),m=/\n/g,t=a.a,s=t.length,e=0,l=a.c,p=l.length,h=0,d=a.e,g=d.length,a=0;d[g]=s;var r,n;for(n=r=0;n<g;)d[n]!==d[n+2]?(d[r++]=d[n++],d[r++]=d[n++]):n+=2;g=r;for(n=r=0;n<g;){for(var z=d[n],f=d[n+1],b=n+2;b+2<=g&&d[b+1]===f;)b+=2;d[r++]=z;d[r++]=f;n=b}for(d.length=r;h<p;){var o=l[h+2]||s,c=d[a+2]||s,b=Math.min(o,c),i=l[h+1],j;if(i.nodeType!==1&&(j=t.substring(e,b))){k&&(j=j.replace(m,"\r"));i.nodeValue= +j;var u=i.ownerDocument,v=u.createElement("SPAN");v.className=d[a+1];var x=i.parentNode;x.replaceChild(v,i);v.appendChild(i);e<o&&(l[h+1]=i=u.createTextNode(t.substring(b,o)),x.insertBefore(i,v.nextSibling))}e=b;e>=o&&(h+=2);e>=c&&(a+=2)}}catch(w){"console"in window&&console.log(w&&w.stack?w.stack:w)}}var v=["break,continue,do,else,for,if,return,while"],w=[[v,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"], +"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],F=[w,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"],G=[w,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"], +H=[G,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"],w=[w,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"],I=[v,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"], +J=[v,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],v=[v,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"],K=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/,N=/\S/,O=u({keywords:[F,H,w,"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END"+ +I,J,v],hashComments:!0,cStyleComments:!0,multiLineStrings:!0,regexLiterals:!0}),A={};k(O,["default-code"]);k(x([],[["pln",/^[^<?]+/],["dec",/^<!\w[^>]*(?:>|$)/],["com",/^<\!--[\S\s]*?(?:--\>|$)/],["lang-",/^<\?([\S\s]+?)(?:\?>|$)/],["lang-",/^<%([\S\s]+?)(?:%>|$)/],["pun",/^(?:<[%?]|[%?]>)/],["lang-",/^<xmp\b[^>]*>([\S\s]+?)<\/xmp\b[^>]*>/i],["lang-js",/^<script\b[^>]*>([\S\s]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\S\s]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]), +["default-markup","htm","html","mxml","xhtml","xml","xsl"]);k(x([["pln",/^\s+/,q," \t\r\n"],["atv",/^(?:"[^"]*"?|'[^']*'?)/,q,"\"'"]],[["tag",/^^<\/?[a-z](?:[\w-.:]*\w)?|\/?>$/i],["atn",/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^\s"'>]*(?:[^\s"'/>]|\/(?=\s)))/],["pun",/^[/<->]+/],["lang-js",/^on\w+\s*=\s*"([^"]+)"/i],["lang-js",/^on\w+\s*=\s*'([^']+)'/i],["lang-js",/^on\w+\s*=\s*([^\s"'>]+)/i],["lang-css",/^style\s*=\s*"([^"]+)"/i],["lang-css",/^style\s*=\s*'([^']+)'/i],["lang-css", +/^style\s*=\s*([^\s"'>]+)/i]]),["in.tag"]);k(x([],[["atv",/^[\S\s]+/]]),["uq.val"]);k(u({keywords:F,hashComments:!0,cStyleComments:!0,types:K}),["c","cc","cpp","cxx","cyc","m"]);k(u({keywords:"null,true,false"}),["json"]);k(u({keywords:H,hashComments:!0,cStyleComments:!0,verbatimStrings:!0,types:K}),["cs"]);k(u({keywords:G,cStyleComments:!0}),["java"]);k(u({keywords:v,hashComments:!0,multiLineStrings:!0}),["bsh","csh","sh"]);k(u({keywords:I,hashComments:!0,multiLineStrings:!0,tripleQuotedStrings:!0}), +["cv","py"]);k(u({keywords:"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["perl","pl","pm"]);k(u({keywords:J,hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["rb"]);k(u({keywords:w,cStyleComments:!0,regexLiterals:!0}),["js"]);k(u({keywords:"all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes", +hashComments:3,cStyleComments:!0,multilineStrings:!0,tripleQuotedStrings:!0,regexLiterals:!0}),["coffee"]);k(x([],[["str",/^[\S\s]+/]]),["regex"]);window.prettyPrintOne=function(a,m,e){var h=document.createElement("PRE");h.innerHTML=a;e&&D(h,e);E({g:m,i:e,h:h});return h.innerHTML};window.prettyPrint=function(a){function m(){for(var e=window.PR_SHOULD_USE_CONTINUATION?l.now()+250:Infinity;p<h.length&&l.now()<e;p++){var n=h[p],k=n.className;if(k.indexOf("prettyprint")>=0){var k=k.match(g),f,b;if(b= +!k){b=n;for(var o=void 0,c=b.firstChild;c;c=c.nextSibling)var i=c.nodeType,o=i===1?o?b:c:i===3?N.test(c.nodeValue)?b:o:o;b=(f=o===b?void 0:o)&&"CODE"===f.tagName}b&&(k=f.className.match(g));k&&(k=k[1]);b=!1;for(o=n.parentNode;o;o=o.parentNode)if((o.tagName==="pre"||o.tagName==="code"||o.tagName==="xmp")&&o.className&&o.className.indexOf("prettyprint")>=0){b=!0;break}b||((b=(b=n.className.match(/\blinenums\b(?::(\d+))?/))?b[1]&&b[1].length?+b[1]:!0:!1)&&D(n,b),d={g:k,h:n,i:b},E(d))}}p<h.length?setTimeout(m, +250):a&&a()}for(var e=[document.getElementsByTagName("pre"),document.getElementsByTagName("code"),document.getElementsByTagName("xmp")],h=[],k=0;k<e.length;++k)for(var t=0,s=e[k].length;t<s;++t)h.push(e[k][t]);var e=q,l=Date;l.now||(l={now:function(){return+new Date}});var p=0,d,g=/\blang(?:uage)?-([\w.]+)(?!\S)/;m()};window.PR={createSimpleLexer:x,registerLangHandler:k,sourceDecorator:u,PR_ATTRIB_NAME:"atn",PR_ATTRIB_VALUE:"atv",PR_COMMENT:"com",PR_DECLARATION:"dec",PR_KEYWORD:"kwd",PR_LITERAL:"lit", +PR_NOCODE:"nocode",PR_PLAIN:"pln",PR_PUNCTUATION:"pun",PR_SOURCE:"src",PR_STRING:"str",PR_TAG:"tag",PR_TYPE:"typ"}})(); diff --git a/docs/rocco.css b/docs/rocco.css deleted file mode 100644 index 43b724b..0000000 --- a/docs/rocco.css +++ /dev/null @@ -1,224 +0,0 @@ -#navbar { - position: fixed; - width: 960px; - height: 34px; - background: #fff; - border-bottom: 1px solid #cdcdcd; - border-right: 1px solid #cdcdcd; - border-bottom-right-radius: 5px; - -webkit-border-bottom-right-radius: 5px; - -moz-border-bottom-right-radius: 5px; - z-index: 9; -} -#navbar a, #navbar a:visited { - font-weight: normal; - padding: 0 2px; - text-decoration: none; - color: #3f6fa5; -} -#navbar a:active, #navbar a:hover { - text-decoration: underline; -} -#navbar h3 { - top: 0; - margin: 0; - padding: 4px 20px; -} -#navbar h3 a { - float: left; - display: block; - padding-right: 20px; -} -#container { - padding-top: 20px; -} -body { - background: #fff url("bg.png"); -} -/*--------------------- Layout and Typography ----------------------------*/ -body { - font-family: 'Palatino Linotype', 'Book Antiqua', Palatino, FreeSerif, serif; - font-size: 15px; - line-height: 22px; - color: #252519; - margin: 0; padding: 0; -} -a { - color: #261a3b; -} - a:visited { - color: #261a3b; - } -p { - margin: 0 0 15px 0; -} -h1, h2, h3, h4, h5, h6 { - margin: 0px 0 15px 0; -} - h1 { - margin-top: 40px; - } -#container { - position: relative; -} -#background { - position: fixed; - top: 0; left: 525px; right: 0; bottom: 0; - background: #f5f5ff; - border-left: 1px solid #e5e5ee; - z-index: -1; -} -#jump_to, #jump_page { - background: white; - border-bottom: 1px solid #cdcdcd; - border-left: 1px solid #cdcdcd; - border-bottom-left-radius: 5px; - -webkit-border-bottom-left-radius: 5px; - -moz-border-radius-bottomleft: 5px; - cursor: pointer; - text-align: right; -} -#jump_to, #jump_wrapper { - position: fixed; - right: 0; top: 0; - padding: 5px 30px; -} - #jump_wrapper { - padding: 0; - display: none; - } - #jump_to:hover #jump_wrapper { - display: block; - } - #jump_page { - padding: 5px 0 3px; - margin: 0 0 25px 25px; - } - #jump_page .source { - display: block; - padding: 5px 30px; - text-decoration: none; - border-top: 1px solid #eee; - } - #jump_page .source:hover { - background: #f5f5ff; - } - #jump_page .source:first-child { - } -table td { - border: 0; - outline: 0; -} - td.docs, th.docs { - max-width: 450px; - min-width: 450px; - min-height: 5px; - padding: 10px 25px 1px 50px; - overflow-x: hidden; - vertical-align: top; - text-align: left; - } - .docs pre { - margin: 15px 0 15px; - padding-left: 15px; - } - .docs p tt, .docs p code { - background: #f8f8ff; - border: 1px solid #dedede; - font-size: 12px; - padding: 0 0.2em; - } - .pilwrap { - position: relative; - } - .pilcrow { - font: 12px Arial; - text-decoration: none; - color: #454545; - position: absolute; - top: 3px; left: -20px; - padding: 1px 2px; - opacity: 0; - -webkit-transition: opacity 0.2s linear; - } - td.docs:hover .pilcrow { - opacity: 1; - } - td.code, th.code { - padding: 14px 15px 16px 25px; - width: 100%; - vertical-align: top; - background: #f5f5ff; - border-left: 1px solid #e5e5ee; - } - pre, tt, code { - font-size: 12px; line-height: 18px; - font-family: Menlo, Monaco, Consolas, "Lucida Console", monospace; - margin: 0; padding: 0; - } - - -/*---------------------- Syntax Highlighting -----------------------------*/ -td.linenos { background-color: #f0f0f0; padding-right: 10px; } -span.lineno { background-color: #f0f0f0; padding: 0 5px 0 5px; } -body .hll { background-color: #ffffcc } -body .c { color: #408080; font-style: italic } /* Comment */ -body .err { border: 1px solid #FF0000 } /* Error */ -body .k { color: #954121 } /* Keyword */ -body .o { color: #666666 } /* Operator */ -body .cm { color: #408080; font-style: italic } /* Comment.Multiline */ -body .cp { color: #BC7A00 } /* Comment.Preproc */ -body .c1 { color: #408080; font-style: italic } /* Comment.Single */ -body .cs { color: #408080; font-style: italic } /* Comment.Special */ -body .gd { color: #A00000 } /* Generic.Deleted */ -body .ge { font-style: italic } /* Generic.Emph */ -body .gr { color: #FF0000 } /* Generic.Error */ -body .gh { color: #000080; font-weight: bold } /* Generic.Heading */ -body .gi { color: #00A000 } /* Generic.Inserted */ -body .go { color: #808080 } /* Generic.Output */ -body .gp { color: #000080; font-weight: bold } /* Generic.Prompt */ -body .gs { font-weight: bold } /* Generic.Strong */ -body .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ -body .gt { color: #0040D0 } /* Generic.Traceback */ -body .kc { color: #954121 } /* Keyword.Constant */ -body .kd { color: #954121; font-weight: bold } /* Keyword.Declaration */ -body .kn { color: #954121; font-weight: bold } /* Keyword.Namespace */ -body .kp { color: #954121 } /* Keyword.Pseudo */ -body .kr { color: #954121; font-weight: bold } /* Keyword.Reserved */ -body .kt { color: #B00040 } /* Keyword.Type */ -body .m { color: #666666 } /* Literal.Number */ -body .s { color: #219161 } /* Literal.String */ -body .na { color: #7D9029 } /* Name.Attribute */ -body .nb { color: #954121 } /* Name.Builtin */ -body .nc { color: #0000FF; font-weight: bold } /* Name.Class */ -body .no { color: #880000 } /* Name.Constant */ -body .nd { color: #AA22FF } /* Name.Decorator */ -body .ni { color: #999999; font-weight: bold } /* Name.Entity */ -body .ne { color: #D2413A; font-weight: bold } /* Name.Exception */ -body .nf { color: #0000FF } /* Name.Function */ -body .nl { color: #A0A000 } /* Name.Label */ -body .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */ -body .nt { color: #954121; font-weight: bold } /* Name.Tag */ -body .nv { color: #19469D } /* Name.Variable */ -body .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */ -body .w { color: #bbbbbb } /* Text.Whitespace */ -body .mf { color: #666666 } /* Literal.Number.Float */ -body .mh { color: #666666 } /* Literal.Number.Hex */ -body .mi { color: #666666 } /* Literal.Number.Integer */ -body .mo { color: #666666 } /* Literal.Number.Oct */ -body .sb { color: #219161 } /* Literal.String.Backtick */ -body .sc { color: #219161 } /* Literal.String.Char */ -body .sd { color: #219161; font-style: italic } /* Literal.String.Doc */ -body .s2 { color: #219161 } /* Literal.String.Double */ -body .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */ -body .sh { color: #219161 } /* Literal.String.Heredoc */ -body .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */ -body .sx { color: #954121 } /* Literal.String.Other */ -body .sr { color: #BB6688 } /* Literal.String.Regex */ -body .s1 { color: #219161 } /* Literal.String.Single */ -body .ss { color: #19469D } /* Literal.String.Symbol */ -body .bp { color: #954121 } /* Name.Builtin.Pseudo */ -body .vc { color: #19469D } /* Name.Variable.Class */ -body .vg { color: #19469D } /* Name.Variable.Global */ -body .vi { color: #19469D } /* Name.Variable.Instance */ -body .il { color: #666666 } /* Literal.Number.Integer.Long */ \ No newline at end of file diff --git a/docs/source/frame.html b/docs/source/frame.html new file mode 100644 index 0000000..ff590a6 --- /dev/null +++ b/docs/source/frame.html @@ -0,0 +1,106 @@ +<!DOCTYPE html> +<html> +<head> + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <title>The source code</title> + <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" /> + <script type="text/javascript" src="../resources/prettify/prettify.js"></script> + <style type="text/css"> + .highlight { display: block; background-color: #ddd; } + </style> + <script type="text/javascript"> + function highlight() { + document.getElementById(location.hash.replace(/#/, "")).className = "highlight"; + } + </script> +</head> +<body onload="prettyPrint(); highlight();"> + <pre class="prettyprint lang-js"><span id='Frame'>/** +</span> * @class Frame + * The `Frame` module provides an object representation of a [STOMP frame](http://stomp.github.io/stomp-specification-1.0.html) + * + * @type {StompJS.Frame} + */ +var Frame = module.exports = function() { + "use strict"; + this.command = null; + this.headers = null; + this.body = null; + +<span id='Frame-method-buildFrame'> /** +</span> * Build frame based on arguments provided + * + * @param {Object} args arguments object needed to build frame (command, headers, body?) + * + * ***Example:*** + * + * args = { + * command: '', + * headers: {}, + * body: '' + * } + * + * @param {Boolean} wantReceipt boolean to indicate that you wish to get a receipt (set receipt header) + * @returns {Object} returns {@link StompJS.Frame} + */ + var buildFrame = function(args, wantReceipt) { + var receiptStamp = null; + + this.command = args.command; + this.headers = args.headers; + this.body = args.body; + + if (wantReceipt) { + var receipt = ''; + receiptStamp = Math.floor(Math.random()*99999999999).toString(); + if (this.headers.session !== undefined) { + receipt = receiptStamp + "-" + this.headers.session; + } + else { + receipt = receiptStamp; + } + this.headers.receipt = receipt; + } + + return this; + }; + +<span id='Frame-method-asString'> /** +</span> * String representation of Frame object + * + * @returns {String} returns {@link StompJS.Frame} as string + */ + var asString = function() { + var headerStrs = [], + frame = "", + command = this.command, + headers = this.headers, + body = this.body; + + for (var header in headers) { + if (headers.hasOwnProperty(header)){ + headerStrs.push(header + ':' + headers[header]); + } + } + + frame += command + "\n"; + frame += headerStrs.join("\n"); + frame += "\n\n"; + + if(body) { + frame += body; + } + + frame += '\x00'; + + return frame; + }; + + return { + buildFrame: buildFrame, + asString: asString + }; +}; +</pre> +</body> +</html> diff --git a/docs/source/stomp.html b/docs/source/stomp.html new file mode 100644 index 0000000..5a12fe4 --- /dev/null +++ b/docs/source/stomp.html @@ -0,0 +1,652 @@ +<!DOCTYPE html> +<html> +<head> + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <title>The source code</title> + <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" /> + <script type="text/javascript" src="../resources/prettify/prettify.js"></script> + <style type="text/css"> + .highlight { display: block; background-color: #ddd; } + </style> + <script type="text/javascript"> + function highlight() { + document.getElementById(location.hash.replace(/#/, "")).className = "highlight"; + } + </script> +</head> +<body onload="prettyPrint(); highlight();"> + <pre class="prettyprint lang-js"><span id='Stomp'>/** +</span> * @class Stomp + * An instance of the Stomp object for interacting with STOMP messaging brokers + * + * @type {StompJS.Stomp} + */ +var Stomp = module.exports = function() { + "use strict"; + + var errMsgNotInitialized = "not initialized"; + var errMsgNotConnected = "not connected"; + + var events = require('events'); + var Frame = require('./frame.js'); + + var StompUtils = require('./stomp.utils.js'); + var stompUtils = new StompUtils(); + + var net, tls, sys, log; + + var _initialized = false; + var _connected = false; + var options = {}; + var subscribedTo, session, socket, thisPointer; + +<span id='Stomp-method-Client'> /** +</span> * @method Client + * + * Creates a client for the {@link StompJS.Stomp} object. + * + * @param {Object} args arguments needed to create the client + * + * ***Example:*** + * + * args = { + * port: 61613, + * host: 'localhost', + * debug: false, + * login: 'guest', + * passcode: 'guest' + * } + * + * If debug is set to true, extra output will be printed to the console. + * + * var client = new Stomp().Client(args); + * + * @returns {Object} returns StompClient + */ + var Client = function(args) { + net = require('net'); + tls = require('tls'); + sys = require('util'); + + options.port = args.port || 61613; + options.host = args.host || '127.0.0.1'; + options.login = args.login || null; + options.passcode = args.passcode || null; + options.ssl = args.ssl ? true : false; + options.sslValidate = args.ssl_validate ? true : false; + options.sslOptions = args.ssl_options || {}; + options.clientId = args['client-id'] || null; + options.vhost = args.vhost || null; + + var debug = args.debug || false; + var StompLogger = require('./stomp.logger.js'); + log = new StompLogger(debug); + + subscribedTo = {}; + session = null; + socket = null; + + // Stomp is an EventEmitter + stompUtils.extend(this, events.EventEmitter.prototype ); + + // need to save ref to this object for emitWrapper + // TODO: maybe use .call(this) + thisPointer = this; + + _initialized = true; + return this; + }; + +<span id='Stomp-method-isInitialized'> /** +</span> * Returns if the object has been initialized + * + * @returns {Boolean} returns *true* if initialized; otherwise, *false* + */ + var isInitialized = function() { + return _initialized; + }; + +<span id='Stomp-method-isConnected'> /** +</span> * Returns if the object has been connected + * + * @returns {Boolean} returns *true* if connected; otherwise, *false* + */ + var isConnected = function() { + return _connected; + }; + +<span id='Stomp-method-connect'> /** +</span> * Creates sockets used to connect to STOMP broker. Sets the connected flag to *true* upon completion. + * Emits "connected" upon completion. + * + * @returns {void} + */ + var connect = function() { + if(!_initialized) {throw new Error(errMsgNotInitialized);} + + var host = options.host; + var port = options.port; + + if (options.ssl) { + log.debug('Connecting to ' + host + ':' + port + ' using SSL'); + socket = tls.connect(port, host, options.sslOptions, function() { + log.debug('SSL connection complete'); + if (!socket.authorized) { + log.error('SSL is not authorized: '+ socket.authorizationError); + if (options.sslValidate) { + disconnect(); + return; + } + } + setupListeners(); + }); + } + else { + log.debug('Connecting to ' + host + ':' + port); + socket = new net.Socket(); + socket.connect(port, host); + setupListeners(); + } + _connected = true; + }; + +<span id='Stomp-method-disconnect'> /** +</span> * Removes sockets used to connects STOMP broker. Sets the connected flag to *false* upon completion. + * Emits "disconnected" upon completion. + * + * @returns {void} + */ + var disconnect = function() { + if(!_initialized) {throw new Error(errMsgNotInitialized);} + + socket.end(); + + if (socket.readyState === 'readOnly') { + socket.destroy(); + } + + log.debug('disconnect called'); + _connected = false; + }; + +<span id='Stomp-method-subscribe'> /** +</span> * Subscribes to destination (queue or topic). + * Emits "subscribed" upon completion. + * + * @param {Object} headers a header object + * @param {Function} callback a function to call and pass it the message that is dequeued + * @returns {void} + */ + var subscribe = function(headers, callback) { + if(!_initialized) {throw new Error(errMsgNotInitialized);} + if(!_connected) {throw new Error(errMsgNotConnected);} + + var destination = headers.destination; + headers.session = session; + + if (destination instanceof Array) { + for (var i=0; i < destination.length; i++) { + headers.destination = destination[i]; + sendCommand('SUBSCRIBE', headers); + subscribedTo[destination[i]] = { enabled: true, callback: callback }; + log.debug('subscribed to: ' + destination[i] + ' with headers ' + sys.inspect(headers)); + } + } + else { + sendCommand('SUBSCRIBE', headers); + subscribedTo[destination] = { enabled: true, callback: callback }; + log.debug('subscribed to: ' + destination + ' with headers ' + sys.inspect(headers)); + } + + emitWrapper("subscribed", destination); + }; + +<span id='Stomp-method-unsubscribe'> /** +</span> * Unsubscribes from destination (queue or topic). + * Emits "unsubscribed" upon completion. + * + * @param {Object} headers a header object + * @returns {void} + */ + var unsubscribe = function(headers) { + if(!_initialized) {throw new Error(errMsgNotInitialized);} + if(!_connected) {throw new Error(errMsgNotConnected);} + + var destination = headers.destination; + headers.session = session; + + if (destination instanceof Array) { + for (var i=0; i < destination.length; i++) { + headers.destination = destination[i]; + sendCommand('UNSUBSCRIBE', headers); + subscribedTo[destination[i]].enabled = false; + log.debug('no longer subscribed to: ' + destination[i]); + } + } + else { + sendCommand('UNSUBSCRIBE', headers); + subscribedTo[destination].enabled = false; + log.debug('no longer subscribed to: ' + destination); + } + + emitWrapper("unsubscribed", destination); + }; + +<span id='Stomp-method-send'> /** +</span> * Sends a message to the STOMP broker. + * + * @param {Object} headers a header object + * @param {Boolean} wantReceipt boolean to indicate that you wish to get a receipt (set receipt header) + * @returns {Object} returns a `Frame` object representing the message sent + */ + var send = function(headers, wantReceipt) { + var body = headers.body || null; + delete headers.body; + headers.session = session; + return sendCommand('SEND', headers, body, wantReceipt); + }; + +<span id='Stomp-method-ack'> /** +</span> * Acknowledges a received message. + * + * @param {String} messageId the message id to ack + * @returns {void} + */ + var ack = function(messageId) { + sendCommand('ACK', {'message-id': messageId}); + log.debug('acknowledged message: ' + messageId); + }; + +<span id='Stomp-method-begin'> /** +</span> * Begins a transaction. + * + * @returns {String} returns a string representing the generated transaction id + */ + var begin = function() { + var transactionId = Math.floor(Math.random()*99999999999).toString(); + sendCommand('BEGIN', {'transaction': transactionId}); + log.debug('begin transaction: ' + transactionId); + return transactionId; + }; + +<span id='Stomp-method-commit'> /** +</span> * Commits a transaction. + * + * @param {String} transactionId the transaction id from {@link Stomp#begin begin} to commit + * @returns {void} + */ + var commit = function(transactionId) { + sendCommand('COMMIT', {'transaction': transactionId}); + log.debug('commit transaction: ' + transactionId); + }; + +<span id='Stomp-method-abort'> /** +</span> * Aborts a transaction. + * + * @param {String} transactionId the transaction id from {@link Stomp#begin begin} to abort + * @returns {void} + */ + var abort = function(transactionId) { + sendCommand('ABORT', {'transaction': transactionId}); + log.debug('abort transaction: ' + transactionId); + }; + +<span id='Stomp-method-handleNewFrame'> /** +</span> * @private + * + * Handles frame based on type. Emits events when needed. + * Emits "message" upon message processed + * Emits "connected" upon connecting + * Emits "receipt" upon message receipt + * Emits "error" upon errors + * + * @param {String} frame the frame to handle + * @returns {void} + */ + var handleNewFrame = function(frame) { + switch (frame.command) { + case "MESSAGE": + if (isMessage(frame)) { + shouldRunMessageCallback(frame); + emitWrapper('message', frame); + } + break; + case "CONNECTED": + log.debug('Connected to STOMP'); + session = frame.headers.session; + emitWrapper('connected'); + break; + case "RECEIPT": + emitWrapper('receipt', frame.headers['receipt-id']); + break; + case "ERROR": + emitWrapper('error', frame); + break; + default: + log.debug("Could not parse command: " + frame.command); + } + }; + +<span id='Stomp-method-setupListeners'> /** +</span> * @private + * + * Sets up the listeners for the socket events + * Emits "error" upon errors + * Emits "disconnected" upon socket close + * + * @param {String} frame the frame to handle + * @returns {void} + */ + var setupListeners = function() { + + socket.on('drain', function(data) { + log.debug('draining'); + }); + + var buffer = ''; + socket.on('data', function(chunk) { + buffer += chunk; + var frames = buffer.split('\0\n'); + + // Temporary fix : NULL,LF is not a guaranteed standard, the LF is optional, so lets deal with it. (Rauls) + if (frames.length === 1) { + frames = buffer.split('\0'); + } + + if (frames.length === 1) {return;} + buffer = frames.pop(); + + var pFrame = null; + var moreFrames = true; + while (moreFrames) { + var frame = frames.shift(); + if (!frame) { + moreFrames = false; + } else { + pFrame = parseFrame(frame); + handleNewFrame(pFrame); + } + } + }); + + socket.on('end', function() { + log.debug("end"); + }); + + socket.on('error', function(error) { + log.error(error.stack + 'error name: ' + error.name); + emitWrapper("error", error); + }); + + socket.on('close', function(error) { + log.debug('disconnected'); + if (error) { + log.error('Disconnected with error: ' + error); + } + emitWrapper("disconnected", error); + }); + + if (options.ssl) { + stompConnect(); + } else { + socket.on('connect', stompConnect); + } + }; + +<span id='Stomp-method-stompConnect'> /** +</span> * @private + * + * Preps for and starts the STOMP connection + * + * @returns {void} + */ + var stompConnect = function() { + log.debug('Connected to socket'); + var headers = buildHeaders(options); + + var args = {}; + + headers = headers || {}; + + args.command = 'CONNECT'; + args.headers = headers; + + var frame = new Frame(); + var newFrame = frame.buildFrame(args); + + sendFrame(newFrame); + }; + +<span id='Stomp-method-emitWrapper'> /** +</span> * @private + * + * Wrapper to emit the events for the STOMP object + * + * @returns {void} + */ + var emitWrapper = function(str, obj){ + thisPointer.emit(str, obj); + }; + +<span id='Stomp-method-getOptions'> /** +</span> * @private + * + * Returns the process args/options passed into the Client. + * This is only used for testing purposes which is why this public function is marked private. + * + * @returns {Object} returns the process args/options passed into the Client + */ + var getOptions = function(){ + return options; + }; + +<span id='Stomp-method-parseCommand'> /** +</span> * @private + * + * Helper to parse the command from frame + * + * @param {Object} data the frame as a buffer + * @returns {String} returns the command from the frame + */ + var parseCommand = function(data) { + var dataStr = data.toString('utf8', 0, data.length); + var command = dataStr.split('\n'); + return command[0]; + }; + +<span id='Stomp-method-parseHeaders'> /** +</span> * @private + * + * Helper to parse the headers from frame + * + * @param {Object} rawHeaders the raw headers from the frame + * @returns {Object} returns the headers from the frame + */ + var parseHeaders = function(rawHeaders) { + var headers = {}; + var headersSplit = rawHeaders.split('\n'); + + for (var i = 0; i < headersSplit.length; i++) { + var header = headersSplit[i].split(':'); + if (header.length > 1) { + var headerKey = header.shift().trim(); + var headerVal = header.join(':').trim(); + headers[headerKey] = headerVal; + continue; + } + headers[header[0].trim()] = header[1].trim(); + } + return headers; + }; + +<span id='Stomp-method-parseFrame'> /** +</span> * @private + * + * Helper to parse the key data pieces (headers, command, body) from frame + * + * @param {Object} chunk the frame as a buffer + * @returns {Object} returns the frame as a [StompJS.Frame](#!/api/Frame) + */ + var parseFrame = function(chunk) { + if (!stompUtils.isDefined(chunk)) { + return null; + } + + var command = parseCommand(chunk); + var data = chunk.slice(command.length + 1, chunk.length); + data = data.toString('utf8', 0, data.length); + + var theRest = data.split('\n\n'); + var headers = parseHeaders(theRest[0]); + var body = theRest.slice(1, theRest.length); + + if ('content-length' in headers) { + headers.bytes_message = true; + } + + var args = { + command: command, + headers: headers, + body: body + }; + + var frame = new Frame(); + var newFrame = frame.buildFrame(args); + + return newFrame; + }; + +<span id='Stomp-method-buildHeaders'> /** +</span> * @private + * + * Helper to build the headers from the client args/options + * + * @param {Object} options the client args/options + * @returns {Object} returns the headers + */ + var buildHeaders = function(options) { + var headers = {}; + if (stompUtils.isDefined(options.login) && + stompUtils.isDefined(options.passcode)) { + headers.login = options.login; + headers.passcode = options.passcode; + } + if (stompUtils.isDefined(options.clientId)) { + headers["client-id"] = options.clientId; + } + if (stompUtils.isDefined(options.vhost)) { + headers.host = options.vhost; + } + return headers; + }; + +<span id='Stomp-method-sendCommand'> /** +</span> * @private + * + * Create the STOMP Frame and send the command to the STOMP broker + * + * @param {String} command the command to send + * @param {Object} headers the headers to send + * @param {Object} body the body to send + * @param {Boolean} wantReceipt boolean to indicate that you wish to get a receipt + * @returns {Object} returns a [StompJS.Frame](#!/api/Frame) + */ + var sendCommand = function(command, headers, body, wantReceipt) { + if (!stompUtils.isDefined(wantReceipt)) { + wantReceipt = false; + } + + if (!stompUtils.isDefined(headers)) { + headers = {}; + } + + var args = { + 'command': command, + 'headers': headers, + 'body': body + }; + + var frame = new Frame(); + var newFrame = frame.buildFrame(args, wantReceipt); + sendFrame(newFrame); + + return newFrame; + }; + +<span id='Stomp-method-sendFrame'> /** +</span> * @private + * + * Sends the STOMP frame to the message broker + * + * @param {String} frame the [StompJS.Frame](#!/api/Frame) + * @returns {void} + */ + var sendFrame = function(frame) { + var frameStr = frame.asString(); + + if (frame) { + if (frame.headers) { + if (frame.headers.login) { + log.debug('attempting to login with: ' + frame.headers.login); + log.debug('login passcode: ' + frame.headers.passcode); //TODO remove this + } + } + } + + if (socket.write(frameStr) === false) { + log.debug('Write buffered'); + } + }; + +<span id='Stomp-method-isMessage'> /** +</span> * @private + * + * Determines if the frame headers have a message id which is assigned only if its a message + * + * @param {String} frame the [StompJS.Frame](#!/api/Frame) + * @returns {Boolean} return *true* if the frame is a message; otherwise, *false* + */ + var isMessage = function(frame) { + return (frame.headers !== null && stompUtils.isDefined(frame.headers['message-id'])); + }; + +<span id='Stomp-method-shouldRunMessageCallback'> /** +</span> * @private + * + * Determines if the message callback function should be ran and runs it if it should + * + * @param {String} frame the [StompJS.Frame](#!/api/Frame) + * @returns {Boolean} return *true* if the frame is a message; otherwise, *false* + */ + var shouldRunMessageCallback = function(frame) { + var subscription = subscribedTo[frame.headers.destination]; + if (frame.headers.destination !== null && subscription !== null) { + if (subscription.enabled && subscription.callback !== null && typeof(subscription.callback) === 'function') { + subscription.callback(frame.body, frame.headers); + } + } + }; + + return { + Client: Client, + + isInitialized: isInitialized, + isConnected: isConnected, + connect: connect, + disconnect: disconnect, + subscribe: subscribe, + unsubscribe: unsubscribe, + send: send, + ack: ack, + abort: abort, + commit: commit, + begin: begin, + emitWrapper: emitWrapper, + + // exposed for testing purposes only + getOptions: getOptions + }; +}; +</pre> +</body> +</html> diff --git a/docs/source/stomp.logger.html b/docs/source/stomp.logger.html new file mode 100644 index 0000000..2f1affa --- /dev/null +++ b/docs/source/stomp.logger.html @@ -0,0 +1,95 @@ +<!DOCTYPE html> +<html> +<head> + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <title>The source code</title> + <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" /> + <script type="text/javascript" src="../resources/prettify/prettify.js"></script> + <style type="text/css"> + .highlight { display: block; background-color: #ddd; } + </style> + <script type="text/javascript"> + function highlight() { + document.getElementById(location.hash.replace(/#/, "")).className = "highlight"; + } + </script> +</head> +<body onload="prettyPrint(); highlight();"> + <pre class="prettyprint lang-js"><span id='StompLogger'>/** +</span> * @class StompLogger + * An instance of the StompJS logger + * + * @type {StompJS.Logger} + */ +var StompLogger = module.exports = function(outputDebugInit) { + "use strict"; + + var outputDebug = outputDebugInit; + +<span id='StompLogger-method-debug'> /** +</span> * Writes a debug message to the console only if the outputDebug flag was also set to true + * + * @param {String} message the message to write to the console + * @returns {void} + */ + var debug = function(message) { + if (outputDebug) { + console.log("debug: " + message); + } + }; + +<span id='StompLogger-method-info'> /** +</span> * Writes a info message to the console + * + * @param {String} message the message to write to the console + * @returns {void} + */ + var info = function(message) { + console.log("info: " + message); + }; + +<span id='StompLogger-method-warn'> /** +</span> * Writes a warn message to the console + * + * @param {String} message the message to write to the console + * @returns {void} + */ + var warn = function(message) { + console.log("warn: " + message); + }; + +<span id='StompLogger-method-error'> /** +</span> * Writes a error message to the console and kills the process based on die input + * + * @param {String} message the message to write to the console + * @param {Boolean} die if *true*, then kill the process after writing the message + * @returns {void} + */ + var error = function(message, die) { + console.log("error: " + message); + if (die) { + process.exit(1); + } + }; + +<span id='StompLogger-method-die'> /** +</span> * Writes a error message to the console and then kills the process + * + * @param {String} message the message to write to the console + * @returns {void} + */ + var die = function(message) { + error(message, true); + }; + + return { + debug: debug, + info: info, + warn: warn, + error: error, + die: die + }; +}; +</pre> +</body> +</html> diff --git a/docs/source/stomp.utils.html b/docs/source/stomp.utils.html new file mode 100644 index 0000000..18bd5b8 --- /dev/null +++ b/docs/source/stomp.utils.html @@ -0,0 +1,62 @@ +<!DOCTYPE html> +<html> +<head> + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <title>The source code</title> + <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" /> + <script type="text/javascript" src="../resources/prettify/prettify.js"></script> + <style type="text/css"> + .highlight { display: block; background-color: #ddd; } + </style> + <script type="text/javascript"> + function highlight() { + document.getElementById(location.hash.replace(/#/, "")).className = "highlight"; + } + </script> +</head> +<body onload="prettyPrint(); highlight();"> + <pre class="prettyprint lang-js"><span id='StompUtils'>/** +</span> * @class StompUtils + * An instance of the StompJS helper utilities + * + * @type {StompJS.StompUtils} + */ +var StompUtils = module.exports = function() { + "use strict"; + +<span id='StompUtils-method-isDefined'> /** +</span> * Returns if the input is defined (not null or undefined) + * + * @param {Object} varToTest the variable to test + * @returns {Boolean} returns *true* if the input is defined; otherwise, *false* + */ + var isDefined = function(varToTest) { + return !(varToTest === null || typeof varToTest === "undefined"); + }; + +<span id='StompUtils-method-extend'> /** +</span> * Extends the destination by adding any source properties + * + * @param {Object} destination the object to extend + * @param {Object} source the object to extend from + * @returns {Object} returns the extended object + */ + var extend = function(destination, source) { + if (!isDefined(destination)) {return destination;} + if (!isDefined(source)) {return destination;} + for (var property in source) { + if (source.hasOwnProperty(property)) { + destination[property] = source[property]; + } + } + return destination; + }; + + return { + isDefined: isDefined, + extend: extend + }; +}; +</pre> +</body> +</html> diff --git a/docs/stomp-exceptions.html b/docs/stomp-exceptions.html deleted file mode 100644 index e59c063..0000000 --- a/docs/stomp-exceptions.html +++ /dev/null @@ -1,10 +0,0 @@ -<!DOCTYPE html> <html> <head> <title>stomp-exceptions.js</title> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <link rel="stylesheet" media="all" href="rocco.css" /> </head> <body> <div id="navbar"> <h3>stomp-js - Implementation of the STOMP protocol in node.js<em></em></h3> </div> <div id="container"> <div id="background"></div> <div id="jump_to"> Jump To … <div id="jump_wrapper"> <div id="jump_page"> <a class="source" href="index.html">Index</a> <a class="source" href="frame.html"> frame.js </a> <a class="source" href="index.html"> index.js </a> <a class="source" href="stomp.html"> stomp.js </a> <a class="source" href="stomp-utils.html"> stomp-utils.js </a> <a class="source" href="stomp-exceptions.html"> stomp-exceptions.js </a> </div> </div> </div> <table cellpadding="0" cellspacing="0"> <thead> <tr> <th class="docs"> <h1> stomp-exceptions.js </h1> </th> <th class="code"> </th> </tr> </thead> <tbody> <tr id="section-1"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-1">¶</a> </div> </td> <td class="code"> <div class="highlight"><pre><span class="nx">QueueEmpty</span> <span class="o">=</span> <span class="nx">exports</span><span class="p">.</span><span class="nx">QueueEmpty</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span> - <span class="k">this</span><span class="p">.</span><span class="nx">name</span> <span class="o">=</span> <span class="s2">"QueueEmpty"</span><span class="p">;</span> - <span class="k">this</span><span class="p">.</span><span class="nx">message</span> <span class="o">=</span> <span class="s2">"Queue is Empty"</span><span class="p">;</span> -<span class="p">};</span> - -<span class="nx">QueueEmpty</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">toString</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span> - <span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">message</span><span class="p">;</span> -<span class="p">};</span> - -</pre></div> </td> </tr> </tbody> </table> </div> </body> </html> \ No newline at end of file diff --git a/docs/stomp-utils.html b/docs/stomp-utils.html deleted file mode 100644 index 7a0a755..0000000 --- a/docs/stomp-utils.html +++ /dev/null @@ -1,44 +0,0 @@ -<!DOCTYPE html> <html> <head> <title>stomp-utils.js</title> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <link rel="stylesheet" media="all" href="rocco.css" /> </head> <body> <div id="navbar"> <h3>stomp-js - Implementation of the STOMP protocol in node.js<em></em></h3> </div> <div id="container"> <div id="background"></div> <div id="jump_to"> Jump To … <div id="jump_wrapper"> <div id="jump_page"> <a class="source" href="index.html">Index</a> <a class="source" href="frame.html"> frame.js </a> <a class="source" href="index.html"> index.js </a> <a class="source" href="stomp.html"> stomp.js </a> <a class="source" href="stomp-utils.html"> stomp-utils.js </a> <a class="source" href="stomp-exceptions.html"> stomp-exceptions.js </a> </div> </div> </div> <table cellpadding="0" cellspacing="0"> <thead> <tr> <th class="docs"> <h1> stomp-utils.js </h1> </th> <th class="code"> </th> </tr> </thead> <tbody> <tr id="section-1"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-1">¶</a> </div> </td> <td class="code"> <div class="highlight"><pre><span class="kd">var</span> <span class="nx">exceptions</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s1">'./stomp-exceptions'</span><span class="p">);</span> -<span class="kd">var</span> <span class="nx">sys</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s1">'util'</span><span class="p">);</span> - -<span class="nx">StompLogging</span> <span class="o">=</span> <span class="nx">exports</span><span class="p">.</span><span class="nx">StompLogging</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">should_debug</span><span class="p">)</span> <span class="p">{</span> - <span class="k">this</span><span class="p">.</span><span class="nx">should_debug</span> <span class="o">=</span> <span class="nx">should_debug</span><span class="p">;</span> -<span class="p">};</span> - -<span class="nx">StompLogging</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">debug</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">message</span><span class="p">)</span> <span class="p">{</span> - <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">should_debug</span><span class="p">)</span> <span class="p">{</span> - <span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">"debug: "</span> <span class="o">+</span> <span class="nx">message</span><span class="p">);</span> - <span class="p">}</span> -<span class="p">};</span> - -<span class="nx">StompLogging</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">warn</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">message</span><span class="p">)</span> <span class="p">{</span> - <span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">"warn: "</span> <span class="o">+</span> <span class="nx">message</span><span class="p">);</span> -<span class="p">};</span> - -<span class="nx">StompLogging</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">error</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">message</span><span class="p">,</span> <span class="nx">die</span><span class="p">)</span> <span class="p">{</span> - <span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">"error: "</span> <span class="o">+</span> <span class="nx">message</span><span class="p">);</span> - <span class="k">if</span> <span class="p">(</span><span class="nx">die</span><span class="p">)</span> <span class="p">{</span> - <span class="nx">process</span><span class="p">.</span><span class="nx">exit</span><span class="p">(</span><span class="mi">1</span><span class="p">);</span> - <span class="p">}</span> -<span class="p">};</span> - -<span class="nx">StompLogging</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">die</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">message</span><span class="p">)</span> <span class="p">{</span> - <span class="k">this</span><span class="p">.</span><span class="nx">error</span><span class="p">(</span><span class="nx">message</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span> -<span class="p">};</span> - -<span class="nx">StompUtils</span> <span class="o">=</span> <span class="nx">exports</span><span class="p">.</span><span class="nx">StompUtils</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span> - <span class="k">this</span><span class="p">.</span><span class="nx">available_utils</span> <span class="o">=</span> <span class="p">[];</span> -<span class="p">};</span> - -<span class="nx">StompUtils</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">really_defined</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">var_to_test</span><span class="p">)</span> <span class="p">{</span> - <span class="k">return</span> <span class="o">!</span><span class="p">(</span><span class="nx">var_to_test</span> <span class="o">==</span> <span class="kc">null</span> <span class="o">||</span> <span class="nx">var_to_test</span> <span class="o">==</span> <span class="kc">undefined</span><span class="p">);</span> -<span class="p">};</span> - -<span class="nx">StompUtils</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">extend</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">destination</span><span class="p">,</span> <span class="nx">source</span><span class="p">)</span> <span class="p">{</span> - <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">property</span> <span class="k">in</span> <span class="nx">source</span><span class="p">)</span> <span class="p">{</span> - <span class="nx">destination</span><span class="p">[</span><span class="nx">property</span><span class="p">]</span> <span class="o">=</span> <span class="nx">source</span><span class="p">[</span><span class="nx">property</span><span class="p">];</span> - <span class="p">}</span> - <span class="k">return</span> <span class="nx">destination</span><span class="p">;</span> -<span class="p">};</span> - -</pre></div> </td> </tr> </tbody> </table> </div> </body> </html> \ No newline at end of file diff --git a/docs/stomp.html b/docs/stomp.html deleted file mode 100644 index 76e795d..0000000 --- a/docs/stomp.html +++ /dev/null @@ -1,365 +0,0 @@ -<!DOCTYPE html> <html> <head> <title>stomp.js</title> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <link rel="stylesheet" media="all" href="rocco.css" /> </head> <body> <div id="navbar"> <h3>stomp-js - Implementation of the STOMP protocol in node.js<em></em></h3> </div> <div id="container"> <div id="background"></div> <div id="jump_to"> Jump To … <div id="jump_wrapper"> <div id="jump_page"> <a class="source" href="index.html">Index</a> <a class="source" href="frame.html"> frame.js </a> <a class="source" href="index.html"> index.js </a> <a class="source" href="stomp.html"> stomp.js </a> <a class="source" href="stomp-utils.html"> stomp-utils.js </a> <a class="source" href="stomp-exceptions.html"> stomp-exceptions.js </a> </div> </div> </div> <table cellpadding="0" cellspacing="0"> <thead> <tr> <th class="docs"> <h1> stomp.js </h1> </th> <th class="code"> </th> </tr> </thead> <tbody> <tr id="section-1"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-1">¶</a> </div> <h2>stomp</h2> - -<p>The <code>Stomp</code> module provides you with a client interface for interacting with STOMP messaging brokers</p> - -<h3>stomp.Stomp</h3> - -<p>An instance of the <code>Stomp</code> object. Initialized like so:</p> - -<pre><code>var stomp_args = { - port: 61613, - host: 'localhost', - debug: false, - login: 'guest', - passcode: 'guest', -}; - -var client = new stomp.Stomp(stomp_args);</code></pre> - -<p>If debug is set to true, extra output will be printed to the console.</p> </td> <td class="code"> <div class="highlight"><pre></pre></div> </td> </tr> <tr id="section-2"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-2">¶</a> </div> <h2>Helpers to handle frames, and do parsing</h2> </td> <td class="code"> <div class="highlight"><pre><span class="kd">var</span> <span class="nx">net</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s1">'net'</span><span class="p">),</span> - <span class="nx">tls</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s1">'tls'</span><span class="p">),</span> - <span class="nx">sys</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s1">'util'</span><span class="p">),</span> - <span class="nx">frame</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s1">'./frame'</span><span class="p">),</span> - <span class="nx">stomp_utils</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s1">'./stomp-utils'</span><span class="p">),</span> - <span class="nx">exceptions</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s1">'./stomp-exceptions'</span><span class="p">),</span> - <span class="nx">utils</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">stomp_utils</span><span class="p">.</span><span class="nx">StompUtils</span><span class="p">(),</span> - <span class="nx">log</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span> - - -<span class="kd">function</span> <span class="nx">parse_command</span><span class="p">(</span><span class="nx">data</span><span class="p">)</span> <span class="p">{</span> - <span class="kd">var</span> <span class="nx">command</span><span class="p">,</span> - <span class="nx">this_string</span> <span class="o">=</span> <span class="nx">data</span><span class="p">.</span><span class="nx">toString</span><span class="p">(</span><span class="s1">'utf8'</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">data</span><span class="p">.</span><span class="nx">length</span><span class="p">);</span> - <span class="nx">command</span> <span class="o">=</span> <span class="nx">this_string</span><span class="p">.</span><span class="nx">split</span><span class="p">(</span><span class="s1">'\n'</span><span class="p">);</span> - <span class="k">return</span> <span class="nx">command</span><span class="p">[</span><span class="mi">0</span><span class="p">];</span> -<span class="p">};</span> - -<span class="kd">function</span> <span class="nx">parse_headers</span><span class="p">(</span><span class="nx">headers_str</span><span class="p">)</span> <span class="p">{</span> - <span class="kd">var</span> <span class="nx">these_headers</span> <span class="o">=</span> <span class="p">{},</span> - <span class="nx">one_header</span> <span class="o">=</span> <span class="p">[],</span> - <span class="nx">header_key</span> <span class="o">=</span> <span class="kc">null</span><span class="p">,</span> - <span class="nx">header_val</span> <span class="o">=</span> <span class="kc">null</span><span class="p">,</span> - <span class="nx">headers_split</span> <span class="o">=</span> <span class="nx">headers_str</span><span class="p">.</span><span class="nx">split</span><span class="p">(</span><span class="s1">'\n'</span><span class="p">);</span> - - <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">i</span> <span class="o"><</span> <span class="nx">headers_split</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span> - <span class="nx">one_header</span> <span class="o">=</span> <span class="nx">headers_split</span><span class="p">[</span><span class="nx">i</span><span class="p">].</span><span class="nx">split</span><span class="p">(</span><span class="s1">':'</span><span class="p">);</span> - <span class="k">if</span> <span class="p">(</span><span class="nx">one_header</span><span class="p">.</span><span class="nx">length</span> <span class="o">></span> <span class="mi">1</span><span class="p">)</span> <span class="p">{</span> - <span class="nx">header_key</span> <span class="o">=</span> <span class="nx">one_header</span><span class="p">.</span><span class="nx">shift</span><span class="p">();</span> - <span class="nx">header_val</span> <span class="o">=</span> <span class="nx">one_header</span><span class="p">.</span><span class="nx">join</span><span class="p">(</span><span class="s1">':'</span><span class="p">);</span> - <span class="nx">these_headers</span><span class="p">[</span><span class="nx">header_key</span><span class="p">]</span> <span class="o">=</span> <span class="nx">header_val</span><span class="p">;</span> - <span class="p">}</span> - <span class="k">else</span> <span class="p">{</span> - <span class="nx">these_headers</span><span class="p">[</span><span class="nx">one_header</span><span class="p">[</span><span class="mi">0</span><span class="p">]]</span> <span class="o">=</span> <span class="nx">one_header</span><span class="p">[</span><span class="mi">1</span><span class="p">];</span> - <span class="p">}</span> - <span class="p">}</span> - <span class="k">return</span> <span class="nx">these_headers</span><span class="p">;</span> -<span class="p">};</span> - -<span class="kd">function</span> <span class="nx">parse_frame</span><span class="p">(</span><span class="nx">chunk</span><span class="p">)</span> <span class="p">{</span> - <span class="kd">var</span> <span class="nx">args</span> <span class="o">=</span> <span class="p">{},</span> - <span class="nx">data</span> <span class="o">=</span> <span class="kc">null</span><span class="p">,</span> - <span class="nx">command</span> <span class="o">=</span> <span class="kc">null</span><span class="p">,</span> - <span class="nx">headers</span> <span class="o">=</span> <span class="kc">null</span><span class="p">,</span> - <span class="nx">body</span> <span class="o">=</span> <span class="kc">null</span><span class="p">,</span> - <span class="nx">headers_str</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span> - - <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">utils</span><span class="p">.</span><span class="nx">really_defined</span><span class="p">(</span><span class="nx">chunk</span><span class="p">))</span> - <span class="k">return</span> <span class="kc">null</span><span class="p">;</span> - - <span class="nx">command</span> <span class="o">=</span> <span class="nx">parse_command</span><span class="p">(</span><span class="nx">chunk</span><span class="p">);</span> - <span class="nx">data</span> <span class="o">=</span> <span class="nx">chunk</span><span class="p">.</span><span class="nx">slice</span><span class="p">(</span><span class="nx">command</span><span class="p">.</span><span class="nx">length</span> <span class="o">+</span> <span class="mi">1</span><span class="p">,</span> <span class="nx">chunk</span><span class="p">.</span><span class="nx">length</span><span class="p">);</span> - <span class="nx">data</span> <span class="o">=</span> <span class="nx">data</span><span class="p">.</span><span class="nx">toString</span><span class="p">(</span><span class="s1">'utf8'</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">data</span><span class="p">.</span><span class="nx">length</span><span class="p">);</span> - - <span class="kd">var</span> <span class="nx">the_rest</span> <span class="o">=</span> <span class="nx">data</span><span class="p">.</span><span class="nx">split</span><span class="p">(</span><span class="s1">'\n\n'</span><span class="p">);</span> - <span class="nx">headers</span> <span class="o">=</span> <span class="nx">parse_headers</span><span class="p">(</span><span class="nx">the_rest</span><span class="p">[</span><span class="mi">0</span><span class="p">]);</span> - <span class="nx">body</span> <span class="o">=</span> <span class="nx">the_rest</span><span class="p">.</span><span class="nx">slice</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="nx">the_rest</span><span class="p">.</span><span class="nx">length</span><span class="p">);</span> - - <span class="k">if</span> <span class="p">(</span><span class="s1">'content-length'</span> <span class="k">in</span> <span class="nx">headers</span><span class="p">)</span> - <span class="nx">headers</span><span class="p">[</span><span class="s1">'bytes_message'</span><span class="p">]</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span> - - <span class="nx">args</span> <span class="o">=</span> <span class="p">{</span> - <span class="nx">command</span><span class="o">:</span> <span class="nx">command</span><span class="p">,</span> - <span class="nx">headers</span><span class="o">:</span> <span class="nx">headers</span><span class="p">,</span> - <span class="nx">body</span><span class="o">:</span> <span class="nx">body</span> - <span class="p">}</span> - - <span class="kd">var</span> <span class="nx">this_frame</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">frame</span><span class="p">.</span><span class="nx">Frame</span><span class="p">();</span> - <span class="kd">var</span> <span class="nx">return_frame</span> <span class="o">=</span> <span class="nx">this_frame</span><span class="p">.</span><span class="nx">build_frame</span><span class="p">(</span><span class="nx">args</span><span class="p">);</span> - - <span class="k">return</span> <span class="nx">return_frame</span><span class="p">;</span> -<span class="p">};</span> - -<span class="kd">function</span> <span class="nx">_connect</span><span class="p">(</span><span class="nx">stomp</span><span class="p">)</span> <span class="p">{</span> - <span class="nx">log</span> <span class="o">=</span> <span class="nx">stomp</span><span class="p">.</span><span class="nx">log</span><span class="p">;</span> - - <span class="k">if</span> <span class="p">(</span><span class="nx">stomp</span><span class="p">.</span><span class="nx">ssl</span><span class="p">)</span> <span class="p">{</span> - <span class="nx">log</span><span class="p">.</span><span class="nx">debug</span><span class="p">(</span><span class="s1">'Connecting to '</span> <span class="o">+</span> <span class="nx">stomp</span><span class="p">.</span><span class="nx">host</span> <span class="o">+</span> <span class="s1">':'</span> <span class="o">+</span> <span class="nx">stomp</span><span class="p">.</span><span class="nx">port</span> <span class="o">+</span> <span class="s1">' using SSL'</span><span class="p">);</span> - <span class="nx">stomp</span><span class="p">.</span><span class="nx">socket</span> <span class="o">=</span> <span class="nx">tls</span><span class="p">.</span><span class="nx">connect</span><span class="p">(</span><span class="nx">stomp</span><span class="p">.</span><span class="nx">port</span><span class="p">,</span> <span class="nx">stomp</span><span class="p">.</span><span class="nx">host</span><span class="p">,</span> <span class="nx">stomp</span><span class="p">.</span><span class="nx">ssl_options</span><span class="p">,</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span> - <span class="nx">log</span><span class="p">.</span><span class="nx">debug</span><span class="p">(</span><span class="s1">'SSL connection complete'</span><span class="p">);</span> - <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">stomp</span><span class="p">.</span><span class="nx">socket</span><span class="p">.</span><span class="nx">authorized</span><span class="p">)</span> <span class="p">{</span> - <span class="nx">log</span><span class="p">.</span><span class="nx">error</span><span class="p">(</span><span class="s1">'SSL is not authorized: '</span><span class="o">+</span><span class="nx">stomp</span><span class="p">.</span><span class="nx">socket</span><span class="p">.</span><span class="nx">authorizationError</span><span class="p">);</span> - <span class="k">if</span> <span class="p">(</span><span class="nx">stomp</span><span class="p">.</span><span class="nx">ssl_validate</span><span class="p">)</span> <span class="p">{</span> - <span class="nx">_disconnect</span><span class="p">(</span><span class="nx">stomp</span><span class="p">);</span> - <span class="k">return</span><span class="p">;</span> - <span class="p">}</span> - <span class="p">}</span> - <span class="nx">_setupListeners</span><span class="p">(</span><span class="nx">stomp</span><span class="p">);</span> - <span class="p">});</span> - <span class="p">}</span> <span class="k">else</span> <span class="p">{</span> - <span class="nx">log</span><span class="p">.</span><span class="nx">debug</span><span class="p">(</span><span class="s1">'Connecting to '</span> <span class="o">+</span> <span class="nx">stomp</span><span class="p">.</span><span class="nx">host</span> <span class="o">+</span> <span class="s1">':'</span> <span class="o">+</span> <span class="nx">stomp</span><span class="p">.</span><span class="nx">port</span><span class="p">);</span> - <span class="nx">stomp</span><span class="p">.</span><span class="nx">socket</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">net</span><span class="p">.</span><span class="nx">Socket</span><span class="p">();</span> - <span class="nx">stomp</span><span class="p">.</span><span class="nx">socket</span><span class="p">.</span><span class="nx">connect</span><span class="p">(</span><span class="nx">stomp</span><span class="p">.</span><span class="nx">port</span><span class="p">,</span> <span class="nx">stomp</span><span class="p">.</span><span class="nx">host</span><span class="p">);</span> - <span class="nx">_setupListeners</span><span class="p">(</span><span class="nx">stomp</span><span class="p">);</span> - <span class="p">}</span> -<span class="p">}</span> - -<span class="kd">function</span> <span class="nx">_setupListeners</span><span class="p">(</span><span class="nx">stomp</span><span class="p">)</span> <span class="p">{</span> - <span class="kd">function</span> <span class="nx">_connected</span><span class="p">()</span> <span class="p">{</span> - <span class="nx">log</span><span class="p">.</span><span class="nx">debug</span><span class="p">(</span><span class="s1">'Connected to socket'</span><span class="p">);</span> - <span class="kd">var</span> <span class="nx">headers</span> <span class="o">=</span> <span class="p">{};</span> - <span class="k">if</span> <span class="p">(</span><span class="nx">utils</span><span class="p">.</span><span class="nx">really_defined</span><span class="p">(</span><span class="nx">stomp</span><span class="p">.</span><span class="nx">login</span><span class="p">)</span> <span class="o">&&</span> - <span class="nx">utils</span><span class="p">.</span><span class="nx">really_defined</span><span class="p">(</span><span class="nx">stomp</span><span class="p">.</span><span class="nx">passcode</span><span class="p">))</span> <span class="p">{</span> - <span class="nx">headers</span><span class="p">.</span><span class="nx">login</span> <span class="o">=</span> <span class="nx">stomp</span><span class="p">.</span><span class="nx">login</span><span class="p">;</span> - <span class="nx">headers</span><span class="p">.</span><span class="nx">passcode</span> <span class="o">=</span> <span class="nx">stomp</span><span class="p">.</span><span class="nx">passcode</span><span class="p">;</span> - <span class="p">}</span> - <span class="k">if</span> <span class="p">(</span><span class="nx">utils</span><span class="p">.</span><span class="nx">really_defined</span><span class="p">(</span><span class="nx">stomp</span><span class="p">[</span><span class="s2">"client-id"</span><span class="p">]))</span> <span class="p">{</span> - <span class="nx">headers</span><span class="p">[</span><span class="s2">"client-id"</span><span class="p">]</span> <span class="o">=</span> <span class="nx">stomp</span><span class="p">[</span><span class="s2">"client-id"</span><span class="p">];</span> - <span class="p">}</span> - <span class="nx">stomp_connect</span><span class="p">(</span><span class="nx">stomp</span><span class="p">,</span> <span class="nx">headers</span><span class="p">);</span> - <span class="p">}</span> - - <span class="kd">var</span> <span class="nx">socket</span> <span class="o">=</span> <span class="nx">stomp</span><span class="p">.</span><span class="nx">socket</span><span class="p">;</span> - - <span class="nx">socket</span><span class="p">.</span><span class="nx">on</span><span class="p">(</span><span class="s1">'drain'</span><span class="p">,</span> <span class="kd">function</span><span class="p">(</span><span class="nx">data</span><span class="p">)</span> <span class="p">{</span> - <span class="nx">log</span><span class="p">.</span><span class="nx">debug</span><span class="p">(</span><span class="s1">'draining'</span><span class="p">);</span> - <span class="p">});</span> - - <span class="kd">var</span> <span class="nx">buffer</span> <span class="o">=</span> <span class="s1">''</span><span class="p">;</span> - <span class="nx">socket</span><span class="p">.</span><span class="nx">on</span><span class="p">(</span><span class="s1">'data'</span><span class="p">,</span> <span class="kd">function</span><span class="p">(</span><span class="nx">chunk</span><span class="p">)</span> <span class="p">{</span> - <span class="nx">buffer</span> <span class="o">+=</span> <span class="nx">chunk</span><span class="p">;</span> - <span class="kd">var</span> <span class="nx">frames</span> <span class="o">=</span> <span class="nx">buffer</span><span class="p">.</span><span class="nx">split</span><span class="p">(</span><span class="s1">'\0\n'</span><span class="p">);</span></pre></div> </td> </tr> <tr id="section-3"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-3">¶</a> </div> <p>Temporary fix : NULL,LF is not a guranteed standard, the LF is optional, so lets deal with it. (Rauls)</p> </td> <td class="code"> <div class="highlight"><pre> <span class="k">if</span> <span class="p">(</span><span class="nx">frames</span><span class="p">.</span><span class="nx">length</span> <span class="o">==</span> <span class="mi">1</span><span class="p">)</span> <span class="p">{</span> - <span class="nx">frames</span> <span class="o">=</span> <span class="nx">buffer</span><span class="p">.</span><span class="nx">split</span><span class="p">(</span><span class="s1">'\0'</span><span class="p">);</span> - <span class="p">}</span> - - <span class="k">if</span> <span class="p">(</span><span class="nx">frames</span><span class="p">.</span><span class="nx">length</span> <span class="o">==</span> <span class="mi">1</span><span class="p">)</span> <span class="k">return</span><span class="p">;</span> - <span class="nx">buffer</span> <span class="o">=</span> <span class="nx">frames</span><span class="p">.</span><span class="nx">pop</span><span class="p">();</span> - - <span class="kd">var</span> <span class="nx">parsed_frame</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span> - <span class="kd">var</span> <span class="nx">_frame</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span> - <span class="k">while</span> <span class="p">(</span><span class="nx">_frame</span> <span class="o">=</span> <span class="nx">frames</span><span class="p">.</span><span class="nx">shift</span><span class="p">())</span> <span class="p">{</span> - <span class="nx">parsed_frame</span> <span class="o">=</span> <span class="nx">parse_frame</span><span class="p">(</span><span class="nx">_frame</span><span class="p">);</span> - <span class="nx">stomp</span><span class="p">.</span><span class="nx">handle_new_frame</span><span class="p">(</span><span class="nx">parsed_frame</span><span class="p">);</span> - <span class="p">}</span> - <span class="p">});</span> - - <span class="nx">socket</span><span class="p">.</span><span class="nx">on</span><span class="p">(</span><span class="s1">'end'</span><span class="p">,</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span> - <span class="nx">log</span><span class="p">.</span><span class="nx">debug</span><span class="p">(</span><span class="s2">"end"</span><span class="p">);</span> - <span class="p">});</span> - - <span class="nx">socket</span><span class="p">.</span><span class="nx">on</span><span class="p">(</span><span class="s1">'error'</span><span class="p">,</span> <span class="kd">function</span><span class="p">(</span><span class="nx">error</span><span class="p">)</span> <span class="p">{</span> - <span class="nx">log</span><span class="p">.</span><span class="nx">error</span><span class="p">(</span><span class="nx">error</span><span class="p">.</span><span class="nx">stack</span> <span class="o">+</span> <span class="s1">'error name: '</span> <span class="o">+</span> <span class="nx">error</span><span class="p">.</span><span class="nx">name</span><span class="p">);</span> - <span class="nx">stomp</span><span class="p">.</span><span class="nx">emit</span><span class="p">(</span><span class="s2">"error"</span><span class="p">,</span> <span class="nx">error</span><span class="p">);</span> - <span class="p">});</span> - - <span class="nx">socket</span><span class="p">.</span><span class="nx">on</span><span class="p">(</span><span class="s1">'close'</span><span class="p">,</span> <span class="kd">function</span><span class="p">(</span><span class="nx">error</span><span class="p">)</span> <span class="p">{</span> - <span class="nx">log</span><span class="p">.</span><span class="nx">debug</span><span class="p">(</span><span class="s1">'disconnected'</span><span class="p">);</span> - <span class="k">if</span> <span class="p">(</span><span class="nx">error</span><span class="p">)</span> <span class="p">{</span> - <span class="nx">log</span><span class="p">.</span><span class="nx">error</span><span class="p">(</span><span class="s1">'Disconnected with error: '</span> <span class="o">+</span> <span class="nx">error</span><span class="p">);</span> - <span class="p">}</span> - <span class="nx">stomp</span><span class="p">.</span><span class="nx">emit</span><span class="p">(</span><span class="s2">"disconnected"</span><span class="p">,</span> <span class="nx">error</span><span class="p">);</span> - <span class="p">});</span> - - <span class="k">if</span> <span class="p">(</span><span class="nx">stomp</span><span class="p">.</span><span class="nx">ssl</span><span class="p">)</span> <span class="p">{</span> - <span class="nx">_connected</span><span class="p">();</span> - <span class="p">}</span> <span class="k">else</span> <span class="p">{</span> - <span class="nx">socket</span><span class="p">.</span><span class="nx">on</span><span class="p">(</span><span class="s1">'connect'</span><span class="p">,</span> <span class="nx">_connected</span><span class="p">);</span> - <span class="p">}</span> -<span class="p">};</span> - -<span class="kd">function</span> <span class="nx">stomp_connect</span><span class="p">(</span><span class="nx">stomp</span><span class="p">,</span> <span class="nx">headers</span><span class="p">)</span> <span class="p">{</span> - <span class="kd">var</span> <span class="nx">_frame</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">frame</span><span class="p">.</span><span class="nx">Frame</span><span class="p">(),</span> - <span class="nx">args</span> <span class="o">=</span> <span class="p">{},</span> - <span class="nx">headers</span> <span class="o">=</span> <span class="nx">headers</span> <span class="o">||</span> <span class="p">{};</span> - - <span class="nx">args</span><span class="p">[</span><span class="s1">'command'</span><span class="p">]</span> <span class="o">=</span> <span class="s1">'CONNECT'</span><span class="p">;</span> - <span class="nx">args</span><span class="p">[</span><span class="s1">'headers'</span><span class="p">]</span> <span class="o">=</span> <span class="nx">headers</span><span class="p">;</span> - - <span class="kd">var</span> <span class="nx">frame_to_send</span> <span class="o">=</span> <span class="nx">_frame</span><span class="p">.</span><span class="nx">build_frame</span><span class="p">(</span><span class="nx">args</span><span class="p">);</span> - - <span class="nx">send_frame</span><span class="p">(</span><span class="nx">stomp</span><span class="p">,</span> <span class="nx">frame_to_send</span><span class="p">);</span> -<span class="p">};</span> - -<span class="kd">function</span> <span class="nx">_disconnect</span><span class="p">(</span><span class="nx">stomp</span><span class="p">)</span> <span class="p">{</span> - <span class="kd">var</span> <span class="nx">socket</span> <span class="o">=</span> <span class="nx">stomp</span><span class="p">.</span><span class="nx">socket</span><span class="p">;</span> - <span class="nx">socket</span><span class="p">.</span><span class="nx">end</span><span class="p">();</span> - <span class="k">if</span> <span class="p">(</span><span class="nx">socket</span><span class="p">.</span><span class="nx">readyState</span> <span class="o">==</span> <span class="s1">'readOnly'</span><span class="p">)</span> - <span class="nx">socket</span><span class="p">.</span><span class="nx">destroy</span><span class="p">();</span> - <span class="nx">log</span><span class="p">.</span><span class="nx">debug</span><span class="p">(</span><span class="s1">'disconnect called'</span><span class="p">);</span> -<span class="p">};</span> - -<span class="kd">function</span> <span class="nx">send_command</span><span class="p">(</span><span class="nx">stomp</span><span class="p">,</span> <span class="nx">command</span><span class="p">,</span> <span class="nx">headers</span><span class="p">,</span> <span class="nx">body</span><span class="p">,</span> <span class="nx">want_receipt</span><span class="p">)</span> <span class="p">{</span> - <span class="kd">var</span> <span class="nx">want_receipt</span> <span class="o">=</span> <span class="nx">want_receipt</span> <span class="o">||</span> <span class="kc">false</span><span class="p">;</span> - <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">utils</span><span class="p">.</span><span class="nx">really_defined</span><span class="p">(</span><span class="nx">headers</span><span class="p">))</span> - <span class="nx">headers</span> <span class="o">=</span> <span class="p">{};</span> - - <span class="kd">var</span> <span class="nx">args</span> <span class="o">=</span> <span class="p">{</span> - <span class="s1">'command'</span><span class="o">:</span> <span class="nx">command</span><span class="p">,</span> - <span class="s1">'headers'</span><span class="o">:</span> <span class="nx">headers</span><span class="p">,</span> - <span class="s1">'body'</span><span class="o">:</span> <span class="nx">body</span> - <span class="p">};</span> - - <span class="kd">var</span> <span class="nx">_frame</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">frame</span><span class="p">.</span><span class="nx">Frame</span><span class="p">();</span> - <span class="kd">var</span> <span class="nx">this_frame</span> <span class="o">=</span> <span class="nx">_frame</span><span class="p">.</span><span class="nx">build_frame</span><span class="p">(</span><span class="nx">args</span><span class="p">,</span> <span class="nx">want_receipt</span><span class="p">);</span> - <span class="nx">send_frame</span><span class="p">(</span><span class="nx">stomp</span><span class="p">,</span> <span class="nx">this_frame</span><span class="p">);</span> - - <span class="k">return</span> <span class="nx">this_frame</span><span class="p">;</span> -<span class="p">};</span> - -<span class="kd">function</span> <span class="nx">send_frame</span><span class="p">(</span><span class="nx">stomp</span><span class="p">,</span> <span class="nx">_frame</span><span class="p">)</span> <span class="p">{</span> - <span class="kd">var</span> <span class="nx">socket</span> <span class="o">=</span> <span class="nx">stomp</span><span class="p">.</span><span class="nx">socket</span><span class="p">;</span> - <span class="kd">var</span> <span class="nx">frame_str</span> <span class="o">=</span> <span class="nx">_frame</span><span class="p">.</span><span class="nx">as_string</span><span class="p">();</span> - - <span class="k">if</span> <span class="p">(</span><span class="nx">socket</span><span class="p">.</span><span class="nx">write</span><span class="p">(</span><span class="nx">frame_str</span><span class="p">)</span> <span class="o">===</span> <span class="kc">false</span><span class="p">)</span> <span class="p">{</span> - <span class="nx">log</span><span class="p">.</span><span class="nx">debug</span><span class="p">(</span><span class="s1">'Write buffered'</span><span class="p">);</span> - <span class="p">}</span> - - <span class="k">return</span> <span class="kc">true</span><span class="p">;</span> -<span class="p">};</span></pre></div> </td> </tr> <tr id="section-4"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-4">¶</a> </div> <h2>Stomp - Client API</h2> - -<p>Takes an argument object</p> </td> <td class="code"> <div class="highlight"><pre><span class="kd">function</span> <span class="nx">Stomp</span><span class="p">(</span><span class="nx">args</span><span class="p">)</span> <span class="p">{</span> - <span class="k">this</span><span class="p">.</span><span class="nx">port</span> <span class="o">=</span> <span class="nx">args</span><span class="p">[</span><span class="s1">'port'</span><span class="p">]</span> <span class="o">||</span> <span class="mi">61613</span><span class="p">;</span> - <span class="k">this</span><span class="p">.</span><span class="nx">host</span> <span class="o">=</span> <span class="nx">args</span><span class="p">[</span><span class="s1">'host'</span><span class="p">]</span> <span class="o">||</span> <span class="s2">"127.0.0.1"</span><span class="p">;</span> - <span class="k">this</span><span class="p">.</span><span class="nx">debug</span> <span class="o">=</span> <span class="nx">args</span><span class="p">[</span><span class="s1">'debug'</span><span class="p">];</span> - <span class="k">this</span><span class="p">.</span><span class="nx">login</span> <span class="o">=</span> <span class="nx">args</span><span class="p">[</span><span class="s1">'login'</span><span class="p">]</span> <span class="o">||</span> <span class="kc">null</span><span class="p">;</span> - <span class="k">this</span><span class="p">.</span><span class="nx">passcode</span> <span class="o">=</span> <span class="nx">args</span><span class="p">[</span><span class="s1">'passcode'</span><span class="p">]</span> <span class="o">||</span> <span class="kc">null</span><span class="p">;</span> - <span class="k">this</span><span class="p">.</span><span class="nx">log</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">StompLogging</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">debug</span><span class="p">);</span> - <span class="k">this</span><span class="p">.</span><span class="nx">_subscribed_to</span> <span class="o">=</span> <span class="p">{};</span> - <span class="k">this</span><span class="p">.</span><span class="nx">session</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span> - <span class="k">this</span><span class="p">.</span><span class="nx">ssl</span> <span class="o">=</span> <span class="nx">args</span><span class="p">[</span><span class="s1">'ssl'</span><span class="p">]</span> <span class="o">?</span> <span class="kc">true</span> <span class="o">:</span> <span class="kc">false</span><span class="p">;</span> - <span class="k">this</span><span class="p">.</span><span class="nx">ssl_validate</span> <span class="o">=</span> <span class="nx">args</span><span class="p">[</span><span class="s1">'ssl_validate'</span><span class="p">]</span> <span class="o">?</span> <span class="kc">true</span> <span class="o">:</span> <span class="kc">false</span><span class="p">;</span> - <span class="k">this</span><span class="p">.</span><span class="nx">ssl_options</span> <span class="o">=</span> <span class="nx">args</span><span class="p">[</span><span class="s1">'ssl_options'</span><span class="p">]</span> <span class="o">||</span> <span class="p">{};</span> - <span class="k">this</span><span class="p">[</span><span class="s1">'client-id'</span><span class="p">]</span> <span class="o">=</span> <span class="nx">args</span><span class="p">[</span><span class="s1">'client-id'</span><span class="p">]</span> <span class="o">||</span> <span class="kc">null</span><span class="p">;</span> -<span class="p">};</span></pre></div> </td> </tr> <tr id="section-5"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-5">¶</a> </div> <h2>Stomp is an EventEmitter</h2> </td> <td class="code"> <div class="highlight"><pre><span class="nx">Stomp</span><span class="p">.</span><span class="nx">prototype</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">process</span><span class="p">.</span><span class="nx">EventEmitter</span><span class="p">();</span></pre></div> </td> </tr> <tr id="section-6"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-6">¶</a> </div> <h2>Stomp.connect()</h2> - -<p><strong>Begin connection</strong></p> </td> <td class="code"> <div class="highlight"><pre><span class="nx">Stomp</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">connect</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span> - <span class="nx">_connect</span><span class="p">(</span><span class="k">this</span><span class="p">);</span> -<span class="p">};</span></pre></div> </td> </tr> <tr id="section-7"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-7">¶</a> </div> <h2>Stomp.handle_new_frame()</h2> - -<p><strong>Handle frame based on type. Emit events when needed.</strong></p> - -<p>Takes a <code>Frame</code> object</p> </td> <td class="code"> <div class="highlight"><pre><span class="nx">Stomp</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">handle_new_frame</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">this_frame</span><span class="p">)</span> <span class="p">{</span> - <span class="k">switch</span> <span class="p">(</span><span class="nx">this_frame</span><span class="p">.</span><span class="nx">command</span><span class="p">)</span> <span class="p">{</span> - <span class="k">case</span> <span class="s2">"MESSAGE"</span><span class="o">:</span> - <span class="k">if</span> <span class="p">(</span><span class="nx">utils</span><span class="p">.</span><span class="nx">really_defined</span><span class="p">(</span><span class="nx">this_frame</span><span class="p">.</span><span class="nx">headers</span><span class="p">[</span><span class="s1">'message-id'</span><span class="p">]))</span> <span class="p">{</span> - <span class="k">if</span> <span class="p">(</span><span class="nx">this_frame</span><span class="p">.</span><span class="nx">headers</span> <span class="o">!==</span> <span class="kc">null</span> <span class="o">&&</span> <span class="nx">this_frame</span><span class="p">.</span><span class="nx">headers</span><span class="p">.</span><span class="nx">destination</span> <span class="o">!==</span> <span class="kc">null</span> <span class="o">&&</span> <span class="k">this</span><span class="p">.</span><span class="nx">_subscribed_to</span><span class="p">[</span><span class="nx">this_frame</span><span class="p">.</span><span class="nx">headers</span><span class="p">.</span><span class="nx">destination</span><span class="p">]</span> <span class="o">!==</span> <span class="kc">null</span><span class="p">)</span> <span class="p">{</span> - <span class="kd">var</span> <span class="nx">subscription</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">_subscribed_to</span><span class="p">[</span><span class="nx">this_frame</span><span class="p">.</span><span class="nx">headers</span><span class="p">.</span><span class="nx">destination</span><span class="p">];</span> - <span class="k">if</span> <span class="p">(</span><span class="nx">subscription</span><span class="p">.</span><span class="nx">enabled</span> <span class="o">&&</span> <span class="nx">subscription</span><span class="p">.</span><span class="nx">callback</span> <span class="o">!==</span> <span class="kc">null</span> <span class="o">&&</span> <span class="k">typeof</span><span class="p">(</span><span class="nx">subscription</span><span class="p">.</span><span class="nx">callback</span><span class="p">)</span> <span class="o">==</span> <span class="s1">'function'</span><span class="p">)</span> <span class="p">{</span> - <span class="nx">subscription</span><span class="p">.</span><span class="nx">callback</span><span class="p">(</span><span class="nx">this_frame</span><span class="p">.</span><span class="nx">body</span><span class="p">,</span> <span class="nx">this_frame</span><span class="p">.</span><span class="nx">headers</span><span class="p">);</span> - <span class="p">}</span> - <span class="p">}</span> - <span class="k">this</span><span class="p">.</span><span class="nx">emit</span><span class="p">(</span><span class="s1">'message'</span><span class="p">,</span> <span class="nx">this_frame</span><span class="p">);</span> - <span class="p">}</span> - - <span class="k">break</span><span class="p">;</span> - <span class="k">case</span> <span class="s2">"CONNECTED"</span><span class="o">:</span> - <span class="nx">log</span><span class="p">.</span><span class="nx">debug</span><span class="p">(</span><span class="s1">'Connected to STOMP'</span><span class="p">);</span> - <span class="k">this</span><span class="p">.</span><span class="nx">session</span> <span class="o">=</span> <span class="nx">this_frame</span><span class="p">.</span><span class="nx">headers</span><span class="p">[</span><span class="s1">'session'</span><span class="p">];</span> - <span class="k">this</span><span class="p">.</span><span class="nx">emit</span><span class="p">(</span><span class="s1">'connected'</span><span class="p">);</span> - <span class="k">break</span><span class="p">;</span> - <span class="k">case</span> <span class="s2">"RECEIPT"</span><span class="o">:</span> - <span class="k">this</span><span class="p">.</span><span class="nx">emit</span><span class="p">(</span><span class="s1">'receipt'</span><span class="p">,</span> <span class="nx">this_frame</span><span class="p">.</span><span class="nx">headers</span><span class="p">[</span><span class="s1">'receipt-id'</span><span class="p">]);</span> - <span class="k">break</span><span class="p">;</span> - <span class="k">case</span> <span class="s2">"ERROR"</span><span class="o">:</span> - <span class="k">this</span><span class="p">.</span><span class="nx">emit</span><span class="p">(</span><span class="s1">'error'</span><span class="p">,</span> <span class="nx">this_frame</span><span class="p">);</span> - <span class="k">break</span><span class="p">;</span> - <span class="k">default</span><span class="o">:</span> - <span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">"Could not parse command: "</span> <span class="o">+</span> <span class="nx">this_frame</span><span class="p">.</span><span class="nx">command</span><span class="p">);</span> - <span class="p">}</span> -<span class="p">};</span></pre></div> </td> </tr> <tr id="section-8"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-8">¶</a> </div> <h2>Stomp.disconnect()</h2> - -<p><strong>Disconnect from STOMP broker</strong></p> </td> <td class="code"> <div class="highlight"><pre><span class="nx">Stomp</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">disconnect</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span> - <span class="nx">_disconnect</span><span class="p">(</span><span class="k">this</span><span class="p">);</span> -<span class="p">}</span></pre></div> </td> </tr> <tr id="section-9"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-9">¶</a> </div> <h2>Stomp.subscribe(headers, callback)</h2> - -<p><strong>Subscribe to destination (queue or topic)</strong></p> - -<p>Takes a header object</p> - -<p>Takes a callback function</p> </td> <td class="code"> <div class="highlight"><pre><span class="nx">Stomp</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">subscribe</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">headers</span><span class="p">,</span> <span class="nx">callback</span><span class="p">)</span> <span class="p">{</span> - <span class="kd">var</span> <span class="nx">destination</span> <span class="o">=</span> <span class="nx">headers</span><span class="p">[</span><span class="s1">'destination'</span><span class="p">];</span> - <span class="nx">headers</span><span class="p">[</span><span class="s1">'session'</span><span class="p">]</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">session</span><span class="p">;</span> - <span class="nx">send_command</span><span class="p">(</span><span class="k">this</span><span class="p">,</span> <span class="s1">'SUBSCRIBE'</span><span class="p">,</span> <span class="nx">headers</span><span class="p">);</span> - - <span class="cm">/**</span> -<span class="cm"> / Maybe we could subscribe to mulitple queues?</span> -<span class="cm"> / if (destination instanceof Array) {</span> -<span class="cm"> / for (var = i; i < 0; i++) {</span> -<span class="cm"> / this._subscribed_to[destination[i]] = { enabled: true, callback: callback };</span> -<span class="cm"> / }</span> -<span class="cm"> / }</span> -<span class="cm"> / else {</span> -<span class="cm"> / this._subscribed_to[destination] = { enabled: true, callback: callback };</span> -<span class="cm"> / }</span> -<span class="cm"> /</span> -<span class="cm"> */</span> - - <span class="k">this</span><span class="p">.</span><span class="nx">_subscribed_to</span><span class="p">[</span><span class="nx">destination</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span> <span class="nx">enabled</span><span class="o">:</span> <span class="kc">true</span><span class="p">,</span> <span class="nx">callback</span><span class="o">:</span> <span class="nx">callback</span> <span class="p">};</span> - <span class="k">this</span><span class="p">.</span><span class="nx">log</span><span class="p">.</span><span class="nx">debug</span><span class="p">(</span><span class="s1">'subscribed to: '</span> <span class="o">+</span> <span class="nx">destination</span> <span class="o">+</span> <span class="s1">' with headers '</span> <span class="o">+</span> <span class="nx">sys</span><span class="p">.</span><span class="nx">inspect</span><span class="p">(</span><span class="nx">headers</span><span class="p">));</span> -<span class="p">};</span></pre></div> </td> </tr> <tr id="section-10"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-10">¶</a> </div> <h2>Stomp.unsubscribe()</h2> - -<p><strong>Unsubscribe from destination (queue or topic)</strong></p> - -<p>Takes a header object</p> </td> <td class="code"> <div class="highlight"><pre><span class="nx">Stomp</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">unsubscribe</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">headers</span><span class="p">)</span> <span class="p">{</span> - <span class="kd">var</span> <span class="nx">destination</span> <span class="o">=</span> <span class="nx">headers</span><span class="p">[</span><span class="s1">'destination'</span><span class="p">];</span> - <span class="nx">headers</span><span class="p">[</span><span class="s1">'session'</span><span class="p">]</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">session</span><span class="p">;</span> - <span class="nx">send_command</span><span class="p">(</span><span class="k">this</span><span class="p">,</span> <span class="s1">'UNSUBSCRIBE'</span><span class="p">,</span> <span class="nx">headers</span><span class="p">);</span> - <span class="k">this</span><span class="p">.</span><span class="nx">_subscribed_to</span><span class="p">[</span><span class="nx">destination</span><span class="p">].</span><span class="nx">enabled</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span> - <span class="k">this</span><span class="p">.</span><span class="nx">log</span><span class="p">.</span><span class="nx">debug</span><span class="p">(</span><span class="s1">'no longer subscribed to: '</span> <span class="o">+</span> <span class="nx">destination</span><span class="p">);</span> -<span class="p">};</span></pre></div> </td> </tr> <tr id="section-11"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-11">¶</a> </div> <h2>Stomp.ack()</h2> - -<p><strong>Acknowledge received message</strong></p> - -<p>Takes a string representing the message id to ack</p> </td> <td class="code"> <div class="highlight"><pre><span class="nx">Stomp</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">ack</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">message_id</span><span class="p">)</span> <span class="p">{</span> - <span class="nx">send_command</span><span class="p">(</span><span class="k">this</span><span class="p">,</span> <span class="s1">'ACK'</span><span class="p">,</span> <span class="p">{</span><span class="s1">'message-id'</span><span class="o">:</span> <span class="nx">message_id</span><span class="p">});</span> - <span class="k">this</span><span class="p">.</span><span class="nx">log</span><span class="p">.</span><span class="nx">debug</span><span class="p">(</span><span class="s1">'acknowledged message: '</span> <span class="o">+</span> <span class="nx">message_id</span><span class="p">);</span> -<span class="p">};</span></pre></div> </td> </tr> <tr id="section-12"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-12">¶</a> </div> <h2>Stomp.begin()</h2> - -<p><strong>Begin transaction</strong></p> - -<p>Return a string representing the generated transaction id</p> </td> <td class="code"> <div class="highlight"><pre><span class="nx">Stomp</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">begin</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span> - <span class="kd">var</span> <span class="nx">transaction_id</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">floor</span><span class="p">(</span><span class="nb">Math</span><span class="p">.</span><span class="nx">random</span><span class="p">()</span><span class="o">*</span><span class="mi">99999999999</span><span class="p">).</span><span class="nx">toString</span><span class="p">();</span> - <span class="nx">send_command</span><span class="p">(</span><span class="k">this</span><span class="p">,</span> <span class="s1">'BEGIN'</span><span class="p">,</span> <span class="p">{</span><span class="s1">'transaction'</span><span class="o">:</span> <span class="nx">transaction_id</span><span class="p">});</span> - <span class="k">this</span><span class="p">.</span><span class="nx">log</span><span class="p">.</span><span class="nx">debug</span><span class="p">(</span><span class="s1">'begin transaction: '</span> <span class="o">+</span> <span class="nx">transaction_id</span><span class="p">);</span> - <span class="k">return</span> <span class="nx">transaction_id</span><span class="p">;</span> -<span class="p">};</span></pre></div> </td> </tr> <tr id="section-13"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-13">¶</a> </div> <h2>Stomp.commit()</h2> - -<p><strong>Commit transaction</strong></p> - -<p>Takes a string representing the transaction id generated by stomp.Stomp.begin()</p> </td> <td class="code"> <div class="highlight"><pre><span class="nx">Stomp</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">commit</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">transaction_id</span><span class="p">)</span> <span class="p">{</span> - <span class="nx">send_command</span><span class="p">(</span><span class="k">this</span><span class="p">,</span> <span class="s1">'COMMIT'</span><span class="p">,</span> <span class="p">{</span><span class="s1">'transaction'</span><span class="o">:</span> <span class="nx">transaction_id</span><span class="p">});</span> - <span class="k">this</span><span class="p">.</span><span class="nx">log</span><span class="p">.</span><span class="nx">debug</span><span class="p">(</span><span class="s1">'commit transaction: '</span> <span class="o">+</span> <span class="nx">transaction_id</span><span class="p">);</span> -<span class="p">};</span></pre></div> </td> </tr> <tr id="section-14"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-14">¶</a> </div> <h2>Stomp.abort()</h2> - -<p><strong>Abort transaction</strong></p> - -<p>Takes a string representing the transaction id generated by stomp.Stomp.begin()</p> </td> <td class="code"> <div class="highlight"><pre><span class="nx">Stomp</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">abort</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">transaction_id</span><span class="p">)</span> <span class="p">{</span> - <span class="nx">send_command</span><span class="p">(</span><span class="k">this</span><span class="p">,</span> <span class="s1">'ABORT'</span><span class="p">,</span> <span class="p">{</span><span class="s1">'transaction'</span><span class="o">:</span> <span class="nx">transaction_id</span><span class="p">});</span> - <span class="k">this</span><span class="p">.</span><span class="nx">log</span><span class="p">.</span><span class="nx">debug</span><span class="p">(</span><span class="s1">'abort transaction: '</span> <span class="o">+</span> <span class="nx">transaction_id</span><span class="p">);</span> -<span class="p">};</span></pre></div> </td> </tr> <tr id="section-15"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-15">¶</a> </div> <h2>Stomp.send()</h2> - -<p><strong>Send MESSAGE to STOMP broker</strong></p> - -<p>Takes a header object (destination is required)</p> - -<p>Takes a boolean requesting recipt of the sent message</p> - -<p>Returns a <code>Frame</code> object representing the message sent</p> </td> <td class="code"> <div class="highlight"><pre><span class="nx">Stomp</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">send</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">headers</span><span class="p">,</span> <span class="nx">want_receipt</span><span class="p">)</span> <span class="p">{</span> - <span class="kd">var</span> <span class="nx">destination</span> <span class="o">=</span> <span class="nx">headers</span><span class="p">[</span><span class="s1">'destination'</span><span class="p">],</span> - <span class="nx">body</span> <span class="o">=</span> <span class="nx">headers</span><span class="p">[</span><span class="s1">'body'</span><span class="p">]</span> <span class="o">||</span> <span class="kc">null</span><span class="p">;</span> - <span class="k">delete</span> <span class="nx">headers</span><span class="p">[</span><span class="s1">'body'</span><span class="p">];</span> - <span class="nx">headers</span><span class="p">[</span><span class="s1">'session'</span><span class="p">]</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">session</span><span class="p">;</span> - <span class="k">return</span> <span class="nx">send_command</span><span class="p">(</span><span class="k">this</span><span class="p">,</span> <span class="s1">'SEND'</span><span class="p">,</span> <span class="nx">headers</span><span class="p">,</span> <span class="nx">body</span><span class="p">,</span> <span class="nx">want_receipt</span><span class="p">)</span> -<span class="p">};</span> - -<span class="nx">module</span><span class="p">.</span><span class="nx">exports</span><span class="p">.</span><span class="nx">Stomp</span> <span class="o">=</span> <span class="nx">Stomp</span><span class="p">;</span> - -</pre></div> </td> </tr> </tbody> </table> </div> </body> </html> \ No newline at end of file diff --git a/examples/app.js b/examples/app.js new file mode 100644 index 0000000..020f492 --- /dev/null +++ b/examples/app.js @@ -0,0 +1,52 @@ +module.exports = function App() { + "use strict"; + + var program, exec, log; + + var init = function() { + program = require('commander'); + var version = require('../package.json').version; + var debugOptions = ['true','false']; + + program + .version(version) + .option('-f, --file <type>', 'The example file to load.') + .option('-d, --debug <items>', 'Run in debug mode.', debugOptions) + .option('-p, --params <type>', 'Other parameters to pass to example file.') + .parse(process.argv); + + var debug = false; + if (program.debug) { + if (program.debug === "true") { + debug = true; + } + } + + var file = './examples/stomp-example.js'; + if (program.file) { + file = program.file; + } + + var params = null; + if (program.params) { + params = program.params[0]; + } + + var StompLogger = require('../lib/stomp.logger.js'); + log = new StompLogger(debug); + + log.info('initializing app...'); + log.debug('root dir:' + __dirname); + exec = require(program.file).init(debug, params); + }; + + var execute = function() { + log.info('executing app...'); + exec.execute(); + }; + + init(); + execute(); + + return {}; +} (); diff --git a/examples/stomp-consumer.js b/examples/stomp-consumer.js deleted file mode 100755 index 3954e81..0000000 --- a/examples/stomp-consumer.js +++ /dev/null @@ -1,58 +0,0 @@ -#!/usr/bin/env node - -var sys = require('util'); -var stomp = require('stomp'); - -// Set debug to true for more verbose output. -// login and passcode are optional (required by rabbitMQ) -var stomp_args = { - port: 61613, - host: 'localhost', - debug: false, - login: 'guest', - passcode: 'guest', -}; - -var client = new stomp.Stomp(stomp_args); - -// 'activemq.prefetchSize' is optional. -// Specified number will 'fetch' that many messages -// and dump it to the client. -var headers = { - destination: '/queue/test_stomp', - ack: 'client', -// 'activemq.prefetchSize': '10' -}; - -var messages = 0; - -client.connect(); - -function message_callback(body, headers) { - console.log('Message Callback Fired!'); - console.log('Headers: ' + sys.inspect(headers)); - console.log('Body: ' + body); -} - -client.on('connected', function() { - client.subscribe(headers, message_callback); - console.log('Connected'); -}); - -client.on('message', function(message) { - //console.log("HEADERS: " + sys.inspect(message.headers)); - //console.log("BODY: " + message.body); - console.log("Got message: " + message.headers['message-id']); - client.ack(message.headers['message-id']); - messages++; -}); - -client.on('error', function(error_frame) { - console.log(error_frame.body); - client.disconnect(); -}); - -process.on('SIGINT', function() { - console.log('\nConsumed ' + messages + ' messages'); - client.disconnect(); -}); diff --git a/examples/stomp-examples.js b/examples/stomp-examples.js new file mode 100644 index 0000000..401712b --- /dev/null +++ b/examples/stomp-examples.js @@ -0,0 +1,280 @@ +module.exports = function Examples() { + "use strict"; + + var debug, params, util, log, stompSettings; + + var Stomp; + + var getParams = function(){ + return params; + }; + + var init = function(debugInit, paramsInit) { + debug = debugInit; + params = paramsInit; + util = require('util'); + Stomp = require('../lib/stomp.js'); + var StompLogger = require('../lib/stomp.logger.js'); + log = new StompLogger(debug); + + log.info('initializing example...'); + + if (!params) { + params = "Publisher"; + } + + log.debug('params: ' + params); + + stompSettings = { + "host" : "localhost", + "port" : 61613, + "user" : "guest", + "password" : "guest", + "debug" : debug + }; + + return this; + }; + + var execute = function() { + log.info('executing example...'); + stompConnect(); + }; + + var stompConnect = function() { + + var stompArgs = { + host: stompSettings.host, + port: stompSettings.port, + login: stompSettings.user, + passcode: stompSettings.password, + debug: stompSettings.debug + }; + + // login only important if using security on the MQ end + if (params === 'ListenerA') { + stompArgs.login = "siteAuser1"; + stompArgs.passcode = "siteAuser1"; + } else if (params === 'ListenerB') { + stompArgs.login = "siteBuser1"; + stompArgs.passcode = "siteBuser1"; + } else if (params === 'ListenerC') { + stompArgs.login = "siteCuser1"; + stompArgs.passcode = "siteCuser1"; + } else if (params === 'ListenerAll') { + stompArgs.login = "alluser2"; + stompArgs.passcode = "alluser2"; + } else if (params === 'Publisher') { + stompArgs.login = "alluser1"; + stompArgs.passcode = "alluser1"; + } + log.debug(util.format("login:" + stompArgs.login)); + + + var stompClient = new Stomp().Client(stompArgs); + + stompClient.on('connected', function () { + log.info(util.format("stomp.onConnected")); + + runStomp(stompClient, function(err, result){ + if (err) {log.error(err);} + log.debug('result', result); + exit(); + }); + }); + + stompClient.on('receipt', function (receipt) { + log.debug(util.format("stomp.onReceipt %s", receipt)); + }); + + stompClient.on('error', function (errorFrame) { + log.error(util.format("stomp.onError %s", JSON.stringify(errorFrame))); + stompClient.disconnect(); + exit(); + }); + + stompClient.on('SIGINT', function () { + log.warn(util.format("stomp.onSIGINT")); + stompClient.disconnect(); + exit(); + }); + + stompClient.connect(); + }; + + var runStomp = function(stompClient, callback) { + + try + { + var topic = "/topic/"; + var queue = "/queue/"; + var baseQueueName = "%sSite.%s"; + var queueNameSiteA = util.format(baseQueueName, topic, "A"); + var queueNameSiteB = util.format(baseQueueName, queue, "B"); + var queueNameSiteC = util.format(baseQueueName, topic, "C"); + + var baseRoutingKey = "command.siteCode%s.msgId%d"; + + var message, routingKey; + + + if (params === 'ListenerA') { + // listener for site A + listener(stompClient, queueNameSiteA, "", processMessage); + } else if (params === 'ListenerB') { + // listener for site B + listener(stompClient, queueNameSiteB, "", processMessage); + } else if (params === 'ListenerC') { + // listener for site C + listener(stompClient, queueNameSiteC, "", processMessage); + } else if (params === 'ListenerAll') { + // listener for site ALL + //var allQueues = util.format(baseQueueName, baseQueueType, "*"); + // all queues with wild card doesn't work, errors on stomp.js:299 + + var allQueues = [queueNameSiteA, queueNameSiteB,queueNameSiteC]; + listener(stompClient, allQueues, "", processMessage); + } else if (params === 'Publisher') { + // publish 3 messages for A + message = {message: "msg1 for A", queue: "A", msgId: 1}; + routingKey = util.format(baseRoutingKey, message.queue, message.msgId); + publishMessage(stompClient, message, queueNameSiteA, routingKey); + + message = {message: "msg2 for A", queue: "A", msgId: 2}; + routingKey = util.format(baseRoutingKey, message.queue, message.msgId); + publishMessage(stompClient, message, queueNameSiteA, routingKey); + + message = {message: "msg3 for A", queue: "A", msgId: 3}; + routingKey = util.format(baseRoutingKey, message.queue, message.msgId); + publishMessage(stompClient, message, queueNameSiteA, routingKey); + + // publish 2 messages for B + message = {message: "msg1 for B", queue: "B", msgId: 4}; + routingKey = util.format(baseRoutingKey, message.queue, message.msgId); + publishMessageWithTransaction(stompClient, message, queueNameSiteB, routingKey); + + message = {message: "msg2 for B", queue: "B", msgId: 5}; + routingKey = util.format(baseRoutingKey, message.queue, message.msgId); + publishMessageWithTransaction(stompClient, message, queueNameSiteB, routingKey); + + // publish 1 message for C + message = {message: "msg1 for C", queue: "C", msgId: 6}; + routingKey = util.format(baseRoutingKey, message.queue, message.msgId); + publishMessageWithTransaction(stompClient, message, queueNameSiteC, routingKey); + + return callback(null, 'All messages have been published'); + } + + } catch (err) { + var errMsg; + if (err.stack) { + errMsg = err.stack; + } else if (err.message) { + errMsg = err.message; + } else { + errMsg = err; + } + + log.error('trapped the following error:' + errMsg); + exit(); + } + }; + + var exit = function(){ + log.info('exiting program'); + process.nextTick(function () { + process.exit(1); + }); + }; + + var processMessage = function(msg) { + log.info(util.format('processMessage received', msg)); + }; + + var listener = function(client, destination, selector, messageProcessorFunction){ + + var subscribeArgs = { + destination: destination, + //selector: 'RoutingKey LIKE '%s', + ack: 'auto' + }; + + client.on('message', function (messageData) { + log.debug(util.format("listener.onMessage = %s", JSON.stringify(messageData))); + + var messageHeaders = messageData.headers; + var deliveryInfo = { + routingKey: messageHeaders.RoutingKey + }; + var messageBody = messageData.body; + messageBody = JSON.parse(messageBody); + + log.debug(util.format("listener started message with routing key %s = %s", deliveryInfo.routingKey, messageBody)); + + process.nextTick(function () { + messageProcessorFunction(messageBody, messageHeaders, deliveryInfo, function (err, handlerMsg) { + log.debug(util.format("listener finished message with routing key %s", deliveryInfo.routingKey)); + + if (err) { + var errMsg = util.format("listener handler returned error: %s", err.message); + log.error(errMsg); + } else { + log.debug(util.format("listener handler message returned: %s", handlerMsg)); + } + }); + }); + }); + + log.info('listener listening to ' + subscribeArgs.destination); + client.subscribe(subscribeArgs, function (body, headers) { + log.debug(util.format("subscribe body: %s headers:%s", JSON.stringify(body), JSON.stringify(headers))); + }); + }; + + var publishMessage = function(client, message, queueName, routingKey) { + var publisherArgs = { + body: JSON.stringify(message), + persistent: 'true' + }; + if (routingKey) { + publisherArgs.RoutingKey = routingKey; + } + publisherArgs.destination = queueName; + + var wantReceipt = false; + client.send(publisherArgs, wantReceipt); + + log.info(util.format("publishMessage %s", JSON.stringify(publisherArgs))); + }; + + var publishMessageWithTransaction = function(client, message, queueName, routingKey) { + + var txn = client.begin(); + + var publisherArgs = { + body: JSON.stringify(message), + persistent: 'true', + transaction: txn + }; + if (routingKey) { + publisherArgs.RoutingKey = routingKey; + } + publisherArgs.destination = queueName; + + var wantReceipt = false; + + client.send(publisherArgs, wantReceipt); + + client.commit(txn); + //client.abort(txn); + + log.info(util.format("publishMessageWithTransaction %s", JSON.stringify(publisherArgs))); + }; + + + return { + init: init, + execute: execute, + getParams: getParams + }; +}(); diff --git a/examples/stomp-producer-txn.js b/examples/stomp-producer-txn.js deleted file mode 100755 index 8ff980d..0000000 --- a/examples/stomp-producer-txn.js +++ /dev/null @@ -1,58 +0,0 @@ -#!/usr/bin/env node -// Same as stomp-producer.js, but transactional - -var stomp = require('stomp'); - -var num = process.argv[2]; - -// Set to true if you want a receipt -// of all messages sent. -var receipt = false; - -// Set debug to true for more verbose output. -// login and passcode are optional (required by rabbitMQ) -var stomp_args = { - port: 61613, - host: 'localhost', - debug: true, - login: 'guest', - passcode: 'guest', -} - -var client = new stomp.Stomp(stomp_args); - -var queue = '/queue/test_stomp'; - -client.connect(); - -client.on('connected', function() { - num = num || 1000; - for (var i = 0; i < num; i++) { - txn = client.begin(); - client.send({ - 'destination': queue, - 'body': 'Testing' + i, - 'persistent': 'true', - 'transaction': txn - }, receipt); - client.commit(txn); - //client.abort(txn); - } - console.log('Produced ' + num + ' messages'); - client.disconnect(); -}); - -client.on('receipt', function(receipt) { - console.log("RECEIPT: " + receipt); -}); - -client.on('error', function(error_frame) { - console.log(error_frame.body); - client.disconnect(); -}); - -process.on('SIGINT', function() { - console.log('Produced ' + num + ' messages'); - client.disconnect(); - process.exit(0); -}); diff --git a/examples/stomp-producer.js b/examples/stomp-producer.js deleted file mode 100755 index 4eff967..0000000 --- a/examples/stomp-producer.js +++ /dev/null @@ -1,59 +0,0 @@ -#!/usr/bin/env node - -var stomp = require('stomp'); - -var num = process.argv[2]; - -// Set to true if you want a receipt -// of all messages sent. -var receipt = true; - -// Set debug to true for more verbose output. -// login and passcode are optional (required by rabbitMQ) -var stomp_args = { - port: 61613, - host: 'localhost', - debug: false, - login: 'guest', - passcode: 'guest', -} - -var client = new stomp.Stomp(stomp_args); - -var queue = '/queue/test_stomp'; - -client.connect(); - -function sleep(milliSeconds) { - var startTime = new Date().getTime(); - while (new Date().getTime() < startTime + milliSeconds); -} - -client.on('connected', function() { - num = num || 1000; - for (var i = 0; i < num; i++) { - client.send({ - 'destination': queue, - 'body': 'Testing\n\ntesting1\n\ntesting2 ' + i, - 'persistent': 'true' - }, receipt); - sleep(250); - } - console.log('Produced ' + num + ' messages'); - client.disconnect(); -}); - -client.on('receipt', function(receipt) { - console.log("RECEIPT: " + receipt); -}); - -client.on('error', function(error_frame) { - console.log(error_frame.body); - client.disconnect(); -}); - -process.on('SIGINT', function() { - console.log('Produced ' + num + ' messages'); - client.disconnect(); - process.exit(0); -}); diff --git a/jsduckCategories.json b/jsduckCategories.json new file mode 100644 index 0000000..286a55e --- /dev/null +++ b/jsduckCategories.json @@ -0,0 +1,21 @@ +[ + { + "name":"StompJS", + "groups": [ + { + "name":"Classes", + "classes":[ + "Frame", + "Stomp" + ] + }, + { + "name":"Utilities", + "classes":[ + "StompUtils", + "StompLogger" + ] + } + ] + } +] \ No newline at end of file diff --git a/jsduckConfig.json b/jsduckConfig.json new file mode 100644 index 0000000..faee3e2 --- /dev/null +++ b/jsduckConfig.json @@ -0,0 +1,11 @@ +{ + "--output": "docs", + "--warnings": ["-link","-no_doc","-link_ambiguous"], + "--categories": "jsduckCategories.json", + "--": [ + "lib/frame.js", + "lib/stomp.js", + "lib/stomp.logger.js", + "lib/stomp.utils.js" + ] +} \ No newline at end of file diff --git a/lib/frame.js b/lib/frame.js index e9943bb..7525ba3 100644 --- a/lib/frame.js +++ b/lib/frame.js @@ -1,97 +1,86 @@ -// ## frame -// -// The `Frame` module provides an object representation of a `Stomp` frame. -// -// ### frame.Frame -// -// An instance of the `Frame` object. -// -// var frame = new frame.Frame(); -// -// ### frame.Frame.build_frame() -// -// Build a frame object from an object of arguments. -// -// var args = { -// command: '', -// headers: {}, -// body: '' -// }; -// -// this_frame = frame.build_frame(args); -// - - -// -// ## Frame - Object representation of a STOMP frame -// -function Frame() { +/** + * @class Frame + * The `Frame` module provides an object representation of a [STOMP frame](http://stomp.github.io/stomp-specification-1.0.html) + * + * @type {StompJS.Frame} + */ +var Frame = module.exports = function() { + "use strict"; this.command = null; this.headers = null; this.body = null; -}; -// -// ## Frame.build_frame(args, want_receipt) -// -// **Build frame based on arguments provided** -// -// Takes arguments object needed to build frame (command, headers, body?) -// -// Takes boolean to indicate that you wish to get a receipt (set receipt header) -// -// Returns an object representing a frame -// -Frame.prototype.build_frame = function(args, want_receipt) { - var receipt_stamp = null; + /** + * Build frame based on arguments provided + * + * @param {Object} args arguments object needed to build frame (command, headers, body?) + * + * ***Example:*** + * + * args = { + * command: '', + * headers: {}, + * body: '' + * } + * + * @param {Boolean} wantReceipt boolean to indicate that you wish to get a receipt (set receipt header) + * @returns {Object} returns {@link StompJS.Frame} + */ + var buildFrame = function(args, wantReceipt) { + var receiptStamp = null; - this.command = args['command']; - this.headers = args['headers']; - this.body = args['body']; + this.command = args.command; + this.headers = args.headers; + this.body = args.body; - if (want_receipt) { - var _receipt = ''; - receipt_stamp = Math.floor(Math.random()*99999999999).toString(); - if (this.headers['session'] != undefined) { - _receipt = receipt_stamp + "-" + this.headers['session']; + if (wantReceipt) { + var receipt = ''; + receiptStamp = Math.floor(Math.random()*99999999999).toString(); + if (this.headers.session !== undefined) { + receipt = receiptStamp + "-" + this.headers.session; + } + else { + receipt = receiptStamp; + } + this.headers.receipt = receipt; } - else { - _receipt = receipt_stamp; - } - this.headers['receipt'] = _receipt; - } - return this; -}; -// -// ## Frame.as_string() -// -// **String representation of Frame object** -// -// Returns `Frame` as string -// -Frame.prototype.as_string = function() { - var header_strs = [], - frame = "", - command = this.command, - headers = this.headers, - body = this.body; + return this; + }; - for (var header in headers) { - header_strs.push(header + ':' + headers[header]); - } + /** + * String representation of Frame object + * + * @returns {String} returns {@link StompJS.Frame} as string + */ + var asString = function() { + var headerStrs = [], + frame = "", + command = this.command, + headers = this.headers, + body = this.body; - frame += command + "\n"; - frame += header_strs.join("\n"); - frame += "\n\n"; + for (var header in headers) { + if (headers.hasOwnProperty(header)){ + headerStrs.push(header + ':' + headers[header]); + } + } - if(body) { - frame += body; - } + frame += command + "\n"; + frame += headerStrs.join("\n"); + frame += "\n\n"; - frame += '\x00'; + if(body) { + frame += body; + } - return frame; -}; + frame += '\x00'; -module.exports.Frame = Frame; + return frame; + }; + + return { + buildFrame: buildFrame, + asString: asString + }; +}; diff --git a/lib/stomp-exceptions.js b/lib/stomp-exceptions.js deleted file mode 100644 index d137882..0000000 --- a/lib/stomp-exceptions.js +++ /dev/null @@ -1,8 +0,0 @@ -var QueueEmpty = exports.QueueEmpty = function() { - this.name = "QueueEmpty"; - this.message = "Queue is Empty"; -}; - -QueueEmpty.prototype.toString = function() { - return this.message; -}; diff --git a/lib/stomp-utils.js b/lib/stomp-utils.js deleted file mode 100644 index cb7b156..0000000 --- a/lib/stomp-utils.js +++ /dev/null @@ -1,42 +0,0 @@ -var exceptions = require('./stomp-exceptions'); -var sys = require('util'); - -var StompLogging = exports.StompLogging = function(should_debug) { - this.should_debug = should_debug; -}; - -StompLogging.prototype.debug = function(message) { - if (this.should_debug) { - console.log("debug: " + message); - } -}; - -StompLogging.prototype.warn = function(message) { - console.log("warn: " + message); -}; - -StompLogging.prototype.error = function(message, die) { - console.log("error: " + message); - if (die) { - process.exit(1); - } -}; - -StompLogging.prototype.die = function(message) { - this.error(message, true); -}; - -var StompUtils = exports.StompUtils = function() { - this.available_utils = []; -}; - -StompUtils.prototype.really_defined = function(var_to_test) { - return !(var_to_test == null || var_to_test == undefined); -}; - -StompUtils.prototype.extend = function(destination, source) { - for (var property in source) { - destination[property] = source[property]; - } - return destination; -}; diff --git a/lib/stomp.js b/lib/stomp.js index 47f58db..1017628 100644 --- a/lib/stomp.js +++ b/lib/stomp.js @@ -1,467 +1,632 @@ -// ## stomp -// -// The `Stomp` module provides you with a client interface for interacting with STOMP messaging brokers -// -// ### stomp.Stomp -// -// An instance of the `Stomp` object. Initialized like so: -// -// var stomp_args = { -// port: 61613, -// host: 'localhost', -// debug: false, -// login: 'guest', -// passcode: 'guest', -// }; -// -// var client = new stomp.Stomp(stomp_args); -// -// If debug is set to true, extra output will be printed to the console. - -// ## Helpers to handle frames, and do parsing - -var events = require('events'), - net = require('net'), - tls = require('tls'), - sys = require('util'), - util = require('util'), - frame = require('./frame'), - stomp_utils = require('./stomp-utils'), - exceptions = require('./stomp-exceptions'), - utils = new stomp_utils.StompUtils(), - log = null; - - -function parse_command(data) { - var command, - this_string = data.toString('utf8', 0, data.length); - command = this_string.split('\n'); - return command[0]; -}; +/** + * @class Stomp + * An instance of the Stomp object for interacting with STOMP messaging brokers + * + * @type {StompJS.Stomp} + */ +var Stomp = module.exports = function() { + "use strict"; + + var errMsgNotInitialized = "not initialized"; + var errMsgNotConnected = "not connected"; + + var events = require('events'); + var Frame = require('./frame.js'); + + var StompUtils = require('./stomp.utils.js'); + var stompUtils = new StompUtils(); + + var net, tls, sys, log; + + var _initialized = false; + var _connected = false; + var options = {}; + var subscribedTo, session, socket, thisPointer; + + /** + * @method Client + * + * Creates a client for the {@link StompJS.Stomp} object. + * + * @param {Object} args arguments needed to create the client + * + * ***Example:*** + * + * args = { + * port: 61613, + * host: 'localhost', + * debug: false, + * login: 'guest', + * passcode: 'guest' + * } + * + * If debug is set to true, extra output will be printed to the console. + * + * var client = new Stomp().Client(args); + * + * @returns {Object} returns StompClient + */ + var Client = function(args) { + net = require('net'); + tls = require('tls'); + sys = require('util'); + + options.port = args.port || 61613; + options.host = args.host || '127.0.0.1'; + options.login = args.login || null; + options.passcode = args.passcode || null; + options.ssl = args.ssl ? true : false; + options.sslValidate = args.ssl_validate ? true : false; + options.sslOptions = args.ssl_options || {}; + options.clientId = args['client-id'] || null; + options.vhost = args.vhost || null; + + var debug = args.debug || false; + var StompLogger = require('./stomp.logger.js'); + log = new StompLogger(debug); + + subscribedTo = {}; + session = null; + socket = null; + + // Stomp is an EventEmitter + stompUtils.extend(this, events.EventEmitter.prototype ); + + // need to save ref to this object for emitWrapper + // TODO: maybe use .call(this) + thisPointer = this; + + _initialized = true; + return this; + }; -function parse_headers(raw_headers) { - var headers = {}, - headers_split = raw_headers.split('\n'); - - for (var i = 0; i < headers_split.length; i++) { - var header = headers_split[i].split(':'); - if (header.length > 1) { - var header_key = header.shift().trim(); - var header_val = header.join(':').trim(); - headers[header_key] = header_val; - continue; - } - headers[header[0].trim()] = header[1].trim(); - } - return headers; -}; + /** + * Returns if the object has been initialized + * + * @returns {Boolean} returns *true* if initialized; otherwise, *false* + */ + var isInitialized = function() { + return _initialized; + }; -function parse_frame(chunk) { - var args = {}, - data = null, - command = null, - headers = null, - body = null, - headers_str = null; + /** + * Returns if the object has been connected + * + * @returns {Boolean} returns *true* if connected; otherwise, *false* + */ + var isConnected = function() { + return _connected; + }; - if (!utils.really_defined(chunk)) { - return null; - } + /** + * Creates sockets used to connect to STOMP broker. Sets the connected flag to *true* upon completion. + * Emits "connected" upon completion. + * + * @returns {void} + */ + var connect = function() { + if(!_initialized) {throw new Error(errMsgNotInitialized);} + + var host = options.host; + var port = options.port; + + if (options.ssl) { + log.debug('Connecting to ' + host + ':' + port + ' using SSL'); + socket = tls.connect(port, host, options.sslOptions, function() { + log.debug('SSL connection complete'); + if (!socket.authorized) { + log.error('SSL is not authorized: '+ socket.authorizationError); + if (options.sslValidate) { + disconnect(); + return; + } + } + setupListeners(); + }); + } + else { + log.debug('Connecting to ' + host + ':' + port); + socket = new net.Socket(); + socket.connect(port, host); + setupListeners(); + } + _connected = true; + }; - command = parse_command(chunk); - data = chunk.slice(command.length + 1, chunk.length); - data = data.toString('utf8', 0, data.length); + /** + * Removes sockets used to connects STOMP broker. Sets the connected flag to *false* upon completion. + * Emits "disconnected" upon completion. + * + * @returns {void} + */ + var disconnect = function() { + if(!_initialized) {throw new Error(errMsgNotInitialized);} - var the_rest = data.split('\n\n'); - headers = parse_headers(the_rest[0]); - body = the_rest.slice(1, the_rest.length); + socket.end(); - if ('content-length' in headers) { - headers['bytes_message'] = true; - } + if (socket.readyState === 'readOnly') { + socket.destroy(); + } - args = { - command: command, - headers: headers, - body: body - } + log.debug('disconnect called'); + _connected = false; + }; - var this_frame = new frame.Frame(); - var return_frame = this_frame.build_frame(args); + /** + * Subscribes to destination (queue or topic). + * Emits "subscribed" upon completion. + * + * @param {Object} headers a header object + * @param {Function} callback a function to call and pass it the message that is dequeued + * @returns {void} + */ + var subscribe = function(headers, callback) { + if(!_initialized) {throw new Error(errMsgNotInitialized);} + if(!_connected) {throw new Error(errMsgNotConnected);} + + var destination = headers.destination; + headers.session = session; + + if (destination instanceof Array) { + for (var i=0; i < destination.length; i++) { + headers.destination = destination[i]; + sendCommand('SUBSCRIBE', headers); + subscribedTo[destination[i]] = { enabled: true, callback: callback }; + log.debug('subscribed to: ' + destination[i] + ' with headers ' + sys.inspect(headers)); + } + } + else { + sendCommand('SUBSCRIBE', headers); + subscribedTo[destination] = { enabled: true, callback: callback }; + log.debug('subscribed to: ' + destination + ' with headers ' + sys.inspect(headers)); + } - return return_frame; -}; + emitWrapper("subscribed", destination); + }; -function _connect(stomp) { - log = stomp.log; - - if (stomp.ssl) { - log.debug('Connecting to ' + stomp.host + ':' + stomp.port + ' using SSL'); - stomp.socket = tls.connect(stomp.port, stomp.host, stomp.ssl_options, function() { - log.debug('SSL connection complete'); - if (!stomp.socket.authorized) { - log.error('SSL is not authorized: '+stomp.socket.authorizationError); - if (stomp.ssl_validate) { - _disconnect(stomp); - return; - } + /** + * Unsubscribes from destination (queue or topic). + * Emits "unsubscribed" upon completion. + * + * @param {Object} headers a header object + * @returns {void} + */ + var unsubscribe = function(headers) { + if(!_initialized) {throw new Error(errMsgNotInitialized);} + if(!_connected) {throw new Error(errMsgNotConnected);} + + var destination = headers.destination; + headers.session = session; + + if (destination instanceof Array) { + for (var i=0; i < destination.length; i++) { + headers.destination = destination[i]; + sendCommand('UNSUBSCRIBE', headers); + subscribedTo[destination[i]].enabled = false; + log.debug('no longer subscribed to: ' + destination[i]); } - _setupListeners(stomp); - }); - } - else { - log.debug('Connecting to ' + stomp.host + ':' + stomp.port); - stomp.socket = new net.Socket(); - stomp.socket.connect(stomp.port, stomp.host); - _setupListeners(stomp); - } -} - -function _setupListeners(stomp) { - function _connected() { - log.debug('Connected to socket'); - var headers = {}; - if (utils.really_defined(stomp.login) && - utils.really_defined(stomp.passcode)) { - headers.login = stomp.login; - headers.passcode = stomp.passcode; - } - if (utils.really_defined(stomp["client-id"])) { - headers["client-id"] = stomp["client-id"]; } - if (utils.really_defined(stomp["vhost"])) { - headers["host"] = stomp["vhost"]; + else { + sendCommand('UNSUBSCRIBE', headers); + subscribedTo[destination].enabled = false; + log.debug('no longer subscribed to: ' + destination); } - stomp_connect(stomp, headers); - } - var socket = stomp.socket; + emitWrapper("unsubscribed", destination); + }; - socket.on('drain', function(data) { - log.debug('draining'); - }); + /** + * Sends a message to the STOMP broker. + * + * @param {Object} headers a header object + * @param {Boolean} wantReceipt boolean to indicate that you wish to get a receipt (set receipt header) + * @returns {Object} returns a `Frame` object representing the message sent + */ + var send = function(headers, wantReceipt) { + var body = headers.body || null; + delete headers.body; + headers.session = session; + return sendCommand('SEND', headers, body, wantReceipt); + }; - var buffer = ''; - socket.on('data', function(chunk) { - buffer += chunk; - var frames = buffer.split('\0\n'); + /** + * Acknowledges a received message. + * + * @param {String} messageId the message id to ack + * @returns {void} + */ + var ack = function(messageId) { + sendCommand('ACK', {'message-id': messageId}); + log.debug('acknowledged message: ' + messageId); + }; - // Temporary fix : NULL,LF is not a guranteed standard, the LF is optional, so lets deal with it. (Rauls) - if (frames.length == 1) { - frames = buffer.split('\0'); - } + /** + * Begins a transaction. + * + * @returns {String} returns a string representing the generated transaction id + */ + var begin = function() { + var transactionId = Math.floor(Math.random()*99999999999).toString(); + sendCommand('BEGIN', {'transaction': transactionId}); + log.debug('begin transaction: ' + transactionId); + return transactionId; + }; - if (frames.length == 1) return; - buffer = frames.pop(); + /** + * Commits a transaction. + * + * @param {String} transactionId the transaction id from {@link Stomp#begin begin} to commit + * @returns {void} + */ + var commit = function(transactionId) { + sendCommand('COMMIT', {'transaction': transactionId}); + log.debug('commit transaction: ' + transactionId); + }; - var parsed_frame = null; - var _frame = null; - while (_frame = frames.shift()) { - parsed_frame = parse_frame(_frame); - stomp.handle_new_frame(parsed_frame); + /** + * Aborts a transaction. + * + * @param {String} transactionId the transaction id from {@link Stomp#begin begin} to abort + * @returns {void} + */ + var abort = function(transactionId) { + sendCommand('ABORT', {'transaction': transactionId}); + log.debug('abort transaction: ' + transactionId); + }; + + /** + * @private + * + * Handles frame based on type. Emits events when needed. + * Emits "message" upon message processed + * Emits "connected" upon connecting + * Emits "receipt" upon message receipt + * Emits "error" upon errors + * + * @param {String} frame the frame to handle + * @returns {void} + */ + var handleNewFrame = function(frame) { + switch (frame.command) { + case "MESSAGE": + if (isMessage(frame)) { + shouldRunMessageCallback(frame); + emitWrapper('message', frame); + } + break; + case "CONNECTED": + log.debug('Connected to STOMP'); + session = frame.headers.session; + emitWrapper('connected'); + break; + case "RECEIPT": + emitWrapper('receipt', frame.headers['receipt-id']); + break; + case "ERROR": + emitWrapper('error', frame); + break; + default: + log.debug("Could not parse command: " + frame.command); } - }); + }; + + /** + * @private + * + * Sets up the listeners for the socket events + * Emits "error" upon errors + * Emits "disconnected" upon socket close + * + * @param {String} frame the frame to handle + * @returns {void} + */ + var setupListeners = function() { + + socket.on('drain', function(data) { + log.debug('draining'); + }); + + var buffer = ''; + socket.on('data', function(chunk) { + buffer += chunk; + var frames = buffer.split('\0\n'); + + // Temporary fix : NULL,LF is not a guaranteed standard, the LF is optional, so lets deal with it. (Rauls) + if (frames.length === 1) { + frames = buffer.split('\0'); + } + + if (frames.length === 1) {return;} + buffer = frames.pop(); + + var pFrame = null; + var moreFrames = true; + while (moreFrames) { + var frame = frames.shift(); + if (!frame) { + moreFrames = false; + } else { + pFrame = parseFrame(frame); + handleNewFrame(pFrame); + } + } + }); - socket.on('end', function() { - log.debug("end"); - }); + socket.on('end', function() { + log.debug("end"); + }); - socket.on('error', function(error) { - log.error(error.stack + 'error name: ' + error.name); - stomp.emit("error", error); - }); + socket.on('error', function(error) { + log.error(error.stack + 'error name: ' + error.name); + emitWrapper("error", error); + }); - socket.on('close', function(error) { - log.debug('disconnected'); - if (error) { - log.error('Disconnected with error: ' + error); + socket.on('close', function(error) { + log.debug('disconnected'); + if (error) { + log.error('Disconnected with error: ' + error); + } + emitWrapper("disconnected", error); + }); + + if (options.ssl) { + stompConnect(); + } else { + socket.on('connect', stompConnect); } - stomp.emit("disconnected", error); - }); - - if (stomp.ssl) { - _connected(); - } else { - socket.on('connect', _connected); - } -}; + }; -function stomp_connect(stomp, headers) { - var _frame = new frame.Frame(), - args = {}, - headers = headers || {}; + /** + * @private + * + * Preps for and starts the STOMP connection + * + * @returns {void} + */ + var stompConnect = function() { + log.debug('Connected to socket'); + var headers = buildHeaders(options); - args['command'] = 'CONNECT'; - args['headers'] = headers; + var args = {}; - var frame_to_send = _frame.build_frame(args); + headers = headers || {}; - send_frame(stomp, frame_to_send); -}; + args.command = 'CONNECT'; + args.headers = headers; -function _disconnect(stomp) { - var socket = stomp.socket; - socket.end(); + var frame = new Frame(); + var newFrame = frame.buildFrame(args); - if (socket.readyState == 'readOnly') { - socket.destroy(); - } + sendFrame(newFrame); + }; - log.debug('disconnect called'); -}; + /** + * @private + * + * Wrapper to emit the events for the STOMP object + * + * @returns {void} + */ + var emitWrapper = function(str, obj){ + thisPointer.emit(str, obj); + }; -function send_command(stomp, command, headers, body, want_receipt) { - var want_receipt = want_receipt || false; + /** + * @private + * + * Returns the process args/options passed into the Client. + * This is only used for testing purposes which is why this public function is marked private. + * + * @returns {Object} returns the process args/options passed into the Client + */ + var getOptions = function(){ + return options; + }; - if (!utils.really_defined(headers)) { - headers = {}; - } + /** + * @private + * + * Helper to parse the command from frame + * + * @param {Object} data the frame as a buffer + * @returns {String} returns the command from the frame + */ + var parseCommand = function(data) { + var dataStr = data.toString('utf8', 0, data.length); + var command = dataStr.split('\n'); + return command[0]; + }; - var args = { - 'command': command, - 'headers': headers, - 'body': body + /** + * @private + * + * Helper to parse the headers from frame + * + * @param {Object} rawHeaders the raw headers from the frame + * @returns {Object} returns the headers from the frame + */ + var parseHeaders = function(rawHeaders) { + var headers = {}; + var headersSplit = rawHeaders.split('\n'); + + for (var i = 0; i < headersSplit.length; i++) { + var header = headersSplit[i].split(':'); + if (header.length > 1) { + var headerKey = header.shift().trim(); + var headerVal = header.join(':').trim(); + headers[headerKey] = headerVal; + continue; + } + headers[header[0].trim()] = header[1].trim(); + } + return headers; }; - var _frame = new frame.Frame(); - var this_frame = _frame.build_frame(args, want_receipt); - send_frame(stomp, this_frame); + /** + * @private + * + * Helper to parse the key data pieces (headers, command, body) from frame + * + * @param {Object} chunk the frame as a buffer + * @returns {Object} returns the frame as a [StompJS.Frame](#!/api/Frame) + */ + var parseFrame = function(chunk) { + if (!stompUtils.isDefined(chunk)) { + return null; + } - return this_frame; -}; + var command = parseCommand(chunk); + var data = chunk.slice(command.length + 1, chunk.length); + data = data.toString('utf8', 0, data.length); -function send_frame(stomp, _frame) { - var socket = stomp.socket; - var frame_str = _frame.as_string(); + var theRest = data.split('\n\n'); + var headers = parseHeaders(theRest[0]); + var body = theRest.slice(1, theRest.length); - if (socket.write(frame_str) === false) { - log.debug('Write buffered'); - } + if ('content-length' in headers) { + headers.bytes_message = true; + } - return true; -}; + var args = { + command: command, + headers: headers, + body: body + }; -// -// ## Stomp - Client API -// -// Takes an argument object -// -function Stomp(args) { - events.EventEmitter.call(this); - - this.port = args['port'] || 61613; - this.host = args['host'] || '127.0.0.1'; - this.debug = args['debug']; - this.login = args['login'] || null; - this.passcode = args['passcode'] || null; - this.log = new stomp_utils.StompLogging(this.debug); - this._subscribed_to = {}; - this.session = null; - this.ssl = args['ssl'] ? true : false; - this.ssl_validate = args['ssl_validate'] ? true : false; - this.ssl_options = args['ssl_options'] || {}; - this['client-id'] = args['client-id'] || null; - if(typeof args.vhost !== 'undefined'){ - this.vhost = args['vhost'] ; - } -}; + var frame = new Frame(); + var newFrame = frame.buildFrame(args); -// ## Stomp is an EventEmitter -util.inherits(Stomp, events.EventEmitter); + return newFrame; + }; -// ## Stomp.connect() -// -// **Begin connection** -// -Stomp.prototype.connect = function() { - _connect(this); -}; + /** + * @private + * + * Helper to build the headers from the client args/options + * + * @param {Object} options the client args/options + * @returns {Object} returns the headers + */ + var buildHeaders = function(options) { + var headers = {}; + if (stompUtils.isDefined(options.login) && + stompUtils.isDefined(options.passcode)) { + headers.login = options.login; + headers.passcode = options.passcode; + } + if (stompUtils.isDefined(options.clientId)) { + headers["client-id"] = options.clientId; + } + if (stompUtils.isDefined(options.vhost)) { + headers.host = options.vhost; + } + return headers; + }; -// ## Stomp.is_a_message(frame) -// -// **Test that `Frame` is a message** -// -// Takes a `Frame` object -// -Stomp.prototype.is_a_message = function(this_frame) { - return (this_frame.headers !== null && utils.really_defined(this_frame.headers['message-id'])) -} - -// ## Stomp.should_run_message_callback -// -// **Handle any registered message callbacks** -// -// Takes a `Frame` object -// -Stomp.prototype.should_run_message_callback = function(this_frame) { - var subscription = this._subscribed_to[this_frame.headers.destination]; - if (this_frame.headers.destination !== null && subscription !== null) { - if (subscription.enabled && subscription.callback !== null && typeof(subscription.callback) == 'function') { - subscription.callback(this_frame.body, this_frame.headers); + /** + * @private + * + * Create the STOMP Frame and send the command to the STOMP broker + * + * @param {String} command the command to send + * @param {Object} headers the headers to send + * @param {Object} body the body to send + * @param {Boolean} wantReceipt boolean to indicate that you wish to get a receipt + * @returns {Object} returns a [StompJS.Frame](#!/api/Frame) + */ + var sendCommand = function(command, headers, body, wantReceipt) { + if (!stompUtils.isDefined(wantReceipt)) { + wantReceipt = false; } - } -} - -// ## Stomp.handle\_new_frame(frame) -// -// **Handle frame based on type. Emit events when needed.** -// -// Takes a `Frame` object -// -Stomp.prototype.handle_new_frame = function(this_frame) { - switch (this_frame.command) { - case "MESSAGE": - if (this.is_a_message(this_frame)) { - this.should_run_message_callback(this_frame); - this.emit('message', this_frame); - } - break; - case "CONNECTED": - log.debug('Connected to STOMP'); - this.session = this_frame.headers['session']; - this.emit('connected'); - break; - case "RECEIPT": - this.emit('receipt', this_frame.headers['receipt-id']); - break; - case "ERROR": - this.emit('error', this_frame); - break; - default: - console.log("Could not parse command: " + this_frame.command); - } -}; -// -// ## Stomp.disconnect() -// -// **Disconnect from STOMP broker** -// -Stomp.prototype.disconnect = function() { - _disconnect(this); -} - -// -// ## Stomp.subscribe(headers, callback) -// -// **Subscribe to destination (queue or topic)** -// -// Takes a header object -// -// Takes a callback function -// -Stomp.prototype.subscribe = function(headers, callback) { - var destination = headers['destination']; - headers['session'] = this.session; - - if (destination instanceof Array) { - for (var i=0; i < destination.length; i++) { - headers.destination = destination[i]; - send_command(this, 'SUBSCRIBE', headers); - this._subscribed_to[destination[i]] = { enabled: true, callback: callback }; + if (!stompUtils.isDefined(headers)) { + headers = {}; } - } - else { - send_command(this, 'SUBSCRIBE', headers); - this._subscribed_to[destination] = { enabled: true, callback: callback }; - } - this.log.debug('subscribed to: ' + destination + ' with headers ' + sys.inspect(headers)); -}; + var args = { + 'command': command, + 'headers': headers, + 'body': body + }; -// -// ## Stomp.unsubscribe(headers) -// -// **Unsubscribe from destination (queue or topic)** -// -// Takes a header object -// -Stomp.prototype.unsubscribe = function(headers) { - var destination = headers['destination']; - headers['session'] = this.session; - - if (destination instanceof Array) { - for (var i=0; i < destination.length; i++) { - headers.destination = destination[i]; - send_command(this, 'UNSUBSCRIBE', headers); - this._subscribed_to[destination[i]].enabled = false; - } - } - else { - send_command(this, 'UNSUBSCRIBE', headers); - this._subscribed_to[destination].enabled = false; - } + var frame = new Frame(); + var newFrame = frame.buildFrame(args, wantReceipt); + sendFrame(newFrame); - this.log.debug('no longer subscribed to: ' + destination); -}; + return newFrame; + }; -// -// ## Stomp.ack(message_id) -// -// **Acknowledge received message** -// -// Takes a string representing the message id to ack -// -Stomp.prototype.ack = function(message_id) { - send_command(this, 'ACK', {'message-id': message_id}); - this.log.debug('acknowledged message: ' + message_id); -}; + /** + * @private + * + * Sends the STOMP frame to the message broker + * + * @param {String} frame the [StompJS.Frame](#!/api/Frame) + * @returns {void} + */ + var sendFrame = function(frame) { + var frameStr = frame.asString(); + + if (frame) { + if (frame.headers) { + if (frame.headers.login) { + log.debug('attempting to login with: ' + frame.headers.login); + log.debug('login passcode: ' + frame.headers.passcode); //TODO remove this + } + } + } -// -// ## Stomp.begin() -// -// **Begin transaction** -// -// Return a string representing the generated transaction id -// -Stomp.prototype.begin = function() { - var transaction_id = Math.floor(Math.random()*99999999999).toString(); - send_command(this, 'BEGIN', {'transaction': transaction_id}); - this.log.debug('begin transaction: ' + transaction_id); - return transaction_id; -}; + if (socket.write(frameStr) === false) { + log.debug('Write buffered'); + } + }; -// -// ## Stomp.commit(transaction_id) -// -// **Commit transaction** -// -// Takes a string representing the transaction id generated by stomp.Stomp.begin() -// -Stomp.prototype.commit = function(transaction_id) { - send_command(this, 'COMMIT', {'transaction': transaction_id}); - this.log.debug('commit transaction: ' + transaction_id); -}; + /** + * @private + * + * Determines if the frame headers have a message id which is assigned only if its a message + * + * @param {String} frame the [StompJS.Frame](#!/api/Frame) + * @returns {Boolean} return *true* if the frame is a message; otherwise, *false* + */ + var isMessage = function(frame) { + return (frame.headers !== null && stompUtils.isDefined(frame.headers['message-id'])); + }; -// -// ## Stomp.abort(transaction_id) -// -// **Abort transaction** -// -// Takes a string representing the transaction id generated by stomp.Stomp.begin() -// -Stomp.prototype.abort = function(transaction_id) { - send_command(this, 'ABORT', {'transaction': transaction_id}); - this.log.debug('abort transaction: ' + transaction_id); -}; + /** + * @private + * + * Determines if the message callback function should be ran and runs it if it should + * + * @param {String} frame the [StompJS.Frame](#!/api/Frame) + * @returns {Boolean} return *true* if the frame is a message; otherwise, *false* + */ + var shouldRunMessageCallback = function(frame) { + var subscription = subscribedTo[frame.headers.destination]; + if (frame.headers.destination !== null && subscription !== null) { + if (subscription.enabled && subscription.callback !== null && typeof(subscription.callback) === 'function') { + subscription.callback(frame.body, frame.headers); + } + } + }; -// -// ## Stomp.send(headers, want_receipt) -// -// **Send MESSAGE to STOMP broker** -// -// Takes a header object (destination is required) -// -// Takes a boolean requesting receipt of the sent message -// -// Returns a `Frame` object representing the message sent -// -Stomp.prototype.send = function(headers, want_receipt) { - var destination = headers['destination'], - body = headers['body'] || null; - delete headers['body']; - headers['session'] = this.session; - return send_command(this, 'SEND', headers, body, want_receipt) + return { + Client: Client, + + isInitialized: isInitialized, + isConnected: isConnected, + connect: connect, + disconnect: disconnect, + subscribe: subscribe, + unsubscribe: unsubscribe, + send: send, + ack: ack, + abort: abort, + commit: commit, + begin: begin, + emitWrapper: emitWrapper, + + // exposed for testing purposes only + getOptions: getOptions + }; }; - -module.exports.Stomp = Stomp; diff --git a/lib/stomp.logger.js b/lib/stomp.logger.js new file mode 100644 index 0000000..b4b1b0a --- /dev/null +++ b/lib/stomp.logger.js @@ -0,0 +1,75 @@ +/** + * @class StompLogger + * An instance of the StompJS logger + * + * @type {StompJS.Logger} + */ +var StompLogger = module.exports = function(outputDebugInit) { + "use strict"; + + var outputDebug = outputDebugInit; + + /** + * Writes a debug message to the console only if the outputDebug flag was also set to true + * + * @param {String} message the message to write to the console + * @returns {void} + */ + var debug = function(message) { + if (outputDebug) { + console.log("debug: " + message); + } + }; + + /** + * Writes a info message to the console + * + * @param {String} message the message to write to the console + * @returns {void} + */ + var info = function(message) { + console.log("info: " + message); + }; + + /** + * Writes a warn message to the console + * + * @param {String} message the message to write to the console + * @returns {void} + */ + var warn = function(message) { + console.log("warn: " + message); + }; + + /** + * Writes a error message to the console and kills the process based on die input + * + * @param {String} message the message to write to the console + * @param {Boolean} die if *true*, then kill the process after writing the message + * @returns {void} + */ + var error = function(message, die) { + console.log("error: " + message); + if (die) { + process.exit(1); + } + }; + + /** + * Writes a error message to the console and then kills the process + * + * @param {String} message the message to write to the console + * @returns {void} + */ + var die = function(message) { + error(message, true); + }; + + return { + debug: debug, + info: info, + warn: warn, + error: error, + die: die + }; +}; diff --git a/lib/stomp.utils.js b/lib/stomp.utils.js new file mode 100644 index 0000000..0db6f8a --- /dev/null +++ b/lib/stomp.utils.js @@ -0,0 +1,42 @@ +/** + * @class StompUtils + * An instance of the StompJS helper utilities + * + * @type {StompJS.StompUtils} + */ +var StompUtils = module.exports = function() { + "use strict"; + + /** + * Returns if the input is defined (not null or undefined) + * + * @param {Object} varToTest the variable to test + * @returns {Boolean} returns *true* if the input is defined; otherwise, *false* + */ + var isDefined = function(varToTest) { + return !(varToTest === null || typeof varToTest === "undefined"); + }; + + /** + * Extends the destination by adding any source properties + * + * @param {Object} destination the object to extend + * @param {Object} source the object to extend from + * @returns {Object} returns the extended object + */ + var extend = function(destination, source) { + if (!isDefined(destination)) {return destination;} + if (!isDefined(source)) {return destination;} + for (var property in source) { + if (source.hasOwnProperty(property)) { + destination[property] = source[property]; + } + } + return destination; + }; + + return { + isDefined: isDefined, + extend: extend + }; +}; diff --git a/package.json b/package.json index 1cb2caa..3abf0c6 100644 --- a/package.json +++ b/package.json @@ -1,22 +1,41 @@ { - "name" : "stomp", - "description": "Implementation of the STOMP protocol in node.js", - "keywords": [ "STOMP", "messaging", "queue", "protocol" ], - "version": "v0.1.2", - "homepage": "https://github.com/benjaminws/stomp-js", - "author": "Benjamin W. Smith <benjaminws@just-another.net>", - "contributors" : [ "rofflwaffls@gmail.com" ], - "main" : "lib/stomp", - "repository" : { - "type" : "git", - "url" : "https://benjaminws@github.com/benjaminws/stomp-js.git" - }, - "directories" : { - "lib": "./lib", - "examples": "./examples" - }, - "licenses" : [{ - "type" : "BSD", - "url" : "https://github.com/benjaminws/stomp-js/raw/master/LICENSE" - }] + "name": "stomp", + "description": "Implementation of the STOMP protocol in node.js", + "keywords": [ + "STOMP", + "messaging", + "queue", + "protocol" + ], + "version": "0.2.0", + "homepage": "https://github.com/benjaminws/stomp-js", + "author": "Benjamin W. Smith <benjaminws@just-another.net>", + "contributors": [ + "rofflwaffls@gmail.com", + "dkhunt27@gmail.com" + ], + "main": "lib/stomp", + "repository": { + "type": "git", + "url": "https://benjaminws@github.com/benjaminws/stomp-js.git" + }, + "directories": { + "lib": "./lib", + "examples": "./examples" + }, + "licenses": [ + { + "type": "BSD", + "url": "https://github.com/benjaminws/stomp-js/raw/master/LICENSE" + } + ], + "dependencies": { + }, + "devDependencies": { + "chai": "1.5.0", + "mocha": "1.8.1", + "injectr": "0.4.0", + "sinon": "1.7.3", + "commander": "2.0.0" + } } diff --git a/test/stomp.Integration.Tests.js b/test/stomp.Integration.Tests.js new file mode 100644 index 0000000..6070c88 --- /dev/null +++ b/test/stomp.Integration.Tests.js @@ -0,0 +1,361 @@ +describe('stomp.Integration.Tests', function(){ + "use strict"; + + var path = require('path'); + var injectr = require('injectr'); + var should = require("chai").should(); + var sinon = require("sinon"); + + var injectrFilePath = path.join(path.join(__dirname, '../lib'),'stomp.js'); + var injectrRequireOverrides = {}; //{ fs: mockfs} would update require('fs') to use mockfs in the injectr file + var injectrContext = {}; // {"__dirname": __dirname, "Buffer": Buffer} would update those context variables + + // TODO figure out how to delete this queue after test + var testQueue = "/queue/testQ"; + + var Stomp,stompClient,eventSpy; + + beforeEach(function(){ + Stomp = injectr(injectrFilePath, injectrRequireOverrides, injectrContext); + eventSpy = sinon.spy(); + }); + + describe('#Client() constructor', function() { + var args; + beforeEach(function(){ + stompClient = new Stomp(); + }); + describe('given empty args,', function(){ + beforeEach(function(){ + args = {}; + }); + describe('when called', function(){ + beforeEach(function(){ + stompClient.isInitialized().should.equal(false); + stompClient = stompClient.Client(args); + stompClient.isInitialized().should.equal(true); + }); + it('then should use defaults', function(){ + var options = stompClient.getOptions(); + + options.port.should.equal(61613); + options.host.should.equal('127.0.0.1'); + should.not.exist(options.login); + should.not.exist(options.passcode); + options.ssl.should.equal(false); + options.sslValidate.should.equal(false); + should.exist(options.sslOptions); + should.not.exist(options.clientId); + should.not.exist(options.vhost); + }); + }); + }); + describe('given valid args,', function(){ + beforeEach(function(){ + args = { + port: 123, + host: "local", + debug: false, + login: "blah", + passcode: "secret", + ssl: true, + ssl_validate: true, + ssl_options: "abc", + "client-id": "def", + vhost: "ghi" + }; + }); + describe('when called', function(){ + beforeEach(function(){ + stompClient.isInitialized().should.equal(false); + stompClient = stompClient.Client(args); + stompClient.isInitialized().should.equal(true); + }); + + it('then should use inputs and be initialized', function(){ + var options = stompClient.getOptions(); + + options.port.should.equal(123); + options.host.should.equal('local'); + options.login.should.equal("blah"); + options.passcode.should.equal("secret"); + options.ssl.should.equal(true); + options.sslValidate.should.equal(true); + options.sslOptions.should.equal("abc"); + options.clientId.should.equal("def"); + options.vhost.should.equal("ghi"); + + }); + }); + }); + }); + + describe('#connect() and #disconnect()', function() { + describe('given not initialized', function(){ + beforeEach(function(){ + stompClient = new Stomp(); + }); + describe('when connect called', function(){ + var errCaught, errThrown, errReturned; + beforeEach(function(){ + try { + stompClient.isInitialized().should.equal(false); + stompClient.connect(); + errThrown = false; + } catch (err) { + errThrown = true; + errCaught = err; + } + }); + + it('then should error', function(){ + shouldThrowError(errThrown, errCaught, errReturned, 'not initialized'); + }); + }); + describe('when disconnect called', function(){ + var errCaught, errThrown, errReturned; + beforeEach(function(){ + try { + try { + stompClient.isInitialized().should.equal(false); + stompClient.disconnect(); + errThrown = false; + } catch (err) { + errThrown = true; + errCaught = err; + } + } catch (err) { + errThrown = true; + errCaught = err; + } + }); + + it('then should error', function(){ + shouldThrowError(errThrown, errCaught, errReturned, 'not initialized'); + }); + }); + }); + describe('given initialized', function(){ + beforeEach(function(){ + var args = {port:61613, host:'localhost', debug:false, login:'guest', passcode:'guest'}; + stompClient = new Stomp().Client(args); + }); + describe('when connect/disconnect called', function(){ + var errCaught, errThrown, errReturned; + beforeEach(function(done){ + try { + stompClient.isConnected().should.equal(false); + stompClient.on('connected',function(data){ + stompClient.isConnected().should.equal(true); + done(); + }); + stompClient.connect(); + errThrown = false; + } catch (err) { + errThrown = true; + errCaught = err; + } + }); + afterEach(function(done){ + stompClient.isConnected().should.equal(true); + stompClient.on('disconnected',function(data){ + stompClient.isConnected().should.equal(false); + done(); + }); + stompClient.disconnect(); + }); + it('then should emit connected/disconnected without error', function(){ + shouldReturnNoErrors(errThrown, errCaught, errReturned); + + // emit checking checked in before/after + }); + }); + }); + }); + + describe('#subscribe() and #unsubscribe()', function() { + + describe('given not initialized', function(){ + beforeEach(function(){ + stompClient = new Stomp(); + }); + describe('when subscribe called', function(){ + var errCaught, errThrown, resultsReturned, errReturned; + beforeEach(function(){ + try { + try { + stompClient.subscribe(); + errThrown = false; + } catch (err) { + errThrown = true; + errCaught = err; + } + } catch (err) { + errThrown = true; + errCaught = err; + } + }); + + it('then should error', function(){ + shouldThrowError(errThrown, errCaught, errReturned, 'not initialized'); + }); + }); + describe('when unsubscribe called', function(){ + var errCaught, errThrown, errReturned; + beforeEach(function(){ + try { + try { + stompClient.unsubscribe(); + errThrown = false; + } catch (err) { + errThrown = true; + errCaught = err; + } + } catch (err) { + errThrown = true; + errCaught = err; + } + }); + + it('then should error', function(){ + shouldThrowError(errThrown, errCaught, errReturned, 'not initialized'); + }); + }); + }); + describe('given initialized', function(){ + beforeEach(function(){ + var args = {port:61613, host:'localhost', debug:false, login:'guest', passcode:'guest'}; + stompClient = new Stomp().Client(args); + }); + describe('given not connected', function(){ + beforeEach(function(){ + // do nothing so its not connected + }); + describe('when subscribe called', function(){ + var errCaught, errThrown, errReturned; + beforeEach(function(){ + try { + try { + stompClient.on('subscribed', eventSpy); + stompClient.subscribe(); + errThrown = false; + } catch (err) { + errThrown = true; + errCaught = err; + } + } catch (err) { + errThrown = true; + errCaught = err; + } + }); + + it('then should error', function(){ + shouldThrowError(errThrown, errCaught, errReturned, 'not connected'); + eventSpy.called.should.equal(false, 'event should not fire'); + }); + }); + describe('when unsubscribe called', function(){ + var errCaught, errThrown, resultsReturned, errReturned; + beforeEach(function(){ + try { + try { + stompClient.on('unsubscribed', eventSpy); + stompClient.unsubscribe(); + errThrown = false; + } catch (err) { + errThrown = true; + errCaught = err; + } + } catch (err) { + errThrown = true; + errCaught = err; + } + }); + + it('then should error', function(){ + shouldThrowError(errThrown, errCaught, errReturned, 'not connected'); + eventSpy.called.should.equal(false, 'event should not fire'); + }); + }); + }); + describe('given connected', function(){ + beforeEach(function(done){ + stompClient.on('connected', function(){ + done(); + }); + stompClient.connect(); + }); + afterEach(function(done){ + stompClient.on('disconnected', function(){ + done(); + }); + stompClient.disconnect(); + }); + describe('given subscribe args', function(){ + var subscribeArgs; + beforeEach(function(){ + subscribeArgs = {destination: testQueue}; + }); + describe('when subscribe/unsubscribe called', function(){ + var errCaught, errThrown, errReturned; + beforeEach(function(done){ + try { + stompClient.on('subscribed',function(data){ + errThrown = false; + done(); + }); + stompClient.subscribe(subscribeArgs); + } catch (err) { + errThrown = true; + errCaught = err; + done(); + } + }); + afterEach(function(done){ + stompClient.on('unsubscribed',function(data){ + done(); + }); + stompClient.unsubscribe(subscribeArgs); + }); + it('then should emit connected/disconnected without error', function(){ + shouldReturnNoErrors(errThrown, errCaught, errReturned); + + // emit checking checked in before/after + }); + }); + }); + }); + }); + }); + + describe.skip("TODO #send(), #ack()", function(){}); + describe.skip("TODO #begin(), #commit(), #abort()", function(){}); + + var shouldReturnNoErrors = function(errThrown, errCaught, errReturned) { + if (errThrown) {console.error('errCaught',errCaught);} //output the error for better debugging purposes since it should not exist + if (errReturned) {console.error('errReturned',errReturned);} //output the error for better debugging purposes since it should not exist + errThrown.should.equal(false, 'errThrown.should.equal(false)'); + should.not.exist(errCaught, 'should.not.exist(errCaught)'); + should.not.exist(errReturned, 'should.not.exist(errReturned)'); + return; + }; + + var shouldThrowError = function(errThrown, errCaught, errReturned, expectedErrMsg){ + if (errReturned) {console.error(errReturned);} //output the error for better debugging purposes since it should not exist + errThrown.should.equal(true, 'errThrown.should.equal(true)'); + should.exist(errCaught, 'should.exist(errCaught)'); + should.not.exist(errReturned, 'should.not.exist(errReturned)'); + should.exist(errCaught.message,'should.exist(errCaught.message)'); + errCaught.message.should.contain(expectedErrMsg, 'errCaught.message.should.contain(expectedErrMsg)'); + return; + }; + + var shouldThrowSomeError = function(errThrown, errCaught, errReturned){ + if (errReturned) {console.error(errReturned);} //output the error for better debugging purposes since it should not exist + errThrown.should.equal(true, 'errThrown.should.equal(true)'); + should.exist(errCaught, 'should.exist(errCaught)'); + should.exist(errCaught.message,'should.exist(errCaught.message)'); + return; + }; +}); + diff --git a/test/stomp.utils.Unit.Tests.js b/test/stomp.utils.Unit.Tests.js new file mode 100644 index 0000000..e260f72 --- /dev/null +++ b/test/stomp.utils.Unit.Tests.js @@ -0,0 +1,357 @@ +describe('stomp.utils.Unit.Tests', function(){ + "use strict"; + + var path = require('path'); + var injectr = require('injectr'); + var should = require("chai").should(); + var sinon = require("sinon"); + + var injectrFilePath = path.join(path.join(__dirname, '../lib'),'stomp.utils.js'); + var injectrRequireOverrides = {}; //{ fs: mockfs} would update require('fs') to use mockfs in the injectr file + var injectrContext = {}; // {"__dirname": __dirname, "Buffer": Buffer} would update those context variables + + + var StompUtils; + + beforeEach(function(){ + StompUtils = injectr(injectrFilePath, injectrRequireOverrides, injectrContext); + }); + + describe('#isDefined()', function() { + var functionToTest, nothing, value; + beforeEach(function(){ + var stompUtils = new StompUtils(); + functionToTest = function(value) { + return stompUtils.isDefined(value); + }; + }); + describe('given typeof undefined;', function() { + beforeEach(function(){ + value = nothing; + }); + + describe('when called', function() { + var resultsReturned; + beforeEach(function(){ + resultsReturned = functionToTest(value); + }); + it('then should return false', function(){ + resultsReturned.should.equal(false); + }); + }); + }); + + describe('given null;', function() { + beforeEach(function(){ + value = null; + }); + + describe('when called', function() { + var resultsReturned; + beforeEach(function(){ + resultsReturned = functionToTest(value); + }); + it('then should return false', function(){ + resultsReturned.should.equal(false); + }); + }); + }); + describe('given empty string;', function() { + beforeEach(function(){ + value = ''; + }); + + describe('when called', function() { + var resultsReturned; + beforeEach(function(){ + resultsReturned = functionToTest(value); + }); + it('then should return true', function(){ + resultsReturned.should.equal(true); + }); + }); + }); + + describe('given 0;', function() { + beforeEach(function(){ + value = 0; + }); + + describe('when called', function() { + var resultsReturned; + beforeEach(function(){ + resultsReturned = functionToTest(value); + }); + it('then should return true', function(){ + resultsReturned.should.equal(true); + }); + }); + }); + + describe('given false;', function() { + beforeEach(function(){ + value = false; + }); + + describe('when called', function() { + var resultsReturned; + beforeEach(function(){ + resultsReturned = functionToTest(value); + }); + it('then should return true', function(){ + resultsReturned.should.equal(true); + }); + }); + }); + + describe('given an empty object;', function() { + beforeEach(function(){ + value = {}; + }); + + describe('when called', function() { + var resultsReturned; + beforeEach(function(){ + resultsReturned = functionToTest(value); + }); + it('then should return true', function(){ + resultsReturned.should.equal(true); + }); + }); + }); + + describe('given an empty array;', function() { + beforeEach(function(){ + value = []; + }); + + describe('when called', function() { + var resultsReturned; + beforeEach(function(){ + resultsReturned = functionToTest(value); + }); + it('then should return true', function(){ + resultsReturned.should.equal(true); + }); + }); + }); + + describe('given a string;', function() { + beforeEach(function(){ + value = 'abc'; + }); + + describe('when called', function() { + var resultsReturned; + beforeEach(function(){ + resultsReturned = functionToTest(value); + }); + it('then should return true', function(){ + resultsReturned.should.equal(true); + }); + }); + }); + + describe('given a integer;', function() { + beforeEach(function(){ + value = 123; + }); + + describe('when called', function() { + var resultsReturned; + beforeEach(function(){ + resultsReturned = functionToTest(value); + }); + it('then should return true', function(){ + resultsReturned.should.equal(true); + }); + }); + }); + + describe('given a populated object;', function() { + beforeEach(function(){ + value = {"abc":123}; + }); + + describe('when called', function() { + var resultsReturned; + beforeEach(function(){ + resultsReturned = functionToTest(value); + }); + it('then should return true', function(){ + resultsReturned.should.equal(true); + }); + }); + }); + + describe('given a populated array;', function() { + beforeEach(function(){ + value = [{"abc":123}]; + }); + + describe('when called', function() { + var resultsReturned; + beforeEach(function(){ + resultsReturned = functionToTest(value); + }); + it('then should return true', function(){ + resultsReturned.should.equal(true); + }); + }); + }); + + describe('given a date object;', function() { + beforeEach(function(){ + value = new Date(); + }); + + describe('when called', function() { + var resultsReturned; + beforeEach(function(){ + resultsReturned = functionToTest(value); + }); + it('then should return true', function(){ + resultsReturned.should.equal(true); + }); + }); + }); + }); + + describe('#extend', function() { + var stompUtils; + beforeEach(function(){ + stompUtils = new StompUtils(); + }); + describe('given undefined destination,', function(){ + var destination; + beforeEach(function(){ + // do nothing + }); + describe('given undefined source,', function(){ + var source; + beforeEach(function(){ + // do nothing + }); + describe('when called', function(){ + var results; + beforeEach(function(){ + results = stompUtils.extend(destination, source); + }); + + it('then should return nothing', function(){ + should.not.exist(results); + }); + }); + }); + describe('given defined source,', function(){ + var source; + beforeEach(function(){ + source = {abc:123, def:456}; + }); + describe('when called', function(){ + var results; + beforeEach(function(){ + results = stompUtils.extend(destination, source); + }); + + it('then should return nothing', function(){ + should.not.exist(results); + }); + }); + }); + }); + describe('given empty destination,', function(){ + var destination; + beforeEach(function(){ + destination = {}; + }); + describe('given undefined source,', function(){ + var source; + beforeEach(function(){ + // do nothing + }); + describe('when called', function(){ + var results; + beforeEach(function(){ + results = stompUtils.extend(destination, source); + }); + + it('then should return orig object', function(){ + should.exist(results); + }); + }); + }); + describe('given defined source,', function(){ + var source; + beforeEach(function(){ + source = {abc:123, def:456}; + }); + describe('when called', function(){ + var results; + beforeEach(function(){ + results = stompUtils.extend(destination, source); + }); + + it('then should return extended obj', function(){ + should.exist(results); + should.exist(results.abc); + should.exist(results.def); + results.abc.should.equal(123); + results.def.should.equal(456); + }); + }); + }); + }); + describe('given defined destination,', function(){ + var destination; + beforeEach(function(){ + destination = {a:1, b:2}; + }); + describe('given undefined source,', function(){ + var source; + beforeEach(function(){ + // do nothing + }); + describe('when called', function(){ + var results; + beforeEach(function(){ + results = stompUtils.extend(destination, source); + }); + + it('then should return orig object', function(){ + should.exist(results); + should.exist(results.a); + should.exist(results.b); + results.a.should.equal(1); + results.b.should.equal(2); + }); + }); + }); + describe('given defined source,', function(){ + var source; + beforeEach(function(){ + source = {abc:123, def:456}; + }); + describe('when called', function(){ + var results; + beforeEach(function(){ + results = stompUtils.extend(destination, source); + }); + + it('then should return extended obj', function(){ + should.exist(results); + should.exist(results.a); + should.exist(results.b); + results.a.should.equal(1); + results.b.should.equal(2); + should.exist(results.abc); + should.exist(results.def); + results.abc.should.equal(123); + results.def.should.equal(456); + }); + }); + }); + }); + }); +}); + diff --git a/test/test-frame.js b/test/test-frame.js deleted file mode 100644 index 6005852..0000000 --- a/test/test-frame.js +++ /dev/null @@ -1,65 +0,0 @@ -var stomp = require("stomp"); -var testCase = require("nodeunit/nodeunit").testCase; - -module.exports['initialize'] = testCase({ - setUp: function (callback) { - var stomp_args = { - port: 61613, - host: 'localhost', - debug: false, - login: 'guest', - passcode: 'guest', - }; - - this.client = new stomp.Stomp(stomp_args); - callback(); - }, - tearDown: function (callback) { - callback(); - }, - 'port is 61613': function(test) { - test.equal(this.client.port, 61613); - test.done(); - }, - 'host is localhost': function(test) { - test.equal(this.client.host, 'localhost'); - test.done(); - }, - 'debug is false': function(test) { - test.equal(this.client.debug, false); - test.done(); - }, - 'login is guest': function(test) { - test.equal(this.client.login, 'guest'); - test.done(); - }, - 'passcode is guest': function(test) { - test.equal(this.client.passcode, 'guest'); - test.done(); - } -}); -module.exports['connect'] = testCase({ - setUp: function (callback) { - var stomp_args = { - port: 61613, - host: 'localhost', - debug: false, - login: 'guest', - passcode: 'guest', - }; - this.client = new stomp.Stomp(stomp_args); - this._connect = this.client.connect; - this.client.connect = function() { - return true; - }; - callback(); - }, - tearDown: function (callback) { - this.client.connect = this._connect; - callback(); - }, - 'should call connect': function(test) { - test.ok(this.client.connect()); - test.done(); - } -}); From 8994c9c6b0b2ad1c45e9fa91b3365ad211fe6b63 Mon Sep 17 00:00:00 2001 From: dkhunt27 <huntd@valassis.com> Date: Mon, 9 Dec 2013 11:26:09 -0500 Subject: [PATCH 3/3] updated code to emit disconnected event to enable client reconnect --- lib/stomp.js | 105 ++++++++++++++++++++++++++++++++++++--------------- package.json | 2 +- 2 files changed, 75 insertions(+), 32 deletions(-) diff --git a/lib/stomp.js b/lib/stomp.js index 1017628..9b80c5c 100644 --- a/lib/stomp.js +++ b/lib/stomp.js @@ -60,6 +60,8 @@ var Stomp = module.exports = function() { options.sslOptions = args.ssl_options || {}; options.clientId = args['client-id'] || null; options.vhost = args.vhost || null; + options.timeout = args.timeout || 120000; + options.keepAlive = args.keepAlive || false; var debug = args.debug || false; var StompLogger = require('./stomp.logger.js'); @@ -112,6 +114,7 @@ var Stomp = module.exports = function() { if (options.ssl) { log.debug('Connecting to ' + host + ':' + port + ' using SSL'); + socket = tls.connect(port, host, options.sslOptions, function() { log.debug('SSL connection complete'); if (!socket.authorized) { @@ -121,35 +124,55 @@ var Stomp = module.exports = function() { return; } } + + socket.setTimeout(options.timeout); + socket.setKeepAlive(options.keepAlive); + setupListeners(); }); } else { log.debug('Connecting to ' + host + ':' + port); socket = new net.Socket(); - socket.connect(port, host); setupListeners(); + socket.setTimeout(options.timeout); + socket.setKeepAlive(options.keepAlive); + socket.connect(port, host); } _connected = true; }; /** - * Removes sockets used to connects STOMP broker. Sets the connected flag to *false* upon completion. - * Emits "disconnected" upon completion. + * Removes sockets used to connects STOMP broker. Calls socket.end which emits an "end" event. The 'on end' handler + * calls disconnectFinish which destroys the socket * * @returns {void} */ var disconnect = function() { if(!_initialized) {throw new Error(errMsgNotInitialized);} - + log.debug('ending socket'); socket.end(); + }; + + /** + * Finishes the disconnect process (destroys socket). Broken into two phases since disconnect called socket.end which its handler called + * disconnect...created an infinite loop + * + * Emits "disconnected" upon completion. + * + * @returns {void} + */ + var disconnectFinish = function() { + if(!_initialized) {throw new Error(errMsgNotInitialized);} if (socket.readyState === 'readOnly') { + log.debug('destroying socket'); socket.destroy(); } - log.debug('disconnect called'); + log.debug('disconnected emitted'); _connected = false; + emitWrapper("disconnected"); }; /** @@ -288,25 +311,25 @@ var Stomp = module.exports = function() { */ var handleNewFrame = function(frame) { switch (frame.command) { - case "MESSAGE": - if (isMessage(frame)) { - shouldRunMessageCallback(frame); - emitWrapper('message', frame); - } - break; - case "CONNECTED": - log.debug('Connected to STOMP'); - session = frame.headers.session; - emitWrapper('connected'); - break; - case "RECEIPT": - emitWrapper('receipt', frame.headers['receipt-id']); - break; - case "ERROR": - emitWrapper('error', frame); - break; - default: - log.debug("Could not parse command: " + frame.command); + case "MESSAGE": + if (isMessage(frame)) { + shouldRunMessageCallback(frame); + emitWrapper('message', frame); + } + break; + case "CONNECTED": + log.debug('Connected to STOMP'); + session = frame.headers.session; + emitWrapper('connected'); + break; + case "RECEIPT": + emitWrapper('receipt', frame.headers['receipt-id']); + break; + case "ERROR": + emitWrapper('error', frame); + break; + default: + log.debug("Could not parse command: " + frame.command); } }; @@ -323,11 +346,12 @@ var Stomp = module.exports = function() { var setupListeners = function() { socket.on('drain', function(data) { - log.debug('draining'); + log.debug('on drain'); }); var buffer = ''; socket.on('data', function(chunk) { + log.debug('on data'); buffer += chunk; var frames = buffer.split('\0\n'); @@ -352,21 +376,30 @@ var Stomp = module.exports = function() { } }); + socket.on('timeout', function() { + log.debug("on timeout"); + disconnect(); + }); + + socket.on('end', function() { - log.debug("end"); + log.debug("on end"); + disconnectFinish(); }); socket.on('error', function(error) { + log.debug('on error'); log.error(error.stack + 'error name: ' + error.name); emitWrapper("error", error); }); socket.on('close', function(error) { - log.debug('disconnected'); + log.debug('on close'); if (error) { - log.error('Disconnected with error: ' + error); + log.error('Closed with error: ' + error); } - emitWrapper("disconnected", error); + log.debug('closed emitted'); + emitWrapper("closed", error); }); if (options.ssl) { @@ -446,6 +479,7 @@ var Stomp = module.exports = function() { * @returns {Object} returns the headers from the frame */ var parseHeaders = function(rawHeaders) { + log.debug('rawHeaders',rawHeaders); var headers = {}; var headersSplit = rawHeaders.split('\n'); @@ -457,7 +491,16 @@ var Stomp = module.exports = function() { headers[headerKey] = headerVal; continue; } - headers[header[0].trim()] = header[1].trim(); + + var header0 = header[0]; + var header1 = header[1]; + if (header0) { + header0 = header0.trim(); + } + if (header1) { + header1 = header1.trim(); + } + headers[header0] = header1; } return headers; }; @@ -571,7 +614,7 @@ var Stomp = module.exports = function() { if (frame.headers) { if (frame.headers.login) { log.debug('attempting to login with: ' + frame.headers.login); - log.debug('login passcode: ' + frame.headers.passcode); //TODO remove this + //log.debug('login passcode: ' + frame.headers.passcode); //TODO remove this } } } diff --git a/package.json b/package.json index 3abf0c6..1a9863d 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "queue", "protocol" ], - "version": "0.2.0", + "version": "0.2.1", "homepage": "https://github.com/benjaminws/stomp-js", "author": "Benjamin W. Smith <benjaminws@just-another.net>", "contributors": [