text: /*!
   * Angular Material Design
   * https://github.com/angular/material
   * @license MIT
   * v0.9.6
   */
  !(function(e, t, n) {
    'use strict';
    function a() {
      function e(e, n, a, s) {
        function d() {
          function e() {
            return a.label;
          }
          function t() {
            var e = n.find('md-tab-label');
            return e.length ? e.remove().html() : void 0;
          }
          function s() {
            var e = n.html();
            return n.empty(), e;
          }
          a.label || (n.find('md-tab-label')[0] || n[0]).innerHTML;
          return e() || t() || s();
        }
        function i() {
          var e = n.find('md-tab-body'),
            t = e.length ? e.html() : a.label ? n.html() : null;
          return e.length ? e.remove() : a.label && n.empty(), t;
        }
        if (s) {
          var r = n.parent()[0].getElementsByTagName('md-tab'),
            c = Array.prototype.indexOf.call(r, n[0]),
            o = s.insertTab(
              {
                scope: e,
                parent: e.$parent,
                index: c,
                template: i(),
                label: d(),
              },
              c,
            );
          (e.select = e.select || t.noop),
            (e.deselect = e.deselect || t.noop),
            e.$watch('active', function(e) {
              e && s.select(o.getIndex());
            }),
            e.$watch('disabled', function() {
              s.refreshIndex();
            }),
            e.$watch(
              function() {
                return Array.prototype.indexOf.call(r, n[0]);
              },
              function(e) {
                (o.index = e), s.updateTabOrder();
              },
            ),
            e.$on('$destroy', function() {
              s.removeTab(o);
            });
        }
      }
      return {
        require: '^?mdTabs',
        terminal: !0,
        scope: {
          label: '@',
          active: '=?mdActive',
          disabled: '=?ngDisabled',
          select: '&?mdOnSelect',
          deselect: '&?mdOnDeselect',
        },
        link: e,
      };
    }
    function s() {
      return {
        require: '^?mdTabs',
        link: function(e, t, n, a) {
          a && a.attachRipple(e, t);
        },
      };
    }
    function d(e) {
      return {
        restrict: 'A',
        compile: function(t, n) {
          var a = e(n.mdTabScroll, null, !0);
          return function(e, t) {
            t.on('mousewheel', function(t) {
              e.$apply(function() {
                a(e, { $event: t });
              });
            });
          };
        },
      };
    }
    function i(e, n, a, s, d, i, r, c) {
      function o() {
        e.$watch('selectedIndex', y),
          e.$watch('$mdTabsCtrl.focusIndex', h),
          e.$watch('$mdTabsCtrl.offsetLeft', p),
          e.$watch('$mdTabsCtrl.hasContent', l),
          t.element(a).on('resize', function() {
            e.$apply(T);
          }),
          s(P, 0, !1),
          s(L, 0, !1);
      }
      function l(e) {
        n[e ? 'removeClass' : 'addClass']('md-no-tab-content');
      }
      function m() {
        var e = {};
        return (
          (e.wrapper = n[0].getElementsByTagName('md-tabs-wrapper')[0]),
          (e.canvas = e.wrapper.getElementsByTagName('md-tabs-canvas')[0]),
          (e.paging = e.canvas.getElementsByTagName('md-pagination-wrapper')[0]),
          (e.tabs = e.paging.getElementsByTagName('md-tab-item')),
          (e.dummies = e.canvas.getElementsByTagName('md-dummy-tab')),
          (e.inkBar = e.paging.getElementsByTagName('md-ink-bar')[0]),
          (e.contentsWrapper = n[0].getElementsByTagName(
            'md-tabs-content-wrapper',
          )[0]),
          (e.contents = e.contentsWrapper.getElementsByTagName('md-tab-content')),
          e
        );
      }
      function f(t) {
        switch (t.keyCode) {
          case d.KEY_CODE.LEFT_ARROW:
            t.preventDefault(), u(-1, !0);
            break;
          case d.KEY_CODE.RIGHT_ARROW:
            t.preventDefault(), u(1, !0);
            break;
          case d.KEY_CODE.SPACE:
          case d.KEY_CODE.ENTER:
            t.preventDefault(), K || (e.selectedIndex = j.focusIndex);
        }
        j.lastClick = !1;
      }
      function b() {
        var t = j.tabs[e.selectedIndex],
          n = j.tabs[j.focusIndex];
        (j.tabs = j.tabs.sort(function(e, t) {
          return e.index - t.index;
        })),
          (e.selectedIndex = j.tabs.indexOf(t)),
          (j.focusIndex = j.tabs.indexOf(n)),
          s(P, 0, !1);
      }
      function u(t, n) {
        var a,
          s = n ? j.focusIndex : e.selectedIndex;
        for (a = s + t; j.tabs[a] && j.tabs[a].scope.disabled; a += t);
        j.tabs[a] && (n ? (j.focusIndex = a) : (e.selectedIndex = a));
      }
      function p(n) {
        var a = B() ? '' : '-' + n + 'px';
        t.element(U.paging).css('transform', 'translate3d(' + a + ', 0, 0)'),
          e.$broadcast('$mdTabsPaginationChanged');
      }
      function h(e, t) {
        e !== t && U.tabs[e] && (x(), g());
      }
      function g() {
        U.dummies[j.focusIndex].focus();
      }
      function x() {
        if (!B()) {
          var e = U.tabs[j.focusIndex],
            t = e.offsetLeft,
            n = e.offsetWidth + t;
          (j.offsetLeft = Math.max(j.offsetLeft, D(n - U.canvas.clientWidth))),
            (j.offsetLeft = Math.min(j.offsetLeft, D(t)));
        }
      }
      function T() {
        (j.lastSelectedIndex = e.selectedIndex),
          (j.offsetLeft = D(j.offsetLeft)),
          s(P, 0, !1);
      }
      function $() {
        Y.forEach(function(e) {
          s(e);
        }),
          (Y = []);
      }
      function v(n, a) {
        var s = {
            getIndex: function() {
              return j.tabs.indexOf(d);
            },
            isActive: function() {
              return this.getIndex() === e.selectedIndex;
            },
            isLeft: function() {
              return this.getIndex() < e.selectedIndex;
            },
            isRight: function() {
              return this.getIndex() > e.selectedIndex;
            },
            hasFocus: function() {
              return (
                !j.lastClick && j.hasFocus && this.getIndex() === j.focusIndex
              );
            },
            id: r.nextUid(),
          },
          d = t.extend(s, n);
        return (
          t.isDefined(a) ? j.tabs.splice(a, 0, d) : j.tabs.push(d), $(), C(), d
        );
      }
      function C() {
        var e = !1;
        t.forEach(j.tabs, function(t) {
          t.template && (e = !0);
        }),
          (j.hasContent = e);
      }
      function I(e) {
        j.tabs.splice(e.getIndex(), 1),
          w(),
          s(function() {
            P(), (j.offsetLeft = D(j.offsetLeft));
          });
      }
      function w() {
        (e.selectedIndex = S(e.selectedIndex)), (j.focusIndex = S(j.focusIndex));
      }
      function y(t, n) {
        t !== n &&
          ((e.selectedIndex = S(t)),
          (j.lastSelectedIndex = n),
          P(),
          L(),
          e.$broadcast('$mdTabsChanged'),
          j.tabs[n] && j.tabs[n].scope.deselect(),
          j.tabs[t] && j.tabs[t].scope.select());
      }
      function k() {
        k.watcher ||
          (k.watcher = e.$watch(function() {
            s(
              function() {
                k.watcher &&
                  n.prop('offsetParent') &&
                  (k.watcher(), (k.watcher = null), e.$apply(T));
              },
              0,
              !1,
            );
          }));
      }
      function L() {
        if (!e.dynamicHeight) return n.css('height', '');
        if (!j.tabs.length) return Y.push(L);
        var t = U.contents[e.selectedIndex],
          a = t ? t.offsetHeight : 0,
          s = U.wrapper.offsetHeight,
          d = a + s,
          i = n.prop('clientHeight');
        i !== d &&
          ((K = !0),
          c
            .animate(n, { height: i + 'px' }, { height: d + 'px' })
            .then(function() {
              n.css('height', ''), (K = !1);
            }));
      }
      function P() {
        if (!j.tabs.length) return Y.push(P);
        if (!n.prop('offsetParent')) return k();
        var a = e.selectedIndex,
          s = U.paging.offsetWidth,
          d = U.tabs[a],
          i = d.offsetLeft,
          r = s - i - d.offsetWidth;
        E(), t.element(U.inkBar).css({ left: i + 'px', right: r + 'px' });
      }
      function E() {
        var n = e.selectedIndex,
          a = j.lastSelectedIndex,
          s = t.element(U.inkBar);
        s.removeClass('md-left md-right'),
          t.isNumber(a) &&
            (a > n ? s.addClass('md-left') : n > a && s.addClass('md-right'));
      }
      function S(e) {
        var t,
          n,
          a = Math.max(j.tabs.length - e, e);
        for (t = 0; a >= t; t++) {
          if (((n = j.tabs[e + t]), n && n.scope.disabled !== !0))
            return n.getIndex();
          if (((n = j.tabs[e - t]), n && n.scope.disabled !== !0))
            return n.getIndex();
        }
        return e;
      }
      function W() {
        switch (e.stretchTabs) {
          case 'always':
            return !0;
          case 'never':
            return !1;
          default:
            return !O() && a.matchMedia('(max-width: 600px)').matches;
        }
      }
      function B() {
        return e.centerTabs && !O();
      }
      function O() {
        if (e.noPagination) return !1;
        var a = n.prop('clientWidth');
        return (
          t.forEach(U.tabs, function(e) {
            a -= e.offsetWidth;
          }),
          0 > a
        );
      }
      function A(t) {
        K || (j.focusIndex = e.selectedIndex = t), (j.lastClick = !0);
      }
      function N(e) {
        O() &&
          (e.preventDefault(), (j.offsetLeft = D(j.offsetLeft - e.wheelDelta)));
      }
      function D(e) {
        if (!U.tabs.length || !O()) return 0;
        var t = U.tabs[U.tabs.length - 1],
          n = t.offsetLeft + t.offsetWidth;
        return (e = Math.max(0, e)), (e = Math.min(n - U.canvas.clientWidth, e));
      }
      function F() {
        var e,
          t,
          n = U.canvas.clientWidth,
          a = n + j.offsetLeft;
        for (
          e = 0;
          e < U.tabs.length &&
          ((t = U.tabs[e]), !(t.offsetLeft + t.offsetWidth > a));
          e++
        );
        j.offsetLeft = D(t.offsetLeft);
      }
      function R() {
        var e, t;
        for (
          e = 0;
          e < U.tabs.length &&
          ((t = U.tabs[e]), !(t.offsetLeft + t.offsetWidth >= j.offsetLeft));
          e++
        );
        j.offsetLeft = D(t.offsetLeft + t.offsetWidth - U.canvas.clientWidth);
      }
      function H() {
        return j.offsetLeft > 0;
      }
      function M() {
        var e = U.tabs[U.tabs.length - 1];
        return (
          e && e.offsetLeft + e.offsetWidth > U.canvas.clientWidth + j.offsetLeft
        );
      }
      function _(e, n) {
        var a = { colorElement: t.element(U.inkBar) };
        i.attach(e, n, a);
      }
      var j = this,
        K = !1,
        U = m(),
        Y = [];
      (j.scope = e),
        (j.parent = e.$parent),
        (j.tabs = []),
        (j.lastSelectedIndex = null),
        (j.focusIndex = 0),
        (j.offsetLeft = 0),
        (j.hasContent = !1),
        (j.hasFocus = !1),
        (j.lastClick = !0),
        (j.redirectFocus = g),
        (j.attachRipple = _),
        (j.shouldStretchTabs = W),
        (j.shouldPaginate = O),
        (j.shouldCenterTabs = B),
        (j.insertTab = v),
        (j.removeTab = I),
        (j.select = A),
        (j.scroll = N),
        (j.nextPage = F),
        (j.previousPage = R),
        (j.keydown = f),
        (j.canPageForward = M),
        (j.canPageBack = H),
        (j.refreshIndex = w),
        (j.incrementSelectedIndex = u),
        (j.updateInkBarStyles = P),
        (j.updateTabOrder = r.debounce(b, 100)),
        o();
    }
    function r(e, n, a) {
      return {
        scope: {
          noPagination: '=?mdNoPagination',
          dynamicHeight: '=?mdDynamicHeight',
          centerTabs: '=?mdCenterTabs',
          selectedIndex: '=?mdSelected',
          stretchTabs: '@?mdStretchTabs',
        },
        template: function(e, t) {
          t.$mdTabsTemplate = e.html();
          return '        <md-tabs-wrapper ng-class="{ \'md-stretch-tabs\': $mdTabsCtrl.shouldStretchTabs() }">          <md-tab-data></md-tab-data>          <md-prev-button              tabindex="-1"              role="button"              aria-label="Previous Page"              aria-disabled="{{!$mdTabsCtrl.canPageBack()}}"              ng-class="{ \'md-disabled\': !$mdTabsCtrl.canPageBack() }"              ng-if="$mdTabsCtrl.shouldPaginate()"              ng-click="$mdTabsCtrl.previousPage()">            <md-icon md-svg-icon="md-tabs-arrow"></md-icon>          </md-prev-button>          <md-next-button              tabindex="-1"              role="button"              aria-label="Next Page"              aria-disabled="{{!$mdTabsCtrl.canPageForward()}}"              ng-class="{ \'md-disabled\': !$mdTabsCtrl.canPageForward() }"              ng-if="$mdTabsCtrl.shouldPaginate()"              ng-click="$mdTabsCtrl.nextPage()">            <md-icon md-svg-icon="md-tabs-arrow"></md-icon>          </md-next-button>          <md-tabs-canvas              tabindex="0"              aria-activedescendant="tab-item-{{$mdTabsCtrl.tabs[$mdTabsCtrl.focusIndex].id}}"              ng-focus="$mdTabsCtrl.redirectFocus()"              ng-class="{                  \'md-paginated\': $mdTabsCtrl.shouldPaginate(),                  \'md-center-tabs\': $mdTabsCtrl.shouldCenterTabs()              }"              ng-keydown="$mdTabsCtrl.keydown($event)"              role="tablist">            <md-pagination-wrapper                ng-class="{ \'md-center-tabs\': $mdTabsCtrl.shouldCenterTabs() }"                md-tab-scroll="$mdTabsCtrl.scroll($event)">              <md-tab-item                  tabindex="-1"                  class="md-tab"                  style="max-width: {{ tabWidth ? tabWidth + \'px\' : \'none\' }}"                  ng-repeat="tab in $mdTabsCtrl.tabs"                  role="tab"                  aria-controls="tab-content-{{tab.id}}"                  aria-selected="{{tab.isActive()}}"                  aria-disabled="{{tab.scope.disabled || \'false\'}}"                  ng-click="$mdTabsCtrl.select(tab.getIndex())"                  ng-class="{                      \'md-active\':    tab.isActive(),                      \'md-focused\':   tab.hasFocus(),                      \'md-disabled\':  tab.scope.disabled                  }"                  ng-disabled="tab.scope.disabled"                  md-swipe-left="$mdTabsCtrl.nextPage()"                  md-swipe-right="$mdTabsCtrl.previousPage()"                  md-template="tab.label"                  md-scope="tab.parent"></md-tab-item>              <md-ink-bar ng-hide="noInkBar"></md-ink-bar>            </md-pagination-wrapper>            <div class="md-visually-hidden md-dummy-wrapper">              <md-dummy-tab                  tabindex="-1"                  id="tab-item-{{tab.id}}"                  role="tab"                  aria-controls="tab-content-{{tab.id}}"                  aria-selected="{{tab.isActive()}}"                  aria-disabled="{{tab.scope.disabled || \'false\'}}"                  ng-focus="$mdTabsCtrl.hasFocus = true"                  ng-blur="$mdTabsCtrl.hasFocus = false"                  ng-repeat="tab in $mdTabsCtrl.tabs"                  md-template="tab.label"                  md-scope="tab.parent"></md-dummy-tab>            </div>          </md-tabs-canvas>        </md-tabs-wrapper>        <md-tabs-content-wrapper ng-show="$mdTabsCtrl.hasContent">          <md-tab-content              id="tab-content-{{tab.id}}"              role="tabpanel"              aria-labelledby="tab-item-{{tab.id}}"              md-swipe-left="$mdTabsCtrl.incrementSelectedIndex(1)"              md-swipe-right="$mdTabsCtrl.incrementSelectedIndex(-1)"              ng-if="$mdTabsCtrl.hasContent"              ng-repeat="(index, tab) in $mdTabsCtrl.tabs"               md-template="tab.template"              md-scope="tab.parent"              md-connected-if="tab.isActive()"              ng-class="{                \'md-no-transition\': $mdTabsCtrl.lastSelectedIndex == null,                \'md-active\':        tab.isActive(),                \'md-left\':          tab.isLeft(),                \'md-right\':         tab.isRight(),                \'md-no-scroll\':     dynamicHeight              }"></md-tab-content>        </md-tabs-content-wrapper>      ';
        },
        controller: 'MdTabsController',
        controllerAs: '$mdTabsCtrl',
        link: function(s, d, i) {
          function r(e) {
            var t = d.find('md-tab-data');
            t.html(e), a(t.contents())(s.$parent);
          }
          r(i.$mdTabsTemplate),
            delete i.$mdTabsTemplate,
            n.initOptionalProperties(s, i),
            i.$observe('mdNoBar', function(e) {
              s.noInkBar = t.isDefined(e);
            }),
            (s.selectedIndex = t.isNumber(s.selectedIndex) ? s.selectedIndex : 0),
            e(d);
        },
      };
    }
    function c(e, t, n) {
      function a(a, s, d, i) {
        function r() {
          a.$watch('connected', function(e) {
            e ? o() : c();
          }),
            a.$on('$destroy', o);
        }
        function c() {
          t.disconnectScope(l);
        }
        function o() {
          t.reconnectScope(l);
        }
        if (i) {
          var l = a.compileScope.$new();
          return s.html(a.template), e(s.contents())(l), n(r);
        }
      }
      return {
        restrict: 'A',
        link: a,
        scope: {
          template: '=mdTemplate',
          compileScope: '=mdScope',
          connected: '=?mdConnectedIf',
        },
        require: '^?mdTabs',
      };
    }
    t.module('material.components.tabs', [
      'material.core',
      'material.components.icon',
    ]),
      t.module('material.components.tabs').directive('mdTab', a),
      t.module('material.components.tabs').directive('mdTabItem', s),
      t.module('material.components.tabs').directive('mdTabScroll', d),
      (d.$inject = ['$parse']),
      t.module('material.components.tabs').controller('MdTabsController', i),
      (i.$inject = [
        '$scope',
        '$element',
        '$window',
        '$timeout',
        '$mdConstant',
        '$mdTabInkRipple',
        '$mdUtil',
        '$animate',
      ]),
      t.module('material.components.tabs').directive('mdTabs', r),
      (r.$inject = ['$mdTheming', '$mdUtil', '$compile']),
      t.module('material.components.tabs').directive('mdTemplate', c),
      (c.$inject = ['$compile', '$mdUtil', '$timeout']);
  })(window, window.angular);
  